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 |