Chromium Code Reviews| 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 |