OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "components/translate/core/common/translate_metrics.h" | 5 #include "components/translate/core/common/translate_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 #include "url/url_constants.h" |
9 | 10 |
10 namespace translate { | 11 namespace translate { |
11 | 12 |
12 namespace { | 13 namespace { |
13 | 14 |
14 // Constant string values to indicate UMA names. All entries should have | 15 // Constant string values to indicate UMA names. All entries should have |
15 // a corresponding index in MetricsNameIndex and an entry in |kMetricsEntries|. | 16 // a corresponding index in MetricsNameIndex and an entry in |kMetricsEntries|. |
16 const char kRenderer4LanguageDetection[] = "Renderer4.LanguageDetection"; | 17 const char kRenderer4LanguageDetection[] = "Renderer4.LanguageDetection"; |
17 const char kTranslateContentLanguage[] = "Translate.ContentLanguage"; | 18 const char kTranslateContentLanguage[] = "Translate.ContentLanguage"; |
18 const char kTranslateHtmlLang[] = "Translate.HtmlLang"; | 19 const char kTranslateHtmlLang[] = "Translate.HtmlLang"; |
19 const char kTranslateLanguageVerification[] = "Translate.LanguageVerification"; | 20 const char kTranslateLanguageVerification[] = "Translate.LanguageVerification"; |
20 const char kTranslateTimeToBeReady[] = "Translate.TimeToBeReady"; | 21 const char kTranslateTimeToBeReady[] = "Translate.TimeToBeReady"; |
21 const char kTranslateTimeToLoad[] = "Translate.TimeToLoad"; | 22 const char kTranslateTimeToLoad[] = "Translate.TimeToLoad"; |
22 const char kTranslateTimeToTranslate[] = "Translate.TimeToTranslate"; | 23 const char kTranslateTimeToTranslate[] = "Translate.TimeToTranslate"; |
23 const char kTranslateUserActionDuration[] = "Translate.UserActionDuration"; | 24 const char kTranslateUserActionDuration[] = "Translate.UserActionDuration"; |
24 const char kTranslatePageScheme[] = "Translate.PageScheme"; | 25 const char kTranslatePageScheme[] = "Translate.PageScheme"; |
25 const char kTranslateSimilarLanguageMatch[] = "Translate.SimilarLanguageMatch"; | 26 const char kTranslateSimilarLanguageMatch[] = "Translate.SimilarLanguageMatch"; |
26 | 27 |
27 const char kSchemeHttp[] = "http"; | |
28 const char kSchemeHttps[] = "https"; | |
29 | |
30 struct MetricsEntry { | 28 struct MetricsEntry { |
31 MetricsNameIndex index; | 29 MetricsNameIndex index; |
32 const char* const name; | 30 const char* const name; |
33 }; | 31 }; |
34 | 32 |
35 // This entry table should be updated when new UMA items are added. | 33 // This entry table should be updated when new UMA items are added. |
36 const MetricsEntry kMetricsEntries[] = { | 34 const MetricsEntry kMetricsEntries[] = { |
37 {UMA_LANGUAGE_DETECTION, kRenderer4LanguageDetection}, | 35 {UMA_LANGUAGE_DETECTION, kRenderer4LanguageDetection}, |
38 {UMA_CONTENT_LANGUAGE, kTranslateContentLanguage}, | 36 {UMA_CONTENT_LANGUAGE, kTranslateContentLanguage}, |
39 {UMA_HTML_LANG, kTranslateHtmlLang}, | 37 {UMA_HTML_LANG, kTranslateHtmlLang}, |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 base::TimeDelta::FromMicroseconds( | 97 base::TimeDelta::FromMicroseconds( |
100 static_cast<int64>(time_in_msec * 1000.0))); | 98 static_cast<int64>(time_in_msec * 1000.0))); |
101 } | 99 } |
102 | 100 |
103 void ReportUserActionDuration(base::TimeTicks begin, base::TimeTicks end) { | 101 void ReportUserActionDuration(base::TimeTicks begin, base::TimeTicks end) { |
104 UMA_HISTOGRAM_LONG_TIMES(kTranslateUserActionDuration, end - begin); | 102 UMA_HISTOGRAM_LONG_TIMES(kTranslateUserActionDuration, end - begin); |
105 } | 103 } |
106 | 104 |
107 void ReportPageScheme(const std::string& scheme) { | 105 void ReportPageScheme(const std::string& scheme) { |
108 SchemeType type = SCHEME_OTHERS; | 106 SchemeType type = SCHEME_OTHERS; |
109 if (scheme == kSchemeHttp) | 107 if (scheme == url::kHttpScheme) |
110 type = SCHEME_HTTP; | 108 type = SCHEME_HTTP; |
111 else if (scheme == kSchemeHttps) | 109 else if (scheme == url::kHttpsScheme) |
112 type = SCHEME_HTTPS; | 110 type = SCHEME_HTTPS; |
113 UMA_HISTOGRAM_ENUMERATION(kTranslatePageScheme, type, SCHEME_MAX); | 111 UMA_HISTOGRAM_ENUMERATION(kTranslatePageScheme, type, SCHEME_MAX); |
114 } | 112 } |
115 | 113 |
116 void ReportLanguageDetectionTime(base::TimeTicks begin, base::TimeTicks end) { | 114 void ReportLanguageDetectionTime(base::TimeTicks begin, base::TimeTicks end) { |
117 UMA_HISTOGRAM_MEDIUM_TIMES(kRenderer4LanguageDetection, end - begin); | 115 UMA_HISTOGRAM_MEDIUM_TIMES(kRenderer4LanguageDetection, end - begin); |
118 } | 116 } |
119 | 117 |
120 void ReportSimilarLanguageMatch(bool match) { | 118 void ReportSimilarLanguageMatch(bool match) { |
121 UMA_HISTOGRAM_BOOLEAN(kTranslateSimilarLanguageMatch, match); | 119 UMA_HISTOGRAM_BOOLEAN(kTranslateSimilarLanguageMatch, match); |
122 } | 120 } |
123 | 121 |
124 const char* GetMetricsName(MetricsNameIndex index) { | 122 const char* GetMetricsName(MetricsNameIndex index) { |
125 for (size_t i = 0; i < arraysize(kMetricsEntries); ++i) { | 123 for (size_t i = 0; i < arraysize(kMetricsEntries); ++i) { |
126 if (kMetricsEntries[i].index == index) | 124 if (kMetricsEntries[i].index == index) |
127 return kMetricsEntries[i].name; | 125 return kMetricsEntries[i].name; |
128 } | 126 } |
129 NOTREACHED(); | 127 NOTREACHED(); |
130 return NULL; | 128 return NULL; |
131 } | 129 } |
132 | 130 |
133 } // namespace translate | 131 } // namespace translate |
OLD | NEW |