| 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 "chrome/browser/translate/translate_service.h" | 5 #include "chrome/browser/translate/translate_service.h" |
| 6 | 6 |
| 7 #include "chrome/browser/browser_process.h" | 7 #include "chrome/browser/browser_process.h" |
| 8 #include "chrome/browser/translate/translate_manager.h" | 8 #include "chrome/browser/translate/translate_manager.h" |
| 9 #include "components/translate/core/browser/translate_download_manager.h" | 9 #include "components/translate/core/browser/translate_download_manager.h" |
| 10 | 10 |
| 11 namespace { |
| 12 // The singleton instance of TranslateService. |
| 13 TranslateService* g_translate_service = NULL; |
| 14 } |
| 15 |
| 16 TranslateService::TranslateService() { |
| 17 resource_request_allowed_notifier_.Init(this); |
| 18 } |
| 19 |
| 20 TranslateService::~TranslateService() {} |
| 21 |
| 11 // static | 22 // static |
| 12 void TranslateService::Initialize() { | 23 void TranslateService::Initialize() { |
| 24 if (g_translate_service) |
| 25 return; |
| 26 |
| 27 g_translate_service = new TranslateService; |
| 28 // Initialize the allowed state for resource requests. |
| 29 g_translate_service->OnResourceRequestsAllowed(); |
| 13 // Create the TranslateManager singleton. | 30 // Create the TranslateManager singleton. |
| 14 TranslateManager::GetInstance(); | 31 TranslateManager::GetInstance(); |
| 15 TranslateDownloadManager* download_manager = | 32 TranslateDownloadManager* download_manager = |
| 16 TranslateDownloadManager::GetInstance(); | 33 TranslateDownloadManager::GetInstance(); |
| 17 download_manager->set_request_context( | 34 download_manager->set_request_context( |
| 18 g_browser_process->system_request_context()); | 35 g_browser_process->system_request_context()); |
| 19 download_manager->set_application_locale( | 36 download_manager->set_application_locale( |
| 20 g_browser_process->GetApplicationLocale()); | 37 g_browser_process->GetApplicationLocale()); |
| 21 } | 38 } |
| 22 | 39 |
| 23 // static | 40 // static |
| 24 void TranslateService::Shutdown(bool cleanup_pending_fetcher) { | 41 void TranslateService::Shutdown(bool cleanup_pending_fetcher) { |
| 25 if (cleanup_pending_fetcher) | 42 TranslateDownloadManager* download_manager = |
| 43 TranslateDownloadManager::GetInstance(); |
| 44 if (cleanup_pending_fetcher) { |
| 26 TranslateManager::GetInstance()->CleanupPendingUlrFetcher(); | 45 TranslateManager::GetInstance()->CleanupPendingUlrFetcher(); |
| 27 TranslateDownloadManager::GetInstance()->set_request_context(NULL); | 46 download_manager->Shutdown(); |
| 47 } else { |
| 48 // This path is only used by tests. |
| 49 download_manager->set_request_context(NULL); |
| 50 } |
| 28 } | 51 } |
| 52 |
| 53 void TranslateService::OnResourceRequestsAllowed() { |
| 54 TranslateLanguageList* language_list = |
| 55 TranslateDownloadManager::GetInstance()->language_list(); |
| 56 if (!language_list) { |
| 57 NOTREACHED(); |
| 58 return; |
| 59 } |
| 60 |
| 61 language_list->SetResourceRequestsAllowed( |
| 62 resource_request_allowed_notifier_.ResourceRequestsAllowed()); |
| 63 } |
| OLD | NEW |