Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / components / translate / core / browser / translate_download_manager.cc
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/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"
13
14 // static
15 TranslateDownloadManager* TranslateDownloadManager::GetInstance() {
16   return Singleton<TranslateDownloadManager>::get();
17 }
18
19 TranslateDownloadManager::TranslateDownloadManager()
20     : language_list_(new TranslateLanguageList),
21       script_(new TranslateScript) {}
22
23 TranslateDownloadManager::~TranslateDownloadManager() {}
24
25 void TranslateDownloadManager::Shutdown() {
26   language_list_.reset();
27   script_.reset();
28   request_context_ = NULL;
29 }
30
31 // static
32 void TranslateDownloadManager::RequestLanguageList() {
33   TranslateLanguageList* language_list = GetInstance()->language_list();
34   if (!language_list) {
35     NOTREACHED();
36     return;
37   }
38
39   language_list->RequestLanguageList();
40 }
41
42 // static
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)) {
49     return;
50   }
51
52   RequestLanguageList();
53 }
54
55 // static
56 void TranslateDownloadManager::GetSupportedLanguages(
57     std::vector<std::string>* languages) {
58   TranslateLanguageList* language_list = GetInstance()->language_list();
59   if (!language_list) {
60     NOTREACHED();
61     return;
62   }
63
64   language_list->GetSupportedLanguages(languages);
65 }
66
67 // static
68 base::Time TranslateDownloadManager::GetSupportedLanguagesLastUpdated() {
69   TranslateLanguageList* language_list = GetInstance()->language_list();
70   if (!language_list) {
71     NOTREACHED();
72     return base::Time();
73   }
74
75   return language_list->last_updated();
76 }
77
78 // static
79 std::string TranslateDownloadManager::GetLanguageCode(
80     const std::string& language) {
81   TranslateLanguageList* language_list = GetInstance()->language_list();
82   if (!language_list) {
83     NOTREACHED();
84     return language;
85   }
86
87   return language_list->GetLanguageCode(language);
88 }
89
90 // static
91 bool TranslateDownloadManager::IsSupportedLanguage(
92     const std::string& language) {
93   TranslateLanguageList* language_list = GetInstance()->language_list();
94   if (!language_list) {
95     NOTREACHED();
96     return false;
97   }
98
99   return language_list->IsSupportedLanguage(language);
100 }
101
102 // static
103 bool TranslateDownloadManager::IsAlphaLanguage(const std::string& language) {
104   TranslateLanguageList* language_list = GetInstance()->language_list();
105   if (!language_list) {
106     NOTREACHED();
107     return false;
108   }
109
110   return language_list->IsAlphaLanguage(language);
111 }
112
113 void TranslateDownloadManager::ClearTranslateScriptForTesting() {
114   if (script_.get() == NULL) {
115     NOTREACHED();
116     return;
117   }
118   script_->Clear();
119 }
120
121 void TranslateDownloadManager::SetTranslateScriptExpirationDelay(int delay_ms) {
122   if (script_.get() == NULL) {
123     NOTREACHED();
124     return;
125   }
126   script_->set_expiration_delay(delay_ms);
127 }