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

Unified Diff: chrome/browser/translate/translate_manager.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/browser/translate/translate_manager.cc
diff --git a/chrome/browser/translate/translate_manager.cc b/chrome/browser/translate/translate_manager.cc
index f9e3e72bd31768944df1a9eb9e882d91799c8459..9c27198427da451985dbdc2fbcbcc1a8ec455413 100644
--- a/chrome/browser/translate/translate_manager.cc
+++ b/chrome/browser/translate/translate_manager.cc
@@ -15,6 +15,7 @@
#include "base/string_util.h"
#include "base/stringprintf.h"
#include "base/strings/string_split.h"
+#include "base/time.h"
#include "base/values.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/infobars/infobar_service.h"
@@ -31,6 +32,7 @@
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/common/chrome_notification_types.h"
#include "chrome/common/chrome_switches.h"
+#include "chrome/common/language_detection_details.h"
#include "chrome/common/pref_names.h"
#include "chrome/common/render_messages.h"
#include "chrome/common/translate_errors.h"
@@ -362,6 +364,10 @@ void TranslateManager::Observe(int type,
break;
}
case chrome::NOTIFICATION_TAB_LANGUAGE_DETERMINED: {
+ const LanguageDetectionDetails* lang_det_details =
+ content::Details<const LanguageDetectionDetails>(details).ptr();
+ NotifyLanguageDetection(*lang_det_details);
+
WebContents* tab = content::Source<WebContents>(source).ptr();
// We may get this notifications multiple times. Make sure to translate
// only once.
@@ -375,7 +381,7 @@ void TranslateManager::Observe(int type,
!language_state.translation_pending() &&
!language_state.translation_declined() &&
!language_state.IsPageTranslated()) {
- std::string language = *(content::Details<std::string>(details).ptr());
+ std::string language = lang_det_details->adopted_language;
InitiateTranslation(tab, language);
}
break;
@@ -497,6 +503,20 @@ void TranslateManager::OnURLFetchComplete(const net::URLFetcher* source) {
}
}
+void TranslateManager::AddObserver(Observer* obs) {
+ observer_list_.AddObserver(obs);
+}
+
+void TranslateManager::RemoveObserver(Observer* obs) {
+ observer_list_.RemoveObserver(obs);
+}
+
+void TranslateManager::NotifyLanguageDetection(
+ const LanguageDetectionDetails& details) {
+ FOR_EACH_OBSERVER(Observer, observer_list_, OnLanguageDetection(details));
+}
+
+
TranslateManager::TranslateManager()
: weak_method_factory_(this),
translate_script_expiration_delay_(
@@ -710,6 +730,7 @@ void TranslateManager::PageTranslated(WebContents* web_contents,
UMA_HISTOGRAM_COUNTS("Translate.ServerReportedUnsupportedLanguage", 1);
details->error_type = TranslateErrors::UNSUPPORTED_LANGUAGE;
}
+
Profile* profile =
Profile::FromBrowserContext(web_contents->GetBrowserContext());
PrefService* prefs = profile->GetPrefs();

Powered by Google App Engine
This is Rietveld 408576698