Index: chrome/browser/translate/chrome_translate_client.cc |
diff --git a/chrome/browser/translate/chrome_translate_client.cc b/chrome/browser/translate/chrome_translate_client.cc |
index 9933d33bd829bf62b640fee7a666593a88b06046..c28145b5199f3f4b6ebc2015608884e7ded8f753 100644 |
--- a/chrome/browser/translate/chrome_translate_client.cc |
+++ b/chrome/browser/translate/chrome_translate_client.cc |
@@ -61,6 +61,7 @@ ChromeTranslateClient::ChromeTranslateClient(content::WebContents* web_contents) |
new translate::TranslateManager(this, prefs::kAcceptLanguages)), |
cld_data_provider_( |
translate::CreateBrowserCldDataProviderFor(web_contents)) { |
+ translate_driver_.AddObserver(this); |
translate_driver_.set_translate_manager(translate_manager_.get()); |
// Customization: for the standalone data source, we configure the path to |
// CLD data immediately on startup. |
@@ -81,6 +82,7 @@ ChromeTranslateClient::ChromeTranslateClient(content::WebContents* web_contents) |
} |
ChromeTranslateClient::~ChromeTranslateClient() { |
+ translate_driver_.RemoveObserver(this); |
} |
translate::LanguageState& ChromeTranslateClient::GetLanguageState() { |
@@ -263,20 +265,7 @@ void ChromeTranslateClient::ShowReportLanguageDetectionErrorUI( |
} |
bool ChromeTranslateClient::OnMessageReceived(const IPC::Message& message) { |
- bool handled = true; |
- IPC_BEGIN_MESSAGE_MAP(ChromeTranslateClient, message) |
- IPC_MESSAGE_HANDLER(ChromeViewHostMsg_TranslateAssignedSequenceNumber, |
- OnTranslateAssignedSequenceNumber) |
- IPC_MESSAGE_HANDLER(ChromeViewHostMsg_TranslateLanguageDetermined, |
- OnLanguageDetermined) |
- IPC_MESSAGE_HANDLER(ChromeViewHostMsg_PageTranslated, OnPageTranslated) |
- IPC_MESSAGE_UNHANDLED(handled = false) |
- IPC_END_MESSAGE_MAP() |
- |
- if (!handled) { |
- handled = cld_data_provider_->OnMessageReceived(message); |
- } |
- return handled; |
+ return cld_data_provider_->OnMessageReceived(message); |
} |
void ChromeTranslateClient::WebContentsDestroyed() { |
@@ -286,19 +275,12 @@ void ChromeTranslateClient::WebContentsDestroyed() { |
translate_manager_.reset(); |
} |
-void ChromeTranslateClient::OnTranslateAssignedSequenceNumber(int page_seq_no) { |
- translate_manager_->set_current_seq_no(page_seq_no); |
-} |
+// ContentTranslateDriver::Observer implementation. |
void ChromeTranslateClient::OnLanguageDetermined( |
- const translate::LanguageDetectionDetails& details, |
- bool page_needs_translation) { |
- GetLanguageState().LanguageDetermined(details.adopted_language, |
- page_needs_translation); |
- |
- if (web_contents()) |
- translate_manager_->InitiateTranslation(details.adopted_language); |
- |
+ const translate::LanguageDetectionDetails& details) { |
+ // TODO: Remove translate notifications and have the clients be |
+ // TranslateDriver::Observer directly instead. |
Takashi Toyoshima
2014/09/16 06:32:47
I guess this means ContentTranslateDriver::Observe
droger
2014/09/16 10:57:13
Correct. Done.
|
content::NotificationService::current()->Notify( |
chrome::NOTIFICATION_TAB_LANGUAGE_DETERMINED, |
content::Source<content::WebContents>(web_contents()), |
@@ -309,10 +291,9 @@ void ChromeTranslateClient::OnPageTranslated( |
const std::string& original_lang, |
const std::string& translated_lang, |
translate::TranslateErrors::Type error_type) { |
+ // TODO: Remove translate notifications and have the clients be |
Takashi Toyoshima
2014/09/16 06:32:47
ditto
|
+ // TranslateDriver::Observer directly instead. |
DCHECK(web_contents()); |
- translate_manager_->PageTranslated( |
- original_lang, translated_lang, error_type); |
- |
translate::PageTranslatedDetails details; |
details.source_language = original_lang; |
details.target_language = translated_lang; |