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

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: (rebase) 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/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/metrics/histogram.h" 8 #include "base/metrics/histogram.h"
9 9
10 namespace { 10 namespace {
11 11
12 // Constant string values to indicate UMA names. All entries should have 12 // Constant string values to indicate UMA names. All entries should have
13 // a corresponding index in MetricsNameIndex and an entry in |kMetricsEntries|. 13 // a corresponding index in MetricsNameIndex and an entry in |kMetricsEntries|.
14 const char kRenderer4LanguageDetection[] = "Renderer4.LanguageDetection"; 14 const char kRenderer4LanguageDetection[] = "Renderer4.LanguageDetection";
15 const char kTranslateContentLanguage[] = "Translate.ContentLanguage"; 15 const char kTranslateContentLanguage[] = "Translate.ContentLanguage";
16 const char kTranslateLanguageVerification[] = "Translate.LanguageVerification"; 16 const char kTranslateLanguageVerification[] = "Translate.LanguageVerification";
17 const char kTranslateTimeToBeReady[] = "Translate.TimeToBeReady"; 17 const char kTranslateTimeToBeReady[] = "Translate.TimeToBeReady";
18 const char kTranslateTimeToLoad[] = "Translate.TimeToLoad"; 18 const char kTranslateTimeToLoad[] = "Translate.TimeToLoad";
19 const char kTranslateTimeToTranslate[] = "Translate.TimeToTranslate"; 19 const char kTranslateTimeToTranslate[] = "Translate.TimeToTranslate";
20 const char kTranslateUserActionDuration[] = "Translate.UserActionDuration";
20 21
21 struct MetricsEntry { 22 struct MetricsEntry {
22 TranslateHelperMetrics::MetricsNameIndex index; 23 TranslateHelperMetrics::MetricsNameIndex index;
23 const char* const name; 24 const char* const name;
24 }; 25 };
25 26
26 // This entry table should be updated when new UMA items are added. 27 // This entry table should be updated when new UMA items are added.
27 const MetricsEntry kMetricsEntries[] = { 28 const MetricsEntry kMetricsEntries[] = {
28 { TranslateHelperMetrics::UMA_LANGUAGE_DETECTION, 29 { TranslateHelperMetrics::UMA_LANGUAGE_DETECTION,
29 kRenderer4LanguageDetection }, 30 kRenderer4LanguageDetection },
30 { TranslateHelperMetrics::UMA_CONTENT_LANGUAGE, 31 { TranslateHelperMetrics::UMA_CONTENT_LANGUAGE,
31 kTranslateContentLanguage }, 32 kTranslateContentLanguage },
32 { TranslateHelperMetrics::UMA_LANGUAGE_VERIFICATION, 33 { TranslateHelperMetrics::UMA_LANGUAGE_VERIFICATION,
33 kTranslateLanguageVerification }, 34 kTranslateLanguageVerification },
34 { TranslateHelperMetrics::UMA_TIME_TO_BE_READY, 35 { TranslateHelperMetrics::UMA_TIME_TO_BE_READY,
35 kTranslateTimeToBeReady }, 36 kTranslateTimeToBeReady },
36 { TranslateHelperMetrics::UMA_TIME_TO_LOAD, 37 { TranslateHelperMetrics::UMA_TIME_TO_LOAD,
37 kTranslateTimeToLoad }, 38 kTranslateTimeToLoad },
38 { TranslateHelperMetrics::UMA_TIME_TO_TRANSLATE, 39 { TranslateHelperMetrics::UMA_TIME_TO_TRANSLATE,
39 kTranslateTimeToTranslate }, 40 kTranslateTimeToTranslate },
41 { TranslateHelperMetrics::UMA_USER_ACTION_DURATION,
42 kTranslateUserActionDuration },
40 }; 43 };
41 44
42 COMPILE_ASSERT(arraysize(kMetricsEntries) == TranslateHelperMetrics::UMA_MAX, 45 COMPILE_ASSERT(arraysize(kMetricsEntries) == TranslateHelperMetrics::UMA_MAX,
43 arraysize_of_kMetricsEntries_should_be_UMA_MAX); 46 arraysize_of_kMetricsEntries_should_be_UMA_MAX);
44 47
45 } // namespace 48 } // namespace
46 49
47 namespace TranslateHelperMetrics { 50 namespace TranslateHelperMetrics {
48 51
49 void ReportContentLanguage(const std::string& provided_code, 52 void ReportContentLanguage(const std::string& provided_code,
(...skipping 30 matching lines...) Expand all
80 kTranslateTimeToLoad, 83 kTranslateTimeToLoad,
81 base::TimeDelta::FromMicroseconds(time_in_msec * 1000.0)); 84 base::TimeDelta::FromMicroseconds(time_in_msec * 1000.0));
82 } 85 }
83 86
84 void ReportTimeToTranslate(double time_in_msec) { 87 void ReportTimeToTranslate(double time_in_msec) {
85 UMA_HISTOGRAM_MEDIUM_TIMES( 88 UMA_HISTOGRAM_MEDIUM_TIMES(
86 kTranslateTimeToTranslate, 89 kTranslateTimeToTranslate,
87 base::TimeDelta::FromMicroseconds(time_in_msec * 1000.0)); 90 base::TimeDelta::FromMicroseconds(time_in_msec * 1000.0));
88 } 91 }
89 92
93 void ReportUserActionDuration(base::TimeTicks begin, base::TimeTicks end) {
94 UMA_HISTOGRAM_LONG_TIMES(kTranslateUserActionDuration, end - begin);
95 }
96
90 #if defined(ENABLE_LANGUAGE_DETECTION) 97 #if defined(ENABLE_LANGUAGE_DETECTION)
91 98
92 void ReportLanguageDetectionTime(base::TimeTicks begin, base::TimeTicks end) { 99 void ReportLanguageDetectionTime(base::TimeTicks begin, base::TimeTicks end) {
93 UMA_HISTOGRAM_MEDIUM_TIMES(kRenderer4LanguageDetection, end - begin); 100 UMA_HISTOGRAM_MEDIUM_TIMES(kRenderer4LanguageDetection, end - begin);
94 } 101 }
95 102
96 #endif // defined(ENABLE_LANGUAGE_DETECTION) 103 #endif // defined(ENABLE_LANGUAGE_DETECTION)
97 104
98 const char* GetMetricsName(MetricsNameIndex index) { 105 const char* GetMetricsName(MetricsNameIndex index) {
99 for (size_t i = 0; i < arraysize(kMetricsEntries); ++i) { 106 for (size_t i = 0; i < arraysize(kMetricsEntries); ++i) {
100 if (kMetricsEntries[i].index == index) 107 if (kMetricsEntries[i].index == index)
101 return kMetricsEntries[i].name; 108 return kMetricsEntries[i].name;
102 } 109 }
103 NOTREACHED(); 110 NOTREACHED();
104 return NULL; 111 return NULL;
105 } 112 }
106 113
107 } // namespace TranslateHelperMetrics 114 } // 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