Chromium Code Reviews| 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 ca20515387c9ea501c4ae15b5355d13b76790f90..28f051872302bb8ada03497516ba97913e4d1f85 100644 |
| --- a/chrome/browser/translate/chrome_translate_client.cc |
| +++ b/chrome/browser/translate/chrome_translate_client.cc |
| @@ -25,7 +25,6 @@ |
| #include "chrome/common/chrome_paths.h" |
| #include "chrome/common/pref_names.h" |
| #include "components/prefs/pref_service.h" |
| -#include "components/translate/content/common/translate_messages.h" |
| #include "components/translate/core/browser/language_state.h" |
| #include "components/translate/core/browser/page_translated_details.h" |
| #include "components/translate/core/browser/translate_accept_languages.h" |
| @@ -138,6 +137,28 @@ void ChromeTranslateClient::GetTranslateLanguages( |
| translate::TranslateManager::GetTargetLanguage(translate_prefs.get()); |
| } |
| +// static |
| +void ChromeTranslateClient::BindContentTranslateDriver( |
| + content::RenderFrameHost* render_frame_host, |
| + translate::mojom::ContentTranslateDriverRequest request) { |
| + content::WebContents* web_contents = |
| + content::WebContents::FromRenderFrameHost(render_frame_host); |
| + // We try to bind to the driver, but if driver is not ready for now |
|
Anand Mistry (off Chromium)
2016/07/12 07:17:08
This comment is a bit hard to parse and the format
leonhsl(Using Gerrit)
2016/07/12 10:15:09
Acknowledged.
leonhsl(Using Gerrit)
2016/07/13 09:56:18
Done.
|
| + // or totally not available for this render frame host, |
| + // the request will be just dropped, this would cause closing the message pipe |
| + // which would raise connection error to peer side. |
| + // Peer side could reconnect later when needed. |
| + if (!web_contents) |
| + return; |
| + |
| + ChromeTranslateClient* instance = |
| + ChromeTranslateClient::FromWebContents(web_contents); |
| + if (!instance) |
| + return; |
| + |
| + instance->translate_driver().BindRequest(std::move(request)); |
| +} |
| + |
| translate::TranslateManager* ChromeTranslateClient::GetTranslateManager() { |
| return translate_manager_.get(); |
| } |
| @@ -249,12 +270,12 @@ void ChromeTranslateClient::WebContentsDestroyed() { |
| translate_manager_.reset(); |
| } |
| -// ContentTranslateDriver::Observer implementation. |
| +// ContentTranslateDriverImpl::Observer implementation. |
| void ChromeTranslateClient::OnLanguageDetermined( |
| const translate::LanguageDetectionDetails& details) { |
| // TODO: Remove translate notifications and have the clients be |
| - // ContentTranslateDriver::Observer directly instead. |
| + // ContentTranslateDriverImpl::Observer directly instead. |
| content::NotificationService::current()->Notify( |
| chrome::NOTIFICATION_TAB_LANGUAGE_DETERMINED, |
| content::Source<content::WebContents>(web_contents()), |
| @@ -266,7 +287,7 @@ void ChromeTranslateClient::OnPageTranslated( |
| const std::string& translated_lang, |
| translate::TranslateErrors::Type error_type) { |
| // TODO: Remove translate notifications and have the clients be |
| - // ContentTranslateDriver::Observer directly instead. |
| + // ContentTranslateDriverImpl::Observer directly instead. |
| DCHECK(web_contents()); |
| translate::PageTranslatedDetails details; |
| details.source_language = original_lang; |