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

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: 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 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 22
22 struct MetricsEntry { 23 struct MetricsEntry {
23 TranslateHelperMetrics::MetricsNameIndex index; 24 TranslateHelperMetrics::MetricsNameIndex index;
24 const char* const name; 25 const char* const name;
25 }; 26 };
26 27
27 // This entry table should be updated when new UMA items are added. 28 // This entry table should be updated when new UMA items are added.
28 const MetricsEntry kMetricsEntries[] = { 29 const MetricsEntry kMetricsEntries[] = {
29 { TranslateHelperMetrics::UMA_LANGUAGE_DETECTION, 30 { TranslateHelperMetrics::UMA_LANGUAGE_DETECTION,
30 kRenderer4LanguageDetection }, 31 kRenderer4LanguageDetection },
31 { TranslateHelperMetrics::UMA_CONTENT_LANGUAGE, 32 { TranslateHelperMetrics::UMA_CONTENT_LANGUAGE,
32 kTranslateContentLanguage }, 33 kTranslateContentLanguage },
34 { TranslateHelperMetrics::UMA_HTML_LANG,
35 kTranslateHtmlLang },
33 { TranslateHelperMetrics::UMA_LANGUAGE_VERIFICATION, 36 { TranslateHelperMetrics::UMA_LANGUAGE_VERIFICATION,
34 kTranslateLanguageVerification }, 37 kTranslateLanguageVerification },
35 { TranslateHelperMetrics::UMA_TIME_TO_BE_READY, 38 { TranslateHelperMetrics::UMA_TIME_TO_BE_READY,
36 kTranslateTimeToBeReady }, 39 kTranslateTimeToBeReady },
37 { TranslateHelperMetrics::UMA_TIME_TO_LOAD, 40 { TranslateHelperMetrics::UMA_TIME_TO_LOAD,
38 kTranslateTimeToLoad }, 41 kTranslateTimeToLoad },
39 { TranslateHelperMetrics::UMA_TIME_TO_TRANSLATE, 42 { TranslateHelperMetrics::UMA_TIME_TO_TRANSLATE,
40 kTranslateTimeToTranslate }, 43 kTranslateTimeToTranslate },
41 { TranslateHelperMetrics::UMA_USER_ACTION_DURATION, 44 { TranslateHelperMetrics::UMA_USER_ACTION_DURATION,
42 kTranslateUserActionDuration }, 45 kTranslateUserActionDuration },
43 }; 46 };
44 47
45 COMPILE_ASSERT(arraysize(kMetricsEntries) == TranslateHelperMetrics::UMA_MAX, 48 COMPILE_ASSERT(arraysize(kMetricsEntries) == TranslateHelperMetrics::UMA_MAX,
46 arraysize_of_kMetricsEntries_should_be_UMA_MAX); 49 arraysize_of_kMetricsEntries_should_be_UMA_MAX);
47 50
51 void ReportLanguageCheck(const char* metric_name,
52 const std::string& provided_code,
53 const std::string& revised_code) {
54 if (provided_code.empty()) {
55 UMA_HISTOGRAM_ENUMERATION(metric_name,
Ilya Sherman 2013/05/22 20:26:17 This won't work as you want it to -- the histogram
Takashi Toyoshima 2013/05/23 00:37:14 Thanks. As you said, unit_tests fails on this. (So
56 TranslateHelperMetrics::LANGUAGE_NOT_PROVIDED,
57 TranslateHelperMetrics::LANGUAGE_MAX);
58 } else if (provided_code == revised_code) {
59 UMA_HISTOGRAM_ENUMERATION(metric_name,
60 TranslateHelperMetrics::LANGUAGE_VALID,
61 TranslateHelperMetrics::LANGUAGE_MAX);
62 } else {
63 UMA_HISTOGRAM_ENUMERATION(metric_name,
64 TranslateHelperMetrics::LANGUAGE_INVALID,
65 TranslateHelperMetrics::LANGUAGE_MAX);
66 }
67 }
68
48 } // namespace 69 } // namespace
49 70
50 namespace TranslateHelperMetrics { 71 namespace TranslateHelperMetrics {
51 72
52 void ReportContentLanguage(const std::string& provided_code, 73 void ReportContentLanguage(const std::string& provided_code,
53 const std::string& revised_code) { 74 const std::string& revised_code) {
54 if (provided_code.empty()) { 75 ReportLanguageCheck(kTranslateContentLanguage, provided_code, revised_code);
55 UMA_HISTOGRAM_ENUMERATION(kTranslateContentLanguage, 76 }
56 CONTENT_LANGUAGE_NOT_PROVIDED, 77
57 CONTENT_LANGUAGE_MAX); 78 void ReportHtmlLang(const std::string& provided_code,
58 } else if (provided_code == revised_code) { 79 const std::string& revised_code) {
59 UMA_HISTOGRAM_ENUMERATION(kTranslateContentLanguage, 80 ReportLanguageCheck(kTranslateHtmlLang, provided_code, revised_code);
60 CONTENT_LANGUAGE_VALID,
61 CONTENT_LANGUAGE_MAX);
62 } else {
63 UMA_HISTOGRAM_ENUMERATION(kTranslateContentLanguage,
64 CONTENT_LANGUAGE_INVALID,
65 CONTENT_LANGUAGE_MAX);
66 }
67 } 81 }
68 82
69 void ReportLanguageVerification(LanguageVerificationType type) { 83 void ReportLanguageVerification(LanguageVerificationType type) {
70 UMA_HISTOGRAM_ENUMERATION(kTranslateLanguageVerification, 84 UMA_HISTOGRAM_ENUMERATION(kTranslateLanguageVerification,
71 type, 85 type,
72 LANGUAGE_VERIFICATION_MAX); 86 LANGUAGE_VERIFICATION_MAX);
73 } 87 }
74 88
75 void ReportTimeToBeReady(double time_in_msec) { 89 void ReportTimeToBeReady(double time_in_msec) {
76 UMA_HISTOGRAM_MEDIUM_TIMES( 90 UMA_HISTOGRAM_MEDIUM_TIMES(
(...skipping 28 matching lines...) Expand all
105 const char* GetMetricsName(MetricsNameIndex index) { 119 const char* GetMetricsName(MetricsNameIndex index) {
106 for (size_t i = 0; i < arraysize(kMetricsEntries); ++i) { 120 for (size_t i = 0; i < arraysize(kMetricsEntries); ++i) {
107 if (kMetricsEntries[i].index == index) 121 if (kMetricsEntries[i].index == index)
108 return kMetricsEntries[i].name; 122 return kMetricsEntries[i].name;
109 } 123 }
110 NOTREACHED(); 124 NOTREACHED();
111 return NULL; 125 return NULL;
112 } 126 }
113 127
114 } // namespace TranslateHelperMetrics 128 } // namespace TranslateHelperMetrics
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698