Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(209)

Side by Side Diff: chrome/renderer/translate/translate_helper_metrics.cc

Issue 14798008: Translate: add UMA to measure duration time of infobar user action (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/renderer/translate/translate_helper_metrics.h" 5 #include "chrome/renderer/translate/translate_helper_metrics.h"
6 6
7 #include "base/metrics/histogram.h" 7 #include "base/metrics/histogram.h"
8 8
9 namespace { 9 namespace {
10 10
11 // Constant string values to indicate UMA names. All entry should have 11 // Constant string values to indicate UMA names. All entry should have
12 // a corresponding index in MetricsNameIndex and an entry in |kMetricsEntries|. 12 // a corresponding index in MetricsNameIndex and an entry in |kMetricsEntries|.
13 const char kRenderer4LanguageDetection[] = "Renderer4.LanguageDetection"; 13 const char kRenderer4LanguageDetection[] = "Renderer4.LanguageDetection";
14 const char kTranslateContentLanguage[] = "Translate.ContentLanguage"; 14 const char kTranslateContentLanguage[] = "Translate.ContentLanguage";
15 const char kTranslateLanguageVerification[] = "Translate.LanguageVerification"; 15 const char kTranslateLanguageVerification[] = "Translate.LanguageVerification";
16 const char kTranslateTimeToBeReady[] = "Translate.TimeToBeReady"; 16 const char kTranslateTimeToBeReady[] = "Translate.TimeToBeReady";
17 const char kTranslateTimeToLoad[] = "Translate.TimeToLoad"; 17 const char kTranslateTimeToLoad[] = "Translate.TimeToLoad";
18 const char kTranslateTimeToTranslate[] = "Translate.TimeToTranslate"; 18 const char kTranslateTimeToTranslate[] = "Translate.TimeToTranslate";
19 const char kTranslateUserActionDuration[] = "Translate.UserActionDuration";
19 20
20 struct MetricsEntry { 21 struct MetricsEntry {
21 TranslateHelperMetrics::MetricsNameIndex index; 22 TranslateHelperMetrics::MetricsNameIndex index;
22 const char* const name; 23 const char* const name;
23 }; 24 };
24 25
25 // This entry table should be updated when new UMA item is added. 26 // This entry table should be updated when new UMA item is added.
26 const MetricsEntry kMetricsEntries[] = { 27 const MetricsEntry kMetricsEntries[] = {
27 { TranslateHelperMetrics::UMA_LANGUAGE_DETECTION, 28 { TranslateHelperMetrics::UMA_LANGUAGE_DETECTION,
28 kRenderer4LanguageDetection }, 29 kRenderer4LanguageDetection },
29 { TranslateHelperMetrics::UMA_CONTENT_LANGUAGE, 30 { TranslateHelperMetrics::UMA_CONTENT_LANGUAGE,
30 kTranslateContentLanguage }, 31 kTranslateContentLanguage },
31 { TranslateHelperMetrics::UMA_LANGUAGE_VERIFICATION, 32 { TranslateHelperMetrics::UMA_LANGUAGE_VERIFICATION,
32 kTranslateLanguageVerification }, 33 kTranslateLanguageVerification },
33 { TranslateHelperMetrics::UMA_TIME_TO_BE_READY, 34 { TranslateHelperMetrics::UMA_TIME_TO_BE_READY,
34 kTranslateTimeToBeReady }, 35 kTranslateTimeToBeReady },
35 { TranslateHelperMetrics::UMA_TIME_TO_LOAD, 36 { TranslateHelperMetrics::UMA_TIME_TO_LOAD,
36 kTranslateTimeToLoad }, 37 kTranslateTimeToLoad },
37 { TranslateHelperMetrics::UMA_TIME_TO_TRANSLATE, 38 { TranslateHelperMetrics::UMA_TIME_TO_TRANSLATE,
38 kTranslateTimeToTranslate }, 39 kTranslateTimeToTranslate },
40 { TranslateHelperMetrics::UMA_USER_ACTION_DURATION,
41 kTranslateUserActionDuration },
39 }; 42 };
40 43
MAD 2013/05/16 15:09:15 While you're there, we could add a COMPILE_ASSERT
Takashi Toyoshima 2013/05/16 16:46:45 Done by another CL which is already landed :)
41 } // namespace 44 } // namespace
42 45
43 namespace TranslateHelperMetrics { 46 namespace TranslateHelperMetrics {
44 47
45 void ReportContentLanguage(const std::string& provided_code, 48 void ReportContentLanguage(const std::string& provided_code,
46 const std::string& revised_code) { 49 const std::string& revised_code) {
47 if (provided_code.empty()) { 50 if (provided_code.empty()) {
48 UMA_HISTOGRAM_ENUMERATION(kTranslateContentLanguage, 51 UMA_HISTOGRAM_ENUMERATION(kTranslateContentLanguage,
49 CONTENT_LANGUAGE_NOT_PROVIDED, 52 CONTENT_LANGUAGE_NOT_PROVIDED,
50 CONTENT_LANGUAGE_MAX); 53 CONTENT_LANGUAGE_MAX);
(...skipping 25 matching lines...) Expand all
76 kTranslateTimeToLoad, 79 kTranslateTimeToLoad,
77 base::TimeDelta::FromMicroseconds(time_in_msec * 1000.0)); 80 base::TimeDelta::FromMicroseconds(time_in_msec * 1000.0));
78 } 81 }
79 82
80 void ReportTimeToTranslate(double time_in_msec) { 83 void ReportTimeToTranslate(double time_in_msec) {
81 UMA_HISTOGRAM_MEDIUM_TIMES( 84 UMA_HISTOGRAM_MEDIUM_TIMES(
82 kTranslateTimeToTranslate, 85 kTranslateTimeToTranslate,
83 base::TimeDelta::FromMicroseconds(time_in_msec * 1000.0)); 86 base::TimeDelta::FromMicroseconds(time_in_msec * 1000.0));
84 } 87 }
85 88
89 void ReportUserActionDuration(base::TimeTicks begin, base::TimeTicks end) {
90 UMA_HISTOGRAM_LONG_TIMES(kTranslateUserActionDuration, end - begin);
91 }
92
86 #if defined(ENABLE_LANGUAGE_DETECTION) 93 #if defined(ENABLE_LANGUAGE_DETECTION)
87 94
88 void ReportLanguageDetectionTime(base::TimeTicks begin, base::TimeTicks end) { 95 void ReportLanguageDetectionTime(base::TimeTicks begin, base::TimeTicks end) {
89 UMA_HISTOGRAM_MEDIUM_TIMES(kRenderer4LanguageDetection, end - begin); 96 UMA_HISTOGRAM_MEDIUM_TIMES(kRenderer4LanguageDetection, end - begin);
90 } 97 }
91 98
92 #endif // defined(ENABLE_LANGUAGE_DETECTION) 99 #endif // defined(ENABLE_LANGUAGE_DETECTION)
93 100
94 const char* GetMetricsName(MetricsNameIndex index) { 101 const char* GetMetricsName(MetricsNameIndex index) {
95 for (size_t i = 0; i < arraysize(kMetricsEntries); ++i) { 102 for (size_t i = 0; i < arraysize(kMetricsEntries); ++i) {
96 if (kMetricsEntries[i].index == index) 103 if (kMetricsEntries[i].index == index)
97 return kMetricsEntries[i].name; 104 return kMetricsEntries[i].name;
98 } 105 }
99 NOTREACHED(); 106 NOTREACHED();
100 return NULL; 107 return NULL;
101 } 108 }
102 109
103 } // namespace TranslateHelperMetrics 110 } // namespace TranslateHelperMetrics
OLDNEW
« no previous file with comments | « chrome/renderer/translate/translate_helper_metrics.h ('k') | chrome/renderer/translate/translate_helper_metrics_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698