Chromium Code Reviews| Index: chrome/browser/translate/translate_service.cc |
| diff --git a/chrome/browser/translate/translate_service.cc b/chrome/browser/translate/translate_service.cc |
| index 8bc6922eb88c3381907ec7afbf38c1ffed2caf77..e7d3069e3292f482c843e5adaa35cae82effc49a 100644 |
| --- a/chrome/browser/translate/translate_service.cc |
| +++ b/chrome/browser/translate/translate_service.cc |
| @@ -8,8 +8,24 @@ |
| #include "chrome/browser/translate/translate_manager.h" |
| #include "components/translate/core/browser/translate_download_manager.h" |
| +namespace { |
| +// The singleton instance of TranslateService. |
| +TranslateService* g_translate_service = NULL; |
| +} |
| + |
| +TranslateService::TranslateService() { |
| + resource_request_allowed_notifier_.Init(this); |
| +} |
| + |
| +TranslateService::~TranslateService() {} |
| + |
| // static |
| void TranslateService::Initialize() { |
| + if (g_translate_service) |
| + return; |
| + |
| + g_translate_service = new TranslateService; |
| + g_translate_service->OnResourceRequestsAllowed(); |
|
MAD
2014/02/03 14:02:43
I would add a comment here stating why we make thi
|
| // Create the TranslateManager singleton. |
| TranslateManager::GetInstance(); |
| TranslateDownloadManager* download_manager = |
| @@ -22,7 +38,23 @@ void TranslateService::Initialize() { |
| // static |
| void TranslateService::Shutdown(bool cleanup_pending_fetcher) { |
| - if (cleanup_pending_fetcher) |
| + TranslateDownloadManager* download_manager = |
| + TranslateDownloadManager::GetInstance(); |
| + if (cleanup_pending_fetcher) { |
| TranslateManager::GetInstance()->CleanupPendingUlrFetcher(); |
| - TranslateDownloadManager::GetInstance()->set_request_context(NULL); |
| + download_manager->Shutdown(); |
| + } |
| + download_manager->set_request_context(NULL); |
|
MAD
2014/02/03 14:02:43
Seems weird to call this after calling Shutdown ab
|
| +} |
| + |
| +void TranslateService::OnResourceRequestsAllowed() { |
| + TranslateLanguageList* language_list = |
| + TranslateDownloadManager::GetInstance()->language_list(); |
| + if (!language_list) { |
| + NOTREACHED(); |
| + return; |
| + } |
| + |
| + language_list->SetResourceRequestsAllowed( |
| + resource_request_allowed_notifier_.ResourceRequestsAllowed()); |
| } |