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

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

Issue 15728002: Translate: adopt html lang attribute if valid value is provided (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix WindowOpenClose crash Created 7 years, 6 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 kTranslateHtmlLang[] = "Translate.HtmlLang";
16 const char kTranslateLanguageVerification[] = "Translate.LanguageVerification"; 17 const char kTranslateLanguageVerification[] = "Translate.LanguageVerification";
17 const char kTranslateTimeToBeReady[] = "Translate.TimeToBeReady"; 18 const char kTranslateTimeToBeReady[] = "Translate.TimeToBeReady";
18 const char kTranslateTimeToLoad[] = "Translate.TimeToLoad"; 19 const char kTranslateTimeToLoad[] = "Translate.TimeToLoad";
19 const char kTranslateTimeToTranslate[] = "Translate.TimeToTranslate"; 20 const char kTranslateTimeToTranslate[] = "Translate.TimeToTranslate";
20 const char kTranslateUserActionDuration[] = "Translate.UserActionDuration"; 21 const char kTranslateUserActionDuration[] = "Translate.UserActionDuration";
21 const char kTranslatePageScheme[] = "Translate.PageScheme"; 22 const char kTranslatePageScheme[] = "Translate.PageScheme";
22 23
23 const char kSchemeHttp[] = "http"; 24 const char kSchemeHttp[] = "http";
24 const char kSchemeHttps[] = "https"; 25 const char kSchemeHttps[] = "https";
25 26
26 struct MetricsEntry { 27 struct MetricsEntry {
27 TranslateHelperMetrics::MetricsNameIndex index; 28 TranslateHelperMetrics::MetricsNameIndex index;
28 const char* const name; 29 const char* const name;
29 }; 30 };
30 31
31 // This entry table should be updated when new UMA items are added. 32 // This entry table should be updated when new UMA items are added.
32 const MetricsEntry kMetricsEntries[] = { 33 const MetricsEntry kMetricsEntries[] = {
33 { TranslateHelperMetrics::UMA_LANGUAGE_DETECTION, 34 { TranslateHelperMetrics::UMA_LANGUAGE_DETECTION,
34 kRenderer4LanguageDetection }, 35 kRenderer4LanguageDetection },
35 { TranslateHelperMetrics::UMA_CONTENT_LANGUAGE, 36 { TranslateHelperMetrics::UMA_CONTENT_LANGUAGE,
36 kTranslateContentLanguage }, 37 kTranslateContentLanguage },
38 { TranslateHelperMetrics::UMA_HTML_LANG,
39 kTranslateHtmlLang },
37 { TranslateHelperMetrics::UMA_LANGUAGE_VERIFICATION, 40 { TranslateHelperMetrics::UMA_LANGUAGE_VERIFICATION,
38 kTranslateLanguageVerification }, 41 kTranslateLanguageVerification },
39 { TranslateHelperMetrics::UMA_TIME_TO_BE_READY, 42 { TranslateHelperMetrics::UMA_TIME_TO_BE_READY,
40 kTranslateTimeToBeReady }, 43 kTranslateTimeToBeReady },
41 { TranslateHelperMetrics::UMA_TIME_TO_LOAD, 44 { TranslateHelperMetrics::UMA_TIME_TO_LOAD,
42 kTranslateTimeToLoad }, 45 kTranslateTimeToLoad },
43 { TranslateHelperMetrics::UMA_TIME_TO_TRANSLATE, 46 { TranslateHelperMetrics::UMA_TIME_TO_TRANSLATE,
44 kTranslateTimeToTranslate }, 47 kTranslateTimeToTranslate },
45 { TranslateHelperMetrics::UMA_USER_ACTION_DURATION, 48 { TranslateHelperMetrics::UMA_USER_ACTION_DURATION,
46 kTranslateUserActionDuration }, 49 kTranslateUserActionDuration },
47 { TranslateHelperMetrics::UMA_PAGE_SCHEME, 50 { TranslateHelperMetrics::UMA_PAGE_SCHEME,
48 kTranslatePageScheme }, 51 kTranslatePageScheme },
49 }; 52 };
50 53
51 COMPILE_ASSERT(arraysize(kMetricsEntries) == TranslateHelperMetrics::UMA_MAX, 54 COMPILE_ASSERT(arraysize(kMetricsEntries) == TranslateHelperMetrics::UMA_MAX,
52 arraysize_of_kMetricsEntries_should_be_UMA_MAX); 55 arraysize_of_kMetricsEntries_should_be_UMA_MAX);
53 56
57 TranslateHelperMetrics::LanguageCheckType GetLanguageCheckMetric(
58 const std::string& provided_code,
59 const std::string& revised_code) {
60 if (provided_code.empty())
61 return TranslateHelperMetrics::LANGUAGE_NOT_PROVIDED;
62 else if (provided_code == revised_code)
63 return TranslateHelperMetrics::LANGUAGE_VALID;
64 return TranslateHelperMetrics::LANGUAGE_INVALID;
65 }
66
54 } // namespace 67 } // namespace
55 68
56 namespace TranslateHelperMetrics { 69 namespace TranslateHelperMetrics {
57 70
58 void ReportContentLanguage(const std::string& provided_code, 71 void ReportContentLanguage(const std::string& provided_code,
59 const std::string& revised_code) { 72 const std::string& revised_code) {
60 if (provided_code.empty()) { 73 UMA_HISTOGRAM_ENUMERATION(kTranslateContentLanguage,
61 UMA_HISTOGRAM_ENUMERATION(kTranslateContentLanguage, 74 GetLanguageCheckMetric(provided_code, revised_code),
62 CONTENT_LANGUAGE_NOT_PROVIDED, 75 TranslateHelperMetrics::LANGUAGE_MAX);
63 CONTENT_LANGUAGE_MAX); 76 }
64 } else if (provided_code == revised_code) { 77
65 UMA_HISTOGRAM_ENUMERATION(kTranslateContentLanguage, 78 void ReportHtmlLang(const std::string& provided_code,
66 CONTENT_LANGUAGE_VALID, 79 const std::string& revised_code) {
67 CONTENT_LANGUAGE_MAX); 80 UMA_HISTOGRAM_ENUMERATION(kTranslateHtmlLang,
68 } else { 81 GetLanguageCheckMetric(provided_code, revised_code),
69 UMA_HISTOGRAM_ENUMERATION(kTranslateContentLanguage, 82 TranslateHelperMetrics::LANGUAGE_MAX);
70 CONTENT_LANGUAGE_INVALID,
71 CONTENT_LANGUAGE_MAX);
72 }
73 } 83 }
74 84
75 void ReportLanguageVerification(LanguageVerificationType type) { 85 void ReportLanguageVerification(LanguageVerificationType type) {
76 UMA_HISTOGRAM_ENUMERATION(kTranslateLanguageVerification, 86 UMA_HISTOGRAM_ENUMERATION(kTranslateLanguageVerification,
77 type, 87 type,
78 LANGUAGE_VERIFICATION_MAX); 88 LANGUAGE_VERIFICATION_MAX);
79 } 89 }
80 90
81 void ReportTimeToBeReady(double time_in_msec) { 91 void ReportTimeToBeReady(double time_in_msec) {
82 UMA_HISTOGRAM_MEDIUM_TIMES( 92 UMA_HISTOGRAM_MEDIUM_TIMES(
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 const char* GetMetricsName(MetricsNameIndex index) { 130 const char* GetMetricsName(MetricsNameIndex index) {
121 for (size_t i = 0; i < arraysize(kMetricsEntries); ++i) { 131 for (size_t i = 0; i < arraysize(kMetricsEntries); ++i) {
122 if (kMetricsEntries[i].index == index) 132 if (kMetricsEntries[i].index == index)
123 return kMetricsEntries[i].name; 133 return kMetricsEntries[i].name;
124 } 134 }
125 NOTREACHED(); 135 NOTREACHED();
126 return NULL; 136 return NULL;
127 } 137 }
128 138
129 } // namespace TranslateHelperMetrics 139 } // 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