Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4688)

Unified Diff: chrome/renderer/translate/translate_helper.cc

Issue 14494004: Added the 'Translation Logs' tab to chrome://translate-internals/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: first commit Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/renderer/translate/translate_helper.cc
diff --git a/chrome/renderer/translate/translate_helper.cc b/chrome/renderer/translate/translate_helper.cc
index 1664233cc82f4516b60d07d4ed25b08d9cd8e135..4de0352118cce4e6af200d6180c41934440336fa 100644
--- a/chrome/renderer/translate/translate_helper.cc
+++ b/chrome/renderer/translate/translate_helper.cc
@@ -92,12 +92,25 @@ void TranslateHelper::PageCaptured(const string16& contents) {
// shouldn't affect translation.
WebDocument document = GetMainFrame()->document();
std::string content_language = document.contentLanguage().utf8();
- std::string language = DeterminePageLanguage(content_language, contents);
+ std::string cld_language;
+ bool is_cld_reliable;
+ std::string language = DeterminePageLanguage(
+ content_language, contents, &cld_language, &is_cld_reliable);
+
if (language.empty())
return;
+ GURL url(document.url());
+ LanguageDetectionDetails details;
+ details.time = base::Time::Now();
+ details.url = url;
+ details.content_language = content_language;
+ details.cld_language = cld_language;
+ details.is_cld_reliable = is_cld_reliable;
+ details.adopted_language = language;
+
Send(new ChromeViewHostMsg_TranslateLanguageDetermined(
- routing_id(), language, IsPageTranslatable(&document)));
+ routing_id(), details, IsPageTranslatable(&document)));
}
void TranslateHelper::CancelPendingTranslation() {
@@ -110,7 +123,8 @@ void TranslateHelper::CancelPendingTranslation() {
#if defined(ENABLE_LANGUAGE_DETECTION)
// static
-std::string TranslateHelper::DetermineTextLanguage(const string16& text) {
+std::string TranslateHelper::DetermineTextLanguage(const string16& text,
+ bool* is_cld_reliable) {
std::string language = chrome::kUnknownLanguageCode;
int num_languages = 0;
int text_bytes = 0;
@@ -118,6 +132,9 @@ std::string TranslateHelper::DetermineTextLanguage(const string16& text) {
Language cld_language =
DetectLanguageOfUnicodeText(NULL, text.c_str(), true, &is_reliable,
&num_languages, NULL, &text_bytes);
+ if (is_cld_reliable != NULL)
+ *is_cld_reliable = is_reliable;
+
// We don't trust the result if the CLD reports that the detection is not
// reliable, or if the actual text used to detect the language was less than
// 100 bytes (short texts can often lead to wrong results).
@@ -296,10 +313,19 @@ void TranslateHelper::ResetInvalidLanguageCode(std::string* code) {
// static
std::string TranslateHelper::DeterminePageLanguage(const std::string& code,
- const string16& contents) {
+ const string16& contents,
+ std::string* cld_language_p,
+ bool* is_cld_reliable_p) {
#if defined(ENABLE_LANGUAGE_DETECTION)
base::TimeTicks begin_time = base::TimeTicks::Now();
- std::string cld_language = DetermineTextLanguage(contents);
+ bool is_cld_reliable;
+ std::string cld_language = DetermineTextLanguage(contents, &is_cld_reliable);
+
+ if (cld_language_p != NULL)
+ *cld_language_p = cld_language;
+ if (is_cld_reliable_p != NULL)
+ *is_cld_reliable_p = is_cld_reliable;
+
UMA_HISTOGRAM_MEDIUM_TIMES("Renderer4.LanguageDetection",
base::TimeTicks::Now() - begin_time);
ConvertLanguageCodeSynonym(&cld_language);

Powered by Google App Engine
This is Rietveld 408576698