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()15 TranslateDownloadManager* TranslateDownloadManager::GetInstance() {
16   return base::Singleton<TranslateDownloadManager>::get();
17 }
18 
TranslateDownloadManager()19 TranslateDownloadManager::TranslateDownloadManager()
20     : language_list_(std::make_unique<TranslateLanguageList>()),
21       script_(std::make_unique<TranslateScript>()) {}
22 
~TranslateDownloadManager()23 TranslateDownloadManager::~TranslateDownloadManager() {}
24 
Shutdown()25 void 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)33 void 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()43 base::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)51 std::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)60 bool 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()67 void TranslateDownloadManager::ClearTranslateScriptForTesting() {
68   DCHECK(script_);
69   script_->Clear();
70 }
71 
ResetForTesting()72 void 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)79 void 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