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..9d2f2f871d304b7cca9045ec9d55fea6b33e3a2d 100644 |
| --- a/chrome/browser/ui/webui/translate_internals/translate_internals_handler.cc |
| +++ b/chrome/browser/ui/webui/translate_internals/translate_internals_handler.cc |
| @@ -10,6 +10,7 @@ |
| #include "base/bind.h" |
| #include "base/bind_helpers.h" |
| #include "base/values.h" |
| +#include "chrome/browser/browser_process.h" |
| #include "chrome/browser/chrome_notification_types.h" |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/translate/chrome_translate_client.h" |
| @@ -22,6 +23,7 @@ |
| #include "components/translate/core/browser/translate_prefs.h" |
| #include "components/translate/core/common/language_detection_details.h" |
| #include "components/translate/core/common/translate_pref_names.h" |
| +#include "components/variations/service/variations_service.h" |
| #include "content/public/browser/notification_details.h" |
| #include "content/public/browser/notification_service.h" |
| #include "content/public/browser/notification_source.h" |
| @@ -29,6 +31,7 @@ |
| #include "content/public/browser/web_contents.h" |
| #include "content/public/browser/web_ui.h" |
| + |
| TranslateInternalsHandler::TranslateInternalsHandler() { |
| notification_registrar_.Add(this, |
| chrome::NOTIFICATION_TAB_LANGUAGE_DETERMINED, |
| @@ -60,6 +63,10 @@ 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 +176,21 @@ void TranslateInternalsHandler::OnRemovePrefItem(const base::ListValue* args) { |
| SendPrefsToJs(); |
| } |
| +void TranslateInternalsHandler::OnOverrideCountry(const base::ListValue* args) { |
| + std::string country; |
| + if (args->GetString(0, &country)) { |
| + variations::VariationsService* variations_service = |
| + g_browser_process->variations_service(); |
| + if (variations_service) |
|
Alexei Svitkine (slow)
2016/04/20 21:46:44
Nit: {} since body is multi-line.
Alternatively,
hamelphi
2016/04/21 14:25:09
Done.
|
| + SendCountryToJs( |
| + variations_service->ForceSetStoredPermanentCountry(country)); |
| + } |
| +} |
| + |
| void TranslateInternalsHandler::OnRequestInfo(const base::ListValue* /*args*/) { |
| SendPrefsToJs(); |
| SendSupportedLanguagesToJs(); |
| + SendCountryToJs(false); |
| } |
| void TranslateInternalsHandler::SendMessageToJs(const std::string& message, |
| @@ -232,3 +251,18 @@ void TranslateInternalsHandler::SendSupportedLanguagesToJs() { |
| new base::FundamentalValue(last_updated.ToJsTime())); |
| SendMessageToJs("supportedLanguagesUpdated", dict); |
| } |
| + |
| +void TranslateInternalsHandler::SendCountryToJs(bool is_update) { |
| + std::string country = ""; |
|
Alexei Svitkine (slow)
2016/04/20 21:46:44
Nit: std::string default ctor is the empty string,
hamelphi
2016/04/21 14:25:09
Done.
|
| + variations::VariationsService* variations_service = |
| + g_browser_process->variations_service(); |
| + if (variations_service) { |
|
Alexei Svitkine (slow)
2016/04/20 21:46:44
Nit: No {}'s if the body is multi-line.
hamelphi
2016/04/21 14:25:09
Done.
|
| + country = variations_service->GetStoredPermanentCountry(); |
| + } |
| + base::DictionaryValue dict; |
| + if (!country.empty()) { |
| + dict.Set("country", new base::StringValue(country)); |
| + dict.Set("update", new base::FundamentalValue(is_update)); |
| + } |
| + SendMessageToJs("countryUpdated", dict); |
| +} |