Index: components/translate/content/browser/content_translate_driver.cc |
diff --git a/components/translate/content/browser/content_translate_driver.cc b/components/translate/content/browser/content_translate_driver.cc |
index ba2345299cbea3e94a5b1742c2d26f89c4584e93..868ffbb8594c6ee0e7256327a5114f74e8b448a5 100644 |
--- a/components/translate/content/browser/content_translate_driver.cc |
+++ b/components/translate/content/browser/content_translate_driver.cc |
@@ -9,6 +9,8 @@ |
#include "base/logging.h" |
#include "base/single_thread_task_runner.h" |
#include "base/thread_task_runner_handle.h" |
+#include "components/translate/content/browser/browser_cld_data_provider.h" |
+#include "components/translate/content/browser/browser_cld_data_provider_factory.h" |
#include "components/translate/content/common/translate_messages.h" |
#include "components/translate/core/browser/translate_download_manager.h" |
#include "components/translate/core/browser/translate_manager.h" |
@@ -39,6 +41,9 @@ ContentTranslateDriver::ContentTranslateDriver( |
navigation_controller_(nav_controller), |
translate_manager_(NULL), |
max_reload_check_attempts_(kMaxTranslateLoadCheckAttempts), |
+ cld_data_provider_( |
+ translate::BrowserCldDataProviderFactory::Get()-> |
+ CreateBrowserCldDataProvider(nav_controller->GetWebContents())), |
weak_pointer_factory_(this) { |
DCHECK(navigation_controller_); |
} |
@@ -218,6 +223,12 @@ bool ContentTranslateDriver::OnMessageReceived( |
IPC_MESSAGE_HANDLER(ChromeFrameHostMsg_PageTranslated, OnPageTranslated) |
IPC_MESSAGE_UNHANDLED(handled = false) |
IPC_END_MESSAGE_MAP() |
+ if (!handled) { |
+ // The CLD Data Provider may have its own embedder-specific communication, |
+ // such as transferring the file handle for a CLD data file to the render |
+ // process. |
+ handled = cld_data_provider_->OnMessageReceived(message); |
+ } |
return handled; |
} |