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 // Note: Don't insert any item. It will change reporting UMA value, and break
     26 // the UMA dashboard page. Insteads, append it at the end of enum as suggested
     27 // below.
     28 enum InitiationStatusType {
     29   INITIATION_STATUS_DISABLED_BY_PREFS,
     30   INITIATION_STATUS_DISABLED_BY_SWITCH,
     31   INITIATION_STATUS_DISABLED_BY_CONFIG,
     32   INITIATION_STATUS_LANGUAGE_IS_NOT_SUPPORTED,
     33   INITIATION_STATUS_URL_IS_NOT_SUPPORTED,
     34   INITIATION_STATUS_SIMILAR_LANGUAGES,
     35   INITIATION_STATUS_ACCEPT_LANGUAGES,
     36   INITIATION_STATUS_AUTO_BY_CONFIG,
     37   INITIATION_STATUS_AUTO_BY_LINK,
     38   INITIATION_STATUS_SHOW_INFOBAR,
     39   INITIATION_STATUS_MIME_TYPE_IS_NOT_SUPPORTED,
     40   // Insert new items here.
     41   INITIATION_STATUS_MAX,
     42 };
     43 
     44 // Called when Chrome Translate is initiated to report a reason of the next
     45 // browser action.
     46 void ReportInitiationStatus(InitiationStatusType type);
     47 
     48 // Called when Chrome opens the URL so that the user sends an error feedback.
     49 void ReportLanguageDetectionError();
     50 
     51 void ReportLocalesOnDisabledByPrefs(const std::string& locale);
     52 
     53 // Called when Chrome Translate server sends the language list which includes
     54 // a undisplayable language in the user's locale.
     55 void ReportUndisplayableLanguage(const std::string& language);
     56 
     57 void ReportUnsupportedLanguageAtInitiation(const std::string& language);
     58 
     59 // Provides UMA entry names for unit tests.
     60 const char* GetMetricsName(MetricsNameIndex index);
     61 
     62 }  // namespace TranslateBrowserMetrics
     63 
     64 #endif  // CHROME_BROWSER_TRANSLATE_TRANSLATE_BROWSER_METRICS_H_
     65