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

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: (Rebasing) 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 133dd85967e06110c94c9af7c06201bc290ad9e7..2cf95db19e1a8af387e6380a5b4ec39e0c021742 100644
--- a/chrome/renderer/translate/translate_helper.cc
+++ b/chrome/renderer/translate/translate_helper.cc
@@ -95,13 +95,28 @@ 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;
language_determined_time_ = base::TimeTicks::Now();
+ 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,
+ details,
IsTranslationAllowed(&document) && !language.empty()));
}
@@ -115,7 +130,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;
@@ -123,6 +139,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).
@@ -301,12 +320,20 @@ 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);
TranslateHelperMetrics::ReportLanguageDetectionTime(begin_time,
base::TimeTicks::Now());
+
+ if (cld_language_p != NULL)
+ *cld_language_p = cld_language;
+ if (is_cld_reliable_p != NULL)
+ *is_cld_reliable_p = is_cld_reliable;
ConvertLanguageCodeSynonym(&cld_language);
VLOG(9) << "CLD determined language code: " << cld_language;
#endif // defined(ENABLE_LANGUAGE_DETECTION)
« no previous file with comments | « chrome/renderer/translate/translate_helper.h ('k') | chrome/renderer/translate/translate_helper_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698