| OLD | NEW | 
|    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/browser/translate/translate_browser_metrics.h" |    5 #include "chrome/browser/translate/translate_browser_metrics.h" | 
|    6  |    6  | 
|    7 #include <string> |    7 #include <string> | 
|    8  |    8  | 
|    9 #include "base/basictypes.h" |    9 #include "base/basictypes.h" | 
|   10 #include "base/metrics/histogram.h" |   10 #include "base/metrics/histogram.h" | 
|   11 #include "base/metrics/sparse_histogram.h" |   11 #include "base/metrics/sparse_histogram.h" | 
|   12 #include "chrome/browser/language_usage_metrics.h" |   12 #include "chrome/browser/language_usage_metrics.h" | 
|   13  |   13  | 
|   14 namespace { |   14 namespace { | 
|   15  |   15  | 
|   16 // Constant string values to indicate UMA names. All entries should have |   16 // Constant string values to indicate UMA names. All entries should have | 
|   17 // a corresponding index in MetricsNameIndex and an entry in |kMetricsEntries|. |   17 // a corresponding index in MetricsNameIndex and an entry in |kMetricsEntries|. | 
|   18 const char kTranslateInitiationStatus[] = |   18 const char kTranslateInitiationStatus[] = | 
|   19     "Translate.InitiationStatus.v2"; |   19     "Translate.InitiationStatus.v2"; | 
|   20 const char kTranslateReportLanguageDetectionError[] = |   20 const char kTranslateReportLanguageDetectionError[] = | 
|   21     "Translate.ReportLanguageDetectionError"; |   21     "Translate.ReportLanguageDetectionError"; | 
|   22 const char kTranslateLocalesOnDisabledByPrefs[] = |   22 const char kTranslateLocalesOnDisabledByPrefs[] = | 
|   23     "Translate.LocalesOnDisabledByPrefs"; |   23     "Translate.LocalesOnDisabledByPrefs"; | 
|   24 const char kTranslateUndisplayableLanguage[] = |   24 const char kTranslateUndisplayableLanguage[] = | 
|   25     "Translate.UndisplayableLanguage"; |   25     "Translate.UndisplayableLanguage"; | 
|   26 const char kTranslateUnsupportedLanguageAtInitiation[] = |   26 const char kTranslateUnsupportedLanguageAtInitiation[] = | 
|   27     "Translate.UnsupportedLanguageAtInitiation"; |   27     "Translate.UnsupportedLanguageAtInitiation"; | 
 |   28 const char kTranslateDeclineTranslate[] = "Translate.DeclineTranslate"; | 
 |   29 const char kTranslateRevertTranslation[] = "Translate.RevertTranslation"; | 
 |   30 const char kTranslatePerformTranslate[] = "Translate.Translate"; | 
 |   31 const char kTranslateNeverTranslateLang[] = "Translate.NeverTranslateLang"; | 
 |   32 const char kTranslateNeverTranslateSite[] = "Translate.NeverTranslateSite"; | 
 |   33 const char kTranslateAlwaysTranslateLang[] = "Translate.AlwaysTranslateLang"; | 
 |   34 const char kTranslateModifyOriginalLang[] = "Translate.ModifyOriginalLang"; | 
 |   35 const char kTranslateModifyTargetLang[] = "Translate.ModifyTargetLang"; | 
|   28  |   36  | 
|   29 struct MetricsEntry { |   37 struct MetricsEntry { | 
|   30   TranslateBrowserMetrics::MetricsNameIndex index; |   38   TranslateBrowserMetrics::MetricsNameIndex index; | 
|   31   const char* const name; |   39   const char* const name; | 
|   32 }; |   40 }; | 
|   33  |   41  | 
|   34 // This entry table should be updated when new UMA items are added. |   42 // This entry table should be updated when new UMA items are added. | 
|   35 const MetricsEntry kMetricsEntries[] = { |   43 const MetricsEntry kMetricsEntries[] = { | 
|   36   { TranslateBrowserMetrics::UMA_INITIATION_STATUS, |   44   { TranslateBrowserMetrics::UMA_INITIATION_STATUS, | 
|   37     kTranslateInitiationStatus }, |   45     kTranslateInitiationStatus }, | 
|   38   { TranslateBrowserMetrics::UMA_LANGUAGE_DETECTION_ERROR, |   46   { TranslateBrowserMetrics::UMA_LANGUAGE_DETECTION_ERROR, | 
|   39     kTranslateReportLanguageDetectionError }, |   47     kTranslateReportLanguageDetectionError }, | 
|   40   { TranslateBrowserMetrics::UMA_LOCALES_ON_DISABLED_BY_PREFS, |   48   { TranslateBrowserMetrics::UMA_LOCALES_ON_DISABLED_BY_PREFS, | 
|   41     kTranslateLocalesOnDisabledByPrefs }, |   49     kTranslateLocalesOnDisabledByPrefs }, | 
|   42   { TranslateBrowserMetrics::UMA_UNDISPLAYABLE_LANGUAGE, |   50   { TranslateBrowserMetrics::UMA_UNDISPLAYABLE_LANGUAGE, | 
|   43     kTranslateUndisplayableLanguage }, |   51     kTranslateUndisplayableLanguage }, | 
|   44   { TranslateBrowserMetrics::UMA_UNSUPPORTED_LANGUAGE_AT_INITIATION, |   52   { TranslateBrowserMetrics::UMA_UNSUPPORTED_LANGUAGE_AT_INITIATION, | 
|   45     kTranslateUnsupportedLanguageAtInitiation }, |   53     kTranslateUnsupportedLanguageAtInitiation }, | 
 |   54   { TranslateBrowserMetrics::UMA_DECLINE_TRANSLATE, | 
 |   55     kTranslateDeclineTranslate }, | 
 |   56   { TranslateBrowserMetrics::UMA_REVERT_TRANSLATION, | 
 |   57     kTranslateRevertTranslation }, | 
 |   58   { TranslateBrowserMetrics::UMA_PERFORM_TRANSLATE, | 
 |   59     kTranslatePerformTranslate }, | 
 |   60   { TranslateBrowserMetrics::UMA_NEVER_TRANSLATE_LANG, | 
 |   61     kTranslateNeverTranslateLang }, | 
 |   62   { TranslateBrowserMetrics::UMA_NEVER_TRANSLATE_SITE, | 
 |   63     kTranslateNeverTranslateSite }, | 
 |   64   { TranslateBrowserMetrics::UMA_ALWAYS_TRANSLATE_LANG, | 
 |   65     kTranslateAlwaysTranslateLang }, | 
 |   66   { TranslateBrowserMetrics::UMA_MODIFY_ORIGINAL_LANG, | 
 |   67     kTranslateModifyOriginalLang }, | 
 |   68   { TranslateBrowserMetrics::UMA_MODIFY_TARGET_LANG, | 
 |   69     kTranslateModifyTargetLang }, | 
|   46 }; |   70 }; | 
|   47  |   71  | 
|   48 COMPILE_ASSERT(arraysize(kMetricsEntries) == TranslateBrowserMetrics::UMA_MAX, |   72 COMPILE_ASSERT(arraysize(kMetricsEntries) == TranslateBrowserMetrics::UMA_MAX, | 
|   49                arraysize_of_kMetricsEntries_should_be_UMA_MAX); |   73                arraysize_of_kMetricsEntries_should_be_UMA_MAX); | 
|   50  |   74  | 
|   51 }  // namespace |   75 }  // namespace | 
|   52  |   76  | 
|   53 namespace TranslateBrowserMetrics { |   77 namespace TranslateBrowserMetrics { | 
|   54  |   78  | 
|   55 void ReportInitiationStatus(InitiationStatusType type) { |   79 void ReportInitiationStatus(InitiationStatusType type) { | 
| (...skipping 26 matching lines...) Expand all  Loading... | 
|   82 const char* GetMetricsName(MetricsNameIndex index) { |  106 const char* GetMetricsName(MetricsNameIndex index) { | 
|   83   for (size_t i = 0; i < arraysize(kMetricsEntries); ++i) { |  107   for (size_t i = 0; i < arraysize(kMetricsEntries); ++i) { | 
|   84     if (kMetricsEntries[i].index == index) |  108     if (kMetricsEntries[i].index == index) | 
|   85       return kMetricsEntries[i].name; |  109       return kMetricsEntries[i].name; | 
|   86   } |  110   } | 
|   87   NOTREACHED(); |  111   NOTREACHED(); | 
|   88   return NULL; |  112   return NULL; | 
|   89 } |  113 } | 
|   90  |  114  | 
|   91 }  // namespace TranslateBrowserMetrics |  115 }  // namespace TranslateBrowserMetrics | 
| OLD | NEW |