| 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..5b11d30548b4e0b698074cad0e3ff7a83357eff0 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 entries should have
|
| +// 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 items are added.
|
| +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(kTranslateServerReportedUnsupportedLanguage, 1);
|
| +}
|
| +
|
| +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
|
|
|