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. 4 5 #include "components/translate/core/browser/translate_download_manager.h" 6 7 #include "base/check.h" 8 #include "base/memory/singleton.h" 9 #include "components/translate/core/browser/translate_pref_names.h" 10 #include "components/translate/core/common/translate_switches.h" 11 12 namespace translate { 13 14 // static GetInstance()15TranslateDownloadManager* TranslateDownloadManager::GetInstance() { 16 return base::Singleton<TranslateDownloadManager>::get(); 17 } 18 TranslateDownloadManager()19TranslateDownloadManager::TranslateDownloadManager() 20 : language_list_(std::make_unique<TranslateLanguageList>()), 21 script_(std::make_unique<TranslateScript>()) {} 22 ~TranslateDownloadManager()23TranslateDownloadManager::~TranslateDownloadManager() {} 24 Shutdown()25void TranslateDownloadManager::Shutdown() { 26 DCHECK(sequence_checker_.CalledOnValidSequence()); 27 language_list_.reset(); 28 script_.reset(); 29 url_loader_factory_ = nullptr; 30 } 31 32 // static GetSupportedLanguages(bool translate_allowed,std::vector<std::string> * languages)33void TranslateDownloadManager::GetSupportedLanguages( 34 bool translate_allowed, 35 std::vector<std::string>* languages) { 36 TranslateLanguageList* language_list = GetInstance()->language_list(); 37 DCHECK(language_list); 38 39 language_list->GetSupportedLanguages(translate_allowed, languages); 40 } 41 42 // static GetSupportedLanguagesLastUpdated()43base::Time TranslateDownloadManager::GetSupportedLanguagesLastUpdated() { 44 TranslateLanguageList* language_list = GetInstance()->language_list(); 45 DCHECK(language_list); 46 47 return language_list->last_updated(); 48 } 49 50 // static GetLanguageCode(base::StringPiece language)51std::string TranslateDownloadManager::GetLanguageCode( 52 base::StringPiece language) { 53 TranslateLanguageList* language_list = GetInstance()->language_list(); 54 DCHECK(language_list); 55 56 return language_list->GetLanguageCode(language); 57 } 58 59 // static IsSupportedLanguage(base::StringPiece language)60bool TranslateDownloadManager::IsSupportedLanguage(base::StringPiece language) { 61 TranslateLanguageList* language_list = GetInstance()->language_list(); 62 DCHECK(language_list); 63 64 return language_list->IsSupportedLanguage(language); 65 } 66 ClearTranslateScriptForTesting()67void TranslateDownloadManager::ClearTranslateScriptForTesting() { 68 DCHECK(script_); 69 script_->Clear(); 70 } 71 ResetForTesting()72void TranslateDownloadManager::ResetForTesting() { 73 DCHECK(sequence_checker_.CalledOnValidSequence()); 74 language_list_ = std::make_unique<TranslateLanguageList>(); 75 script_ = std::make_unique<TranslateScript>(); 76 url_loader_factory_ = nullptr; 77 } 78 SetTranslateScriptExpirationDelay(int delay_ms)79void TranslateDownloadManager::SetTranslateScriptExpirationDelay(int delay_ms) { 80 DCHECK(sequence_checker_.CalledOnValidSequence()); 81 DCHECK(script_); 82 script_->set_expiration_delay(delay_ms); 83 } 84 85 } // namespace translate 86