Chromium Code Reviews| Index: chrome/browser/translate/translate_manager_metrics.cc |
| diff --git a/chrome/browser/translate/translate_manager_metrics.cc b/chrome/browser/translate/translate_manager_metrics.cc |
| index bbb311f277798bbf7d16151e1f19c1739616d428..2296110d46f4cb280db2eb34795d87af3a3f2613 100644 |
| --- a/chrome/browser/translate/translate_manager_metrics.cc |
| +++ b/chrome/browser/translate/translate_manager_metrics.cc |
| @@ -4,11 +4,37 @@ |
| #include "chrome/browser/translate/translate_manager_metrics.h" |
| +#include "base/basictypes.h" |
| #include "base/metrics/histogram.h" |
| namespace { |
| -const char kTranslateInitiationStatus[] = "Translate.InitiationStatus"; |
| +// Constant string values to indicate UMA names. All entry should have |
|
MAD
2013/05/15 01:32:48
All entry -> All entries
Takashi Toyoshima
2013/05/15 07:35:04
Oops. This is a mistake belonging to "All your bas
|
| +// a corresponding index in MetricsNameIndex and an entry in |kMetricsEntries|. |
| +const char kTranslateInitiationStatus[] = |
| + "Translate.InitiationStatus"; |
| +const char kTranslateReportLanguageDetectionError[] = |
| + "Translate.ReportLanguageDetectionError"; |
| +const char kTranslateServerReportedUnsupportedLanguage[] = |
| + "Translate.ServerReportedUnsupportedLanguage"; |
| + |
| +struct MetricsEntry { |
| + TranslateManagerMetrics::MetricsNameIndex index; |
| + const char* const name; |
| +}; |
| + |
| +// This entry table should be updated when new UMA item is added. |
|
MAD
2013/05/15 01:32:48
item is -> items are
Takashi Toyoshima
2013/05/15 07:35:04
Done.
|
| +const MetricsEntry kMetricsEntries[] = { |
| + { TranslateManagerMetrics::UMA_INITIATION_STATUS, |
| + kTranslateInitiationStatus }, |
| + { TranslateManagerMetrics::UMA_LANGUAGE_DETECTION_ERROR, |
| + kTranslateReportLanguageDetectionError }, |
| + { TranslateManagerMetrics::UMA_SERVER_REPORTED_UNSUPPORTED_LANGUAGE, |
| + kTranslateServerReportedUnsupportedLanguage }, |
| +}; |
| + |
| +COMPILE_ASSERT(arraysize(kMetricsEntries) == TranslateManagerMetrics::UMA_MAX, |
| + arraysize_of_kMetricsEntries_should_be_UMA_MAX); |
| } // namespace |
| @@ -20,15 +46,21 @@ void ReportInitiationStatus(InitiationStatusType type) { |
| INITIATION_STATUS_MAX); |
| } |
| -const char* GetMetricsName(MetricsNameIndex index) { |
| - const char* names[] = { |
| - kTranslateInitiationStatus, |
| - }; |
| - CHECK(index < UMA_MAX); |
| - return names[index]; |
| +void ReportLanguageDetectionError() { |
| + UMA_HISTOGRAM_COUNTS(kTranslateReportLanguageDetectionError, 1); |
| } |
| -// TODO(toyoshim): Move UMA related code in TranslateManager to |
| -// TranslateManagerMetrics. |
| +void ReportUnsupportedLanguage() { |
| + UMA_HISTOGRAM_COUNTS("Translate.ServerReportedUnsupportedLanguage", 1); |
|
MAD
2013/05/15 01:32:48
Oupss... Please use the variable...
Takashi Toyoshima
2013/05/15 07:35:04
Sorry for poor copy and paste...
|
| +} |
| + |
| +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 TranslateManagerMetrics |