| 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
|
|
|