OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "components/translate/content/browser/content_translate_driver.h" | 5 #include "components/translate/content/browser/content_translate_driver.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/location.h" | 8 #include "base/location.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/single_thread_task_runner.h" | 10 #include "base/single_thread_task_runner.h" |
11 #include "base/thread_task_runner_handle.h" | 11 #include "base/thread_task_runner_handle.h" |
| 12 #include "components/translate/content/browser/browser_cld_data_provider.h" |
| 13 #include "components/translate/content/browser/browser_cld_data_provider_factory
.h" |
12 #include "components/translate/content/common/translate_messages.h" | 14 #include "components/translate/content/common/translate_messages.h" |
13 #include "components/translate/core/browser/translate_download_manager.h" | 15 #include "components/translate/core/browser/translate_download_manager.h" |
14 #include "components/translate/core/browser/translate_manager.h" | 16 #include "components/translate/core/browser/translate_manager.h" |
15 #include "content/public/browser/browser_context.h" | 17 #include "content/public/browser/browser_context.h" |
16 #include "content/public/browser/navigation_controller.h" | 18 #include "content/public/browser/navigation_controller.h" |
17 #include "content/public/browser/navigation_details.h" | 19 #include "content/public/browser/navigation_details.h" |
18 #include "content/public/browser/navigation_entry.h" | 20 #include "content/public/browser/navigation_entry.h" |
19 #include "content/public/browser/page_navigator.h" | 21 #include "content/public/browser/page_navigator.h" |
20 #include "content/public/browser/render_frame_host.h" | 22 #include "content/public/browser/render_frame_host.h" |
21 #include "content/public/browser/web_contents.h" | 23 #include "content/public/browser/web_contents.h" |
(...skipping 10 matching lines...) Expand all Loading... |
32 } // namespace | 34 } // namespace |
33 | 35 |
34 namespace translate { | 36 namespace translate { |
35 | 37 |
36 ContentTranslateDriver::ContentTranslateDriver( | 38 ContentTranslateDriver::ContentTranslateDriver( |
37 content::NavigationController* nav_controller) | 39 content::NavigationController* nav_controller) |
38 : content::WebContentsObserver(nav_controller->GetWebContents()), | 40 : content::WebContentsObserver(nav_controller->GetWebContents()), |
39 navigation_controller_(nav_controller), | 41 navigation_controller_(nav_controller), |
40 translate_manager_(NULL), | 42 translate_manager_(NULL), |
41 max_reload_check_attempts_(kMaxTranslateLoadCheckAttempts), | 43 max_reload_check_attempts_(kMaxTranslateLoadCheckAttempts), |
| 44 cld_data_provider_( |
| 45 translate::BrowserCldDataProviderFactory::Get()-> |
| 46 CreateBrowserCldDataProvider(nav_controller->GetWebContents())), |
42 weak_pointer_factory_(this) { | 47 weak_pointer_factory_(this) { |
43 DCHECK(navigation_controller_); | 48 DCHECK(navigation_controller_); |
44 } | 49 } |
45 | 50 |
46 ContentTranslateDriver::~ContentTranslateDriver() {} | 51 ContentTranslateDriver::~ContentTranslateDriver() {} |
47 | 52 |
48 void ContentTranslateDriver::AddObserver(Observer* observer) { | 53 void ContentTranslateDriver::AddObserver(Observer* observer) { |
49 observer_list_.AddObserver(observer); | 54 observer_list_.AddObserver(observer); |
50 } | 55 } |
51 | 56 |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
211 content::RenderFrameHost* render_frame_host) { | 216 content::RenderFrameHost* render_frame_host) { |
212 bool handled = true; | 217 bool handled = true; |
213 IPC_BEGIN_MESSAGE_MAP(ContentTranslateDriver, message) | 218 IPC_BEGIN_MESSAGE_MAP(ContentTranslateDriver, message) |
214 IPC_MESSAGE_HANDLER(ChromeFrameHostMsg_TranslateAssignedSequenceNumber, | 219 IPC_MESSAGE_HANDLER(ChromeFrameHostMsg_TranslateAssignedSequenceNumber, |
215 OnTranslateAssignedSequenceNumber) | 220 OnTranslateAssignedSequenceNumber) |
216 IPC_MESSAGE_HANDLER(ChromeFrameHostMsg_TranslateLanguageDetermined, | 221 IPC_MESSAGE_HANDLER(ChromeFrameHostMsg_TranslateLanguageDetermined, |
217 OnLanguageDetermined) | 222 OnLanguageDetermined) |
218 IPC_MESSAGE_HANDLER(ChromeFrameHostMsg_PageTranslated, OnPageTranslated) | 223 IPC_MESSAGE_HANDLER(ChromeFrameHostMsg_PageTranslated, OnPageTranslated) |
219 IPC_MESSAGE_UNHANDLED(handled = false) | 224 IPC_MESSAGE_UNHANDLED(handled = false) |
220 IPC_END_MESSAGE_MAP() | 225 IPC_END_MESSAGE_MAP() |
| 226 if (!handled) { |
| 227 // The CLD Data Provider may have its own embedder-specific communication, |
| 228 // such as transferring the file handle for a CLD data file to the render |
| 229 // process. |
| 230 handled = cld_data_provider_->OnMessageReceived(message); |
| 231 } |
221 return handled; | 232 return handled; |
222 } | 233 } |
223 | 234 |
224 void ContentTranslateDriver::OnTranslateAssignedSequenceNumber( | 235 void ContentTranslateDriver::OnTranslateAssignedSequenceNumber( |
225 int page_seq_no) { | 236 int page_seq_no) { |
226 translate_manager_->set_current_seq_no(page_seq_no); | 237 translate_manager_->set_current_seq_no(page_seq_no); |
227 } | 238 } |
228 | 239 |
229 void ContentTranslateDriver::OnLanguageDetermined( | 240 void ContentTranslateDriver::OnLanguageDetermined( |
230 const LanguageDetectionDetails& details, | 241 const LanguageDetectionDetails& details, |
(...skipping 13 matching lines...) Expand all Loading... |
244 TranslateErrors::Type error_type) { | 255 TranslateErrors::Type error_type) { |
245 translate_manager_->PageTranslated( | 256 translate_manager_->PageTranslated( |
246 original_lang, translated_lang, error_type); | 257 original_lang, translated_lang, error_type); |
247 FOR_EACH_OBSERVER( | 258 FOR_EACH_OBSERVER( |
248 Observer, | 259 Observer, |
249 observer_list_, | 260 observer_list_, |
250 OnPageTranslated(original_lang, translated_lang, error_type)); | 261 OnPageTranslated(original_lang, translated_lang, error_type)); |
251 } | 262 } |
252 | 263 |
253 } // namespace translate | 264 } // namespace translate |
OLD | NEW |