Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/webui/translate_internals/translate_internals_handle r.h" | 5 #include "chrome/browser/ui/webui/translate_internals/translate_internals_handle r.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 53 TranslateInternalsHandler::~TranslateInternalsHandler() { | 53 TranslateInternalsHandler::~TranslateInternalsHandler() { |
| 54 // |event_subscription_| and |error_subscription_| are deleted automatically | 54 // |event_subscription_| and |error_subscription_| are deleted automatically |
| 55 // and un-register the callbacks automatically. | 55 // and un-register the callbacks automatically. |
| 56 } | 56 } |
| 57 | 57 |
| 58 void TranslateInternalsHandler::RegisterMessages() { | 58 void TranslateInternalsHandler::RegisterMessages() { |
| 59 web_ui()->RegisterMessageCallback("removePrefItem", base::Bind( | 59 web_ui()->RegisterMessageCallback("removePrefItem", base::Bind( |
| 60 &TranslateInternalsHandler::OnRemovePrefItem, base::Unretained(this))); | 60 &TranslateInternalsHandler::OnRemovePrefItem, base::Unretained(this))); |
| 61 web_ui()->RegisterMessageCallback("requestInfo", base::Bind( | 61 web_ui()->RegisterMessageCallback("requestInfo", base::Bind( |
| 62 &TranslateInternalsHandler::OnRequestInfo, base::Unretained(this))); | 62 &TranslateInternalsHandler::OnRequestInfo, base::Unretained(this))); |
| 63 web_ui()->RegisterMessageCallback("overrideCountry", base::Bind( | |
| 64 &TranslateInternalsHandler::OnOverrideCountry, base::Unretained(this))); | |
| 63 } | 65 } |
| 64 | 66 |
| 65 void TranslateInternalsHandler::Observe( | 67 void TranslateInternalsHandler::Observe( |
| 66 int type, | 68 int type, |
| 67 const content::NotificationSource& source, | 69 const content::NotificationSource& source, |
| 68 const content::NotificationDetails& details) { | 70 const content::NotificationDetails& details) { |
| 69 DCHECK_EQ(chrome::NOTIFICATION_TAB_LANGUAGE_DETERMINED, type); | 71 DCHECK_EQ(chrome::NOTIFICATION_TAB_LANGUAGE_DETERMINED, type); |
| 70 const translate::LanguageDetectionDetails* language_detection_details = | 72 const translate::LanguageDetectionDetails* language_detection_details = |
| 71 content::Details<const translate::LanguageDetectionDetails>(details) | 73 content::Details<const translate::LanguageDetectionDetails>(details) |
| 72 .ptr(); | 74 .ptr(); |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 162 translate_prefs->RemoveLanguagePairFromWhitelist(from, to); | 164 translate_prefs->RemoveLanguagePairFromWhitelist(from, to); |
| 163 } else if (pref_name == "too_often_denied") { | 165 } else if (pref_name == "too_often_denied") { |
| 164 translate_prefs->ResetDenialState(); | 166 translate_prefs->ResetDenialState(); |
| 165 } else { | 167 } else { |
| 166 return; | 168 return; |
| 167 } | 169 } |
| 168 | 170 |
| 169 SendPrefsToJs(); | 171 SendPrefsToJs(); |
| 170 } | 172 } |
| 171 | 173 |
| 174 void TranslateInternalsHandler::OnOverrideCountry(const base::ListValue* args) { | |
| 175 std::string country; | |
| 176 if (args->GetString(0, &country) && | |
| 177 ChromeTranslateClient::OverrideStoredPermanentCountry(country)) { | |
| 178 SendCountryToJs(true); | |
| 179 } | |
| 180 } | |
| 181 | |
| 172 void TranslateInternalsHandler::OnRequestInfo(const base::ListValue* /*args*/) { | 182 void TranslateInternalsHandler::OnRequestInfo(const base::ListValue* /*args*/) { |
| 173 SendPrefsToJs(); | 183 SendPrefsToJs(); |
| 174 SendSupportedLanguagesToJs(); | 184 SendSupportedLanguagesToJs(); |
| 185 SendCountryToJs(false); | |
| 175 } | 186 } |
| 176 | 187 |
| 177 void TranslateInternalsHandler::SendMessageToJs(const std::string& message, | 188 void TranslateInternalsHandler::SendMessageToJs(const std::string& message, |
| 178 const base::Value& value) { | 189 const base::Value& value) { |
| 179 const char func[] = "cr.translateInternals.messageHandler"; | 190 const char func[] = "cr.translateInternals.messageHandler"; |
| 180 base::StringValue message_data(message); | 191 base::StringValue message_data(message); |
| 181 web_ui()->CallJavascriptFunction(func, message_data, value); | 192 web_ui()->CallJavascriptFunction(func, message_data, value); |
| 182 } | 193 } |
| 183 | 194 |
| 184 void TranslateInternalsHandler::SendPrefsToJs() { | 195 void TranslateInternalsHandler::SendPrefsToJs() { |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 225 if (translate::TranslateDownloadManager::IsAlphaLanguage(lang)) | 236 if (translate::TranslateDownloadManager::IsAlphaLanguage(lang)) |
| 226 alpha_languages_list->Append(new base::StringValue(lang)); | 237 alpha_languages_list->Append(new base::StringValue(lang)); |
| 227 } | 238 } |
| 228 | 239 |
| 229 dict.Set("languages", languages_list); | 240 dict.Set("languages", languages_list); |
| 230 dict.Set("alpha_languages", alpha_languages_list); | 241 dict.Set("alpha_languages", alpha_languages_list); |
| 231 dict.Set("last_updated", | 242 dict.Set("last_updated", |
| 232 new base::FundamentalValue(last_updated.ToJsTime())); | 243 new base::FundamentalValue(last_updated.ToJsTime())); |
| 233 SendMessageToJs("supportedLanguagesUpdated", dict); | 244 SendMessageToJs("supportedLanguagesUpdated", dict); |
| 234 } | 245 } |
| 246 | |
| 247 void TranslateInternalsHandler::SendCountryToJs(bool is_update) { | |
| 248 content::WebContents* web_contents = web_ui()->GetWebContents(); | |
| 249 Profile* profile = | |
| 250 Profile::FromBrowserContext(web_contents->GetBrowserContext()); | |
| 251 PrefService* prefs = profile->GetOriginalProfile()->GetPrefs(); | |
| 252 std::unique_ptr<translate::TranslatePrefs> translate_prefs( | |
| 253 ChromeTranslateClient::CreateTranslatePrefs(prefs)); | |
| 254 | |
| 255 std::string country = translate_prefs->GetCountry(); | |
|
Alexei Svitkine (slow)
2016/04/20 20:43:54
I actually don't quite follow this logic. What doe
hamelphi
2016/04/20 21:39:46
You are right. I don't need to go through ChromeTr
| |
| 256 | |
| 257 base::DictionaryValue dict; | |
| 258 if (!country.empty()) { | |
| 259 dict.Set("country", new base::StringValue(translate_prefs->GetCountry())); | |
|
Alexei Svitkine (slow)
2016/04/20 20:43:54
Nit: You have |country| in a local var already.
hamelphi
2016/04/20 21:39:46
Done.
| |
| 260 dict.Set("update", new base::FundamentalValue(is_update)); | |
| 261 } | |
| 262 SendMessageToJs("countryUpdated", dict); | |
| 263 } | |
| OLD | NEW |