Home | History | Annotate | Download | only in translate
      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
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROME_BROWSER_TRANSLATE_TRANSLATE_BROWSER_METRICS_H_
      6 #define CHROME_BROWSER_TRANSLATE_TRANSLATE_BROWSER_METRICS_H_
      7 
      8 #include <string>
      9 
     10 namespace TranslateBrowserMetrics {
     11 
     12 // An indexing type to query each UMA entry name via GetMetricsName() function.
     13 // Note: |kMetricsEntries| should be updated when a new entry is added here.
     14 enum MetricsNameIndex {
     15   UMA_INITIATION_STATUS,
     16   UMA_LANGUAGE_DETECTION_ERROR,
     17   UMA_LOCALES_ON_DISABLED_BY_PREFS,
     18   UMA_UNDISPLAYABLE_LANGUAGE,
     19   UMA_UNSUPPORTED_LANGUAGE_AT_INITIATION,
     20   UMA_MAX,
     21 };
     22 
     23 // When Chrome Translate is ready to translate a page, one of following reason
     24 // decide the next browser action.
     25 enum InitiationStatusType {
     26   INITIATION_STATUS_DISABLED_BY_PREFS,
     27   INITIATION_STATUS_DISABLED_BY_SWITCH,
     28   INITIATION_STATUS_DISABLED_BY_CONFIG,
     29   INITIATION_STATUS_LANGUAGE_IS_NOT_SUPPORTED,
     30   INITIATION_STATUS_MIME_TYPE_IS_NOT_SUPPORTED,
     31   INITIATION_STATUS_URL_IS_NOT_SUPPORTED,
     32   INITIATION_STATUS_SIMILAR_LANGUAGES,
     33   INITIATION_STATUS_ACCEPT_LANGUAGES,
     34 
     35   INITIATION_STATUS_AUTO_BY_CONFIG,
     36   INITIATION_STATUS_AUTO_BY_LINK,
     37   INITIATION_STATUS_SHOW_INFOBAR,
     38 
     39   INITIATION_STATUS_MAX,
     40 };
     41 
     42 // Called when Chrome Translate is initiated to report a reason of the next
     43 // browser action.
     44 void ReportInitiationStatus(InitiationStatusType type);
     45 
     46 // Called when Chrome opens the URL so that the user sends an error feedback.
     47 void ReportLanguageDetectionError();
     48 
     49 void ReportLocalesOnDisabledByPrefs(const std::string& locale);
     50 
     51 // Called when Chrome Translate server sends the language list which includes
     52 // a undisplayable language in the user's locale.
     53 void ReportUndisplayableLanguage(const std::string& language);
     54 
     55 void ReportUnsupportedLanguageAtInitiation(const std::string& language);
     56 
     57 // Provides UMA entry names for unit tests.
     58 const char* GetMetricsName(MetricsNameIndex index);
     59 
     60 }  // namespace TranslateBrowserMetrics
     61 
     62 #endif  // CHROME_BROWSER_TRANSLATE_TRANSLATE_BROWSER_METRICS_H_
     63