Index: components/translate/core/common/translate_metrics.cc |
diff --git a/components/translate/core/common/translate_metrics.cc b/components/translate/core/common/translate_metrics.cc |
index 572bcbb754ba01b7e0b51cbf51a5c6553507ef00..e945f9cd024095eb1a992b8f2c615fa4174aba92 100644 |
--- a/components/translate/core/common/translate_metrics.cc |
+++ b/components/translate/core/common/translate_metrics.cc |
@@ -15,10 +15,8 @@ |
namespace translate { |
-namespace { |
+namespace metrics_internal { |
-// Constant string values to indicate UMA names. All entries should have |
-// a corresponding index in MetricsNameIndex and an entry in |kMetricsEntries|. |
const char kRenderer4LanguageDetection[] = "Renderer4.LanguageDetection"; |
const char kTranslateContentLanguage[] = "Translate.ContentLanguage"; |
const char kTranslateHtmlLang[] = "Translate.HtmlLang"; |
@@ -32,28 +30,9 @@ const char kTranslateSimilarLanguageMatch[] = "Translate.SimilarLanguageMatch"; |
const char kTranslateLanguageDetectionConflict[] = |
"Translate.LanguageDetectionConflict"; |
-struct MetricsEntry { |
- MetricsNameIndex index; |
- const char* const name; |
-}; |
- |
-// This entry table should be updated when new UMA items are added. |
-const MetricsEntry kMetricsEntries[] = { |
- {UMA_LANGUAGE_DETECTION, kRenderer4LanguageDetection}, |
- {UMA_CONTENT_LANGUAGE, kTranslateContentLanguage}, |
- {UMA_HTML_LANG, kTranslateHtmlLang}, |
- {UMA_LANGUAGE_VERIFICATION, kTranslateLanguageVerification}, |
- {UMA_TIME_TO_BE_READY, kTranslateTimeToBeReady}, |
- {UMA_TIME_TO_LOAD, kTranslateTimeToLoad}, |
- {UMA_TIME_TO_TRANSLATE, kTranslateTimeToTranslate}, |
- {UMA_USER_ACTION_DURATION, kTranslateUserActionDuration}, |
- {UMA_PAGE_SCHEME, kTranslatePageScheme}, |
- {UMA_SIMILAR_LANGUAGE_MATCH, kTranslateSimilarLanguageMatch}, |
- {UMA_LANGUAGE_DETECTION_CONFLICT, kTranslateLanguageDetectionConflict}, |
-}; |
- |
-static_assert(arraysize(kMetricsEntries) == UMA_MAX, |
- "kMetricsEntries should have UMA_MAX elements"); |
+} // namespace metrics_internal |
+ |
+namespace { |
// Page languages for which we track CLD3 language conflicts. |
const char* kLanguageDetectionConflictPageLangs[] = { |
@@ -72,43 +51,44 @@ LanguageCheckType GetLanguageCheckMetric(const std::string& provided_code, |
void ReportContentLanguage(const std::string& provided_code, |
const std::string& revised_code) { |
- UMA_HISTOGRAM_ENUMERATION(kTranslateContentLanguage, |
+ UMA_HISTOGRAM_ENUMERATION(metrics_internal::kTranslateContentLanguage, |
GetLanguageCheckMetric(provided_code, revised_code), |
LANGUAGE_MAX); |
} |
void ReportHtmlLang(const std::string& provided_code, |
const std::string& revised_code) { |
- UMA_HISTOGRAM_ENUMERATION(kTranslateHtmlLang, |
+ UMA_HISTOGRAM_ENUMERATION(metrics_internal::kTranslateHtmlLang, |
GetLanguageCheckMetric(provided_code, revised_code), |
LANGUAGE_MAX); |
} |
void ReportLanguageVerification(LanguageVerificationType type) { |
- UMA_HISTOGRAM_ENUMERATION(kTranslateLanguageVerification, type, |
- LANGUAGE_VERIFICATION_MAX); |
+ UMA_HISTOGRAM_ENUMERATION(metrics_internal::kTranslateLanguageVerification, |
+ type, LANGUAGE_VERIFICATION_MAX); |
} |
void ReportTimeToBeReady(double time_in_msec) { |
- UMA_HISTOGRAM_MEDIUM_TIMES(kTranslateTimeToBeReady, |
+ UMA_HISTOGRAM_MEDIUM_TIMES(metrics_internal::kTranslateTimeToBeReady, |
base::TimeDelta::FromMicroseconds( |
static_cast<int64_t>(time_in_msec * 1000.0))); |
} |
void ReportTimeToLoad(double time_in_msec) { |
- UMA_HISTOGRAM_MEDIUM_TIMES(kTranslateTimeToLoad, |
+ UMA_HISTOGRAM_MEDIUM_TIMES(metrics_internal::kTranslateTimeToLoad, |
base::TimeDelta::FromMicroseconds( |
static_cast<int64_t>(time_in_msec * 1000.0))); |
} |
void ReportTimeToTranslate(double time_in_msec) { |
- UMA_HISTOGRAM_MEDIUM_TIMES(kTranslateTimeToTranslate, |
+ UMA_HISTOGRAM_MEDIUM_TIMES(metrics_internal::kTranslateTimeToTranslate, |
base::TimeDelta::FromMicroseconds( |
static_cast<int64_t>(time_in_msec * 1000.0))); |
} |
void ReportUserActionDuration(base::TimeTicks begin, base::TimeTicks end) { |
- UMA_HISTOGRAM_LONG_TIMES(kTranslateUserActionDuration, end - begin); |
+ UMA_HISTOGRAM_LONG_TIMES(metrics_internal::kTranslateUserActionDuration, |
+ end - begin); |
} |
void ReportPageScheme(const std::string& scheme) { |
@@ -117,15 +97,18 @@ void ReportPageScheme(const std::string& scheme) { |
type = SCHEME_HTTP; |
else if (scheme == url::kHttpsScheme) |
type = SCHEME_HTTPS; |
- UMA_HISTOGRAM_ENUMERATION(kTranslatePageScheme, type, SCHEME_MAX); |
+ UMA_HISTOGRAM_ENUMERATION(metrics_internal::kTranslatePageScheme, type, |
+ SCHEME_MAX); |
} |
void ReportLanguageDetectionTime(base::TimeTicks begin, base::TimeTicks end) { |
- UMA_HISTOGRAM_MEDIUM_TIMES(kRenderer4LanguageDetection, end - begin); |
+ UMA_HISTOGRAM_MEDIUM_TIMES(metrics_internal::kRenderer4LanguageDetection, |
+ end - begin); |
} |
void ReportSimilarLanguageMatch(bool match) { |
- UMA_HISTOGRAM_BOOLEAN(kTranslateSimilarLanguageMatch, match); |
+ UMA_HISTOGRAM_BOOLEAN(metrics_internal::kTranslateSimilarLanguageMatch, |
+ match); |
} |
void ReportLanguageDetectionConflict(const std::string& page_lang, |
@@ -137,17 +120,8 @@ void ReportLanguageDetectionConflict(const std::string& page_lang, |
it == std::end(kLanguageDetectionConflictPageLangs) ? "other" : *it; |
UMA_HISTOGRAM_SPARSE_SLOWLY( |
- kTranslateLanguageDetectionConflict, |
+ metrics_internal::kTranslateLanguageDetectionConflict, |
base::HashMetricName(page_lang_token + "," + cld_lang)); |
} |
-const char* GetMetricsName(MetricsNameIndex index) { |
- for (size_t i = 0; i < arraysize(kMetricsEntries); ++i) { |
- if (kMetricsEntries[i].index == index) |
- return kMetricsEntries[i].name; |
- } |
- NOTREACHED(); |
- return NULL; |
-} |
- |
} // namespace translate |