| // Copyright 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef COMPONENTS_TRANSLATE_COMMON_TRANSLATE_METRICS_H_ |
| #define COMPONENTS_TRANSLATE_COMMON_TRANSLATE_METRICS_H_ |
| |
| #include <string> |
| |
| #include "base/time/time.h" |
| |
| namespace translate { |
| |
| // An indexing type to query each UMA entry name via GetMetricsName() function. |
| // Note: |kMetricsEntries| should be updated when a new entry is added here. |
| enum MetricsNameIndex { |
| UMA_LANGUAGE_DETECTION, |
| UMA_CONTENT_LANGUAGE, |
| UMA_HTML_LANG, |
| UMA_LANGUAGE_VERIFICATION, |
| UMA_TIME_TO_BE_READY, |
| UMA_TIME_TO_LOAD, |
| UMA_TIME_TO_TRANSLATE, |
| UMA_USER_ACTION_DURATION, |
| UMA_PAGE_SCHEME, |
| UMA_SIMILAR_LANGUAGE_MATCH, |
| UMA_MODIFY_ORIGINAL_LANG, |
| UMA_MODIFY_TARGET_LANG, |
| UMA_MAX, |
| }; |
| |
| // A page may provide a Content-Language HTTP header or a META tag. |
| // TranslateHelper checks if a server provides a valid Content-Language. |
| enum LanguageCheckType { |
| LANGUAGE_NOT_PROVIDED, |
| LANGUAGE_VALID, |
| LANGUAGE_INVALID, |
| LANGUAGE_MAX, |
| }; |
| |
| // When a valid Content-Language is provided, TranslateHelper checks if a |
| // server provided Content-Language matches to a language CLD determined. |
| enum LanguageVerificationType { |
| LANGUAGE_VERIFICATION_CLD_DISABLED, // obsolete |
| LANGUAGE_VERIFICATION_CLD_ONLY, |
| LANGUAGE_VERIFICATION_UNKNOWN, |
| LANGUAGE_VERIFICATION_CLD_AGREE, |
| LANGUAGE_VERIFICATION_CLD_DISAGREE, |
| LANGUAGE_VERIFICATION_TRUST_CLD, |
| LANGUAGE_VERIFICATION_CLD_COMPLEMENT_SUB_CODE, |
| LANGUAGE_VERIFICATION_MAX, |
| }; |
| |
| // Scheme type of pages Chrome is going to translate. |
| enum SchemeType { |
| SCHEME_HTTP, |
| SCHEME_HTTPS, |
| SCHEME_OTHERS, |
| SCHEME_MAX, |
| }; |
| |
| // Called after TranslateHelper verifies a server providing Content-Language |
| // header. |provided_code| contains a Content-Language header value which a |
| // server provides. It can be empty string when a server doesn't provide it. |
| // |revised_code| is a value modified by format error corrector. |
| void ReportContentLanguage(const std::string& provided_code, |
| const std::string& revised_code); |
| |
| // Called after TranslateHelper verifies a page providing html lang attribute. |
| // |provided_code| contains a html lang attribute which a page provides. It can |
| // be empty string when a page doesn't provide it. |revised_code| is a value |
| // modified by format error corrector. |
| void ReportHtmlLang(const std::string& provided_code, |
| const std::string& revised_code); |
| |
| // Called when CLD verifies Content-Language header. |
| void ReportLanguageVerification(LanguageVerificationType type); |
| |
| // Called when the Translate Element library is ready. |
| void ReportTimeToBeReady(double time_in_msec); |
| |
| // Called when the Translate Element library is loaded. |
| void ReportTimeToLoad(double time_in_msec); |
| |
| // Called when a page translation is finished. |
| void ReportTimeToTranslate(double time_in_msec); |
| |
| // Called when a translation is triggered. |
| void ReportUserActionDuration(base::TimeTicks begin, base::TimeTicks end); |
| |
| // Called when a translation is triggered. |
| void ReportPageScheme(const std::string& scheme); |
| |
| // Called when CLD detects page language. |
| void ReportLanguageDetectionTime(base::TimeTicks begin, base::TimeTicks end); |
| |
| // Called when CLD agreed on a language which is different, but in the similar |
| // language list. |
| void ReportSimilarLanguageMatch(bool match); |
| |
| // Gets UMA name for an entry specified by |index|. |
| const char* GetMetricsName(MetricsNameIndex index); |
| |
| } // namespace translate |
| |
| #endif // COMPONENTS_TRANSLATE_COMMON_TRANSLATE_METRICS_H_ |