Chromium Code Reviews| Index: chrome/browser/ui/webui/translate_internals/translate_internals_handler.cc |
| diff --git a/chrome/browser/ui/webui/translate_internals/translate_internals_handler.cc b/chrome/browser/ui/webui/translate_internals/translate_internals_handler.cc |
| index d4e8ba932c8829274a000a042e6421a5f27394ec..3cbbe70396f5e73f17dc9299dab79cb48fd004a5 100644 |
| --- a/chrome/browser/ui/webui/translate_internals/translate_internals_handler.cc |
| +++ b/chrome/browser/ui/webui/translate_internals/translate_internals_handler.cc |
| @@ -60,6 +60,8 @@ void TranslateInternalsHandler::RegisterMessages() { |
| &TranslateInternalsHandler::OnRemovePrefItem, base::Unretained(this))); |
| web_ui()->RegisterMessageCallback("requestInfo", base::Bind( |
| &TranslateInternalsHandler::OnRequestInfo, base::Unretained(this))); |
| + web_ui()->RegisterMessageCallback("overrideCountry", base::Bind( |
| + &TranslateInternalsHandler::OnOverrideCountry, base::Unretained(this))); |
| } |
| void TranslateInternalsHandler::Observe( |
| @@ -169,9 +171,18 @@ void TranslateInternalsHandler::OnRemovePrefItem(const base::ListValue* args) { |
| SendPrefsToJs(); |
| } |
| +void TranslateInternalsHandler::OnOverrideCountry(const base::ListValue* args) { |
| + std::string country; |
| + if (args->GetString(0, &country) && |
| + ChromeTranslateClient::OverrideStoredPermanentCountry(country)) { |
| + SendCountryToJs(true); |
| + } |
| +} |
| + |
| void TranslateInternalsHandler::OnRequestInfo(const base::ListValue* /*args*/) { |
| SendPrefsToJs(); |
| SendSupportedLanguagesToJs(); |
| + SendCountryToJs(false); |
| } |
| void TranslateInternalsHandler::SendMessageToJs(const std::string& message, |
| @@ -232,3 +243,21 @@ void TranslateInternalsHandler::SendSupportedLanguagesToJs() { |
| new base::FundamentalValue(last_updated.ToJsTime())); |
| SendMessageToJs("supportedLanguagesUpdated", dict); |
| } |
| + |
| +void TranslateInternalsHandler::SendCountryToJs(bool is_update) { |
| + content::WebContents* web_contents = web_ui()->GetWebContents(); |
| + Profile* profile = |
| + Profile::FromBrowserContext(web_contents->GetBrowserContext()); |
| + PrefService* prefs = profile->GetOriginalProfile()->GetPrefs(); |
| + std::unique_ptr<translate::TranslatePrefs> translate_prefs( |
| + ChromeTranslateClient::CreateTranslatePrefs(prefs)); |
| + |
| + 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
|
| + |
| + base::DictionaryValue dict; |
| + if (!country.empty()) { |
| + 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.
|
| + dict.Set("update", new base::FundamentalValue(is_update)); |
| + } |
| + SendMessageToJs("countryUpdated", dict); |
| +} |