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

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 3ebd7cbcfcc8c392b5efaf7ebad6bdee892285d0..d7e60d26ca01303d6b1930c582d6c389c8ad77ca 100644
--- a/chrome/renderer/translate/translate_helper.cc
+++ b/chrome/renderer/translate/translate_helper.cc
@@ -122,14 +122,27 @@ 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, IsPageTranslatable(&document)));
+ routing_id(), details, IsPageTranslatable(&document)));
}
void TranslateHelper::CancelPendingTranslation() {
@@ -142,7 +155,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;
@@ -150,6 +164,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).
@@ -328,12 +345,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)

Powered by Google App Engine
This is Rietveld 408576698