| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CHROME_RENDERER_TRANSLATE_TRANSLATE_HELPER_METRICS_H_ | 5 #ifndef CHROME_RENDERER_TRANSLATE_TRANSLATE_HELPER_METRICS_H_ |
| 6 #define CHROME_RENDERER_TRANSLATE_TRANSLATE_HELPER_METRICS_H_ | 6 #define CHROME_RENDERER_TRANSLATE_TRANSLATE_HELPER_METRICS_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/time.h" | 10 #include "base/time.h" |
| 11 | 11 |
| 12 namespace TranslateHelperMetrics { | 12 namespace TranslateHelperMetrics { |
| 13 | 13 |
| 14 // An indexing type to query each UMA entry name via GetMetricsName() function. | 14 // An indexing type to query each UMA entry name via GetMetricsName() function. |
| 15 // Note: |kMetricsEntries| should be updated when a new entry is added here. | 15 // Note: |kMetricsEntries| should be updated when a new entry is added here. |
| 16 enum MetricsNameIndex { | 16 enum MetricsNameIndex { |
| 17 UMA_LANGUAGE_DETECTION, | 17 UMA_LANGUAGE_DETECTION, |
| 18 UMA_CONTENT_LANGUAGE, | 18 UMA_CONTENT_LANGUAGE, |
| 19 UMA_HTML_LANG, |
| 19 UMA_LANGUAGE_VERIFICATION, | 20 UMA_LANGUAGE_VERIFICATION, |
| 20 UMA_TIME_TO_BE_READY, | 21 UMA_TIME_TO_BE_READY, |
| 21 UMA_TIME_TO_LOAD, | 22 UMA_TIME_TO_LOAD, |
| 22 UMA_TIME_TO_TRANSLATE, | 23 UMA_TIME_TO_TRANSLATE, |
| 23 UMA_USER_ACTION_DURATION, | 24 UMA_USER_ACTION_DURATION, |
| 24 UMA_MAX, | 25 UMA_MAX, |
| 25 }; | 26 }; |
| 26 | 27 |
| 27 // A page may provide a Content-Language HTTP header or a META tag. | 28 // A page may provide a Content-Language HTTP header or a META tag. |
| 28 // TranslateHelper checks if a server provides a valid Content-Language. | 29 // TranslateHelper checks if a server provides a valid Content-Language. |
| 29 enum ContentLanguageType { | 30 enum LanguageCheckType { |
| 30 CONTENT_LANGUAGE_NOT_PROVIDED, | 31 LANGUAGE_NOT_PROVIDED, |
| 31 CONTENT_LANGUAGE_VALID, | 32 LANGUAGE_VALID, |
| 32 CONTENT_LANGUAGE_INVALID, | 33 LANGUAGE_INVALID, |
| 33 CONTENT_LANGUAGE_MAX, | 34 LANGUAGE_MAX, |
| 34 }; | 35 }; |
| 35 | 36 |
| 36 // When a valid Content-Language is provided, TranslateHelper checks if a | 37 // When a valid Content-Language is provided, TranslateHelper checks if a |
| 37 // server provided Content-Language matches to a language CLD determined. | 38 // server provided Content-Language matches to a language CLD determined. |
| 38 enum LanguageVerificationType { | 39 enum LanguageVerificationType { |
| 39 LANGUAGE_VERIFICATION_CLD_DISABLED, | 40 LANGUAGE_VERIFICATION_CLD_DISABLED, |
| 40 LANGUAGE_VERIFICATION_CLD_ONLY, | 41 LANGUAGE_VERIFICATION_CLD_ONLY, |
| 41 LANGUAGE_VERIFICATION_UNKNOWN, | 42 LANGUAGE_VERIFICATION_UNKNOWN, |
| 42 LANGUAGE_VERIFICATION_CLD_AGREE, | 43 LANGUAGE_VERIFICATION_CLD_AGREE, |
| 43 LANGUAGE_VERIFICATION_CLD_DISAGREE, | 44 LANGUAGE_VERIFICATION_CLD_DISAGREE, |
| 44 LANGUAGE_VERIFICATION_MAX, | 45 LANGUAGE_VERIFICATION_MAX, |
| 45 }; | 46 }; |
| 46 | 47 |
| 47 // Called after TranslateHelper verifies a server providing Content-Language | 48 // Called after TranslateHelper verifies a server providing Content-Language |
| 48 // header. |provided_code| contains a Content-Language header value which | 49 // header. |provided_code| contains a Content-Language header value which a |
| 49 // server provides. It can be empty string when a server doesn't provide it. | 50 // server provides. It can be empty string when a server doesn't provide it. |
| 50 // |revised_code| is a value modified by format error corrector. | 51 // |revised_code| is a value modified by format error corrector. |
| 51 void ReportContentLanguage(const std::string& provided_code, | 52 void ReportContentLanguage(const std::string& provided_code, |
| 52 const std::string& revised_code); | 53 const std::string& revised_code); |
| 53 | 54 |
| 55 // Called after TranslateHelper verifies a page providing html lang attribute. |
| 56 // |provided_code| contains a html lang attribute which a page provides. It can |
| 57 // be empty string when a page doesn't provide it. |revised_code| is a value |
| 58 // modified by format error corrector. |
| 59 void ReportHtmlLang(const std::string& provided_code, |
| 60 const std::string& revised_code); |
| 61 |
| 54 // Called when CLD verifies Content-Language header. | 62 // Called when CLD verifies Content-Language header. |
| 55 void ReportLanguageVerification(LanguageVerificationType type); | 63 void ReportLanguageVerification(LanguageVerificationType type); |
| 56 | 64 |
| 57 // Called when the Translate Element library is ready. | 65 // Called when the Translate Element library is ready. |
| 58 void ReportTimeToBeReady(double time_in_msec); | 66 void ReportTimeToBeReady(double time_in_msec); |
| 59 | 67 |
| 60 // Called when the Translate Element library is loaded. | 68 // Called when the Translate Element library is loaded. |
| 61 void ReportTimeToLoad(double time_in_msec); | 69 void ReportTimeToLoad(double time_in_msec); |
| 62 | 70 |
| 63 // Called when a page translation is finished. | 71 // Called when a page translation is finished. |
| 64 void ReportTimeToTranslate(double time_in_msec); | 72 void ReportTimeToTranslate(double time_in_msec); |
| 65 | 73 |
| 66 // Called when a translation is triggered. | 74 // Called when a translation is triggered. |
| 67 void ReportUserActionDuration(base::TimeTicks begin, base::TimeTicks end); | 75 void ReportUserActionDuration(base::TimeTicks begin, base::TimeTicks end); |
| 68 | 76 |
| 69 #if defined(ENABLE_LANGUAGE_DETECTION) | 77 #if defined(ENABLE_LANGUAGE_DETECTION) |
| 70 | 78 |
| 71 // Called when CLD detects page language. | 79 // Called when CLD detects page language. |
| 72 void ReportLanguageDetectionTime(base::TimeTicks begin, base::TimeTicks end); | 80 void ReportLanguageDetectionTime(base::TimeTicks begin, base::TimeTicks end); |
| 73 | 81 |
| 74 #endif // defined(ENABLE_LANGUAGE_DETECTION) | 82 #endif // defined(ENABLE_LANGUAGE_DETECTION) |
| 75 | 83 |
| 76 // Gets UMA name for an entry specified by |index|. | 84 // Gets UMA name for an entry specified by |index|. |
| 77 const char* GetMetricsName(MetricsNameIndex index); | 85 const char* GetMetricsName(MetricsNameIndex index); |
| 78 | 86 |
| 79 } // namespace TranslateHelperMetrics | 87 } // namespace TranslateHelperMetrics |
| 80 | 88 |
| 81 #endif // CHROME_RENDERER_TRANSLATE_TRANSLATE_HELPER_METRICS_H_ | 89 #endif // CHROME_RENDERER_TRANSLATE_TRANSLATE_HELPER_METRICS_H_ |
| OLD | NEW |