Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(310)

Side by Side Diff: chrome/browser/ui/webui/translate_internals/translate_internals_handler.cc

Issue 1903593002: Allows to manually change the stored permanent country in Variations from the translate-internals d… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: UI polishing Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698