Index: ios/web_view/internal/translate/web_view_translate_service.cc |
diff --git a/ios/web_view/internal/translate/web_view_translate_service.cc b/ios/web_view/internal/translate/web_view_translate_service.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ccfbec33651aa8f743d7a1931062f3f7cb8ee376 |
--- /dev/null |
+++ b/ios/web_view/internal/translate/web_view_translate_service.cc |
@@ -0,0 +1,67 @@ |
+// Copyright 2017 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "ios/web_view/internal/translate/web_view_translate_service.h" |
+ |
+#include "base/memory/singleton.h" |
+#include "components/translate/core/browser/translate_download_manager.h" |
+#include "ios/web_view/internal/app/application_context.h" |
+ |
+namespace ios_web_view { |
+ |
+WebViewTranslateService::TranslateRequestsAllowedListener:: |
+ TranslateRequestsAllowedListener() |
+ : resource_request_allowed_notifier_( |
+ ios_web_view::ApplicationContext::GetInstance()->GetLocalState(), |
+ nullptr) { |
Eugene But (OOO till 7-30)
2017/05/31 16:25:34
nit: /*name_of_the_argument=*/nullptr
michaeldo
2017/05/31 21:03:43
Done.
|
+ resource_request_allowed_notifier_.Init(this); |
+} |
+ |
+WebViewTranslateService::TranslateRequestsAllowedListener:: |
+ ~TranslateRequestsAllowedListener(){}; |
sdefresne
2017/05/31 08:52:46
Remove trailing semi-colon.
michaeldo
2017/05/31 21:03:43
Done.
|
+ |
+void WebViewTranslateService::TranslateRequestsAllowedListener:: |
+ OnResourceRequestsAllowed() { |
+ translate::TranslateLanguageList* language_list = |
+ translate::TranslateDownloadManager::GetInstance()->language_list(); |
+ if (!language_list) { |
+ NOTREACHED(); |
Eugene But (OOO till 7-30)
2017/05/31 16:25:34
This should be either NOTREACHED or early return,
michaeldo
2017/05/31 21:03:43
Done.
|
+ return; |
+ } |
+ |
+ language_list->SetResourceRequestsAllowed( |
+ resource_request_allowed_notifier_.ResourceRequestsAllowed()); |
+} |
+ |
+WebViewTranslateService* WebViewTranslateService::GetInstance() { |
+ return base::Singleton<WebViewTranslateService>::get(); |
+} |
+ |
+WebViewTranslateService::WebViewTranslateService() |
+ : translate_requests_allowed_listener_( |
+ new TranslateRequestsAllowedListener()){}; |
sdefresne
2017/05/31 08:52:46
Use "base::MakeUnique<>" here.
Remove trailing se
michaeldo
2017/05/31 21:03:43
Done.
|
+ |
+WebViewTranslateService::~WebViewTranslateService() = default; |
+ |
+void WebViewTranslateService::Initialize() { |
+ // Initialize the allowed state for resource requests. |
+ translate_requests_allowed_listener_->OnResourceRequestsAllowed(); |
+ |
+ // Initialize translate. |
+ translate::TranslateDownloadManager* download_manager = |
+ translate::TranslateDownloadManager::GetInstance(); |
+ download_manager->set_request_context( |
+ ios_web_view::ApplicationContext::GetInstance() |
+ ->GetSystemURLRequestContext()); |
+ download_manager->set_application_locale( |
+ ios_web_view::ApplicationContext::GetInstance()->GetApplicationLocale()); |
+} |
+ |
+void WebViewTranslateService::Shutdown() { |
+ translate::TranslateDownloadManager* download_manager = |
+ translate::TranslateDownloadManager::GetInstance(); |
+ download_manager->Shutdown(); |
+} |
+ |
+} // namespace ios_web_view |