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
3 // found in the LICENSE file.
5 #include "components/translate/core/browser/translate_download_manager.h"
7 #include "base/command_line.h"
8 #include "base/logging.h"
9 #include "base/memory/singleton.h"
10 #include "base/prefs/pref_service.h"
11 #include "components/translate/core/common/translate_pref_names.h"
12 #include "components/translate/core/common/translate_switches.h"
15 TranslateDownloadManager* TranslateDownloadManager::GetInstance() {
16 return Singleton<TranslateDownloadManager>::get();
19 TranslateDownloadManager::TranslateDownloadManager()
20 : language_list_(new TranslateLanguageList),
21 script_(new TranslateScript) {}
23 TranslateDownloadManager::~TranslateDownloadManager() {}
25 void TranslateDownloadManager::Shutdown() {
26 language_list_.reset();
28 request_context_ = NULL;
32 void TranslateDownloadManager::RequestLanguageList() {
33 TranslateLanguageList* language_list = GetInstance()->language_list();
39 language_list->RequestLanguageList();
43 void TranslateDownloadManager::RequestLanguageList(PrefService* prefs) {
44 // We don't want to do this when translate is disabled.
45 DCHECK(prefs != NULL);
46 if (CommandLine::ForCurrentProcess()->HasSwitch(
47 translate::switches::kDisableTranslate) ||
48 !prefs->GetBoolean(prefs::kEnableTranslate)) {
52 RequestLanguageList();
56 void TranslateDownloadManager::GetSupportedLanguages(
57 std::vector<std::string>* languages) {
58 TranslateLanguageList* language_list = GetInstance()->language_list();
64 language_list->GetSupportedLanguages(languages);
68 base::Time TranslateDownloadManager::GetSupportedLanguagesLastUpdated() {
69 TranslateLanguageList* language_list = GetInstance()->language_list();
75 return language_list->last_updated();
79 std::string TranslateDownloadManager::GetLanguageCode(
80 const std::string& language) {
81 TranslateLanguageList* language_list = GetInstance()->language_list();
87 return language_list->GetLanguageCode(language);
91 bool TranslateDownloadManager::IsSupportedLanguage(
92 const std::string& language) {
93 TranslateLanguageList* language_list = GetInstance()->language_list();
99 return language_list->IsSupportedLanguage(language);
103 bool TranslateDownloadManager::IsAlphaLanguage(const std::string& language) {
104 TranslateLanguageList* language_list = GetInstance()->language_list();
105 if (!language_list) {
110 return language_list->IsAlphaLanguage(language);
113 void TranslateDownloadManager::ClearTranslateScriptForTesting() {
114 if (script_.get() == NULL) {
121 void TranslateDownloadManager::SetTranslateScriptExpirationDelay(int delay_ms) {
122 if (script_.get() == NULL) {
126 script_->set_expiration_delay(delay_ms);