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

Side by Side Diff: chrome/browser/translate/translate_prefs.cc

Issue 23708004: Translate: Remove --enable-translate-settings (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Modify TranslateManagerBrowserTest.NeverTranslateLanguagePref Created 7 years, 3 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 (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/translate/translate_prefs.h" 5 #include "chrome/browser/translate/translate_prefs.h"
6 6
7 #include "base/command_line.h"
8 #include "base/prefs/pref_service.h" 7 #include "base/prefs/pref_service.h"
9 #include "base/strings/string_split.h" 8 #include "base/strings/string_split.h"
10 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
11 #include "chrome/browser/browser_process.h" 10 #include "chrome/browser/browser_process.h"
12 #include "chrome/browser/prefs/scoped_user_pref_update.h" 11 #include "chrome/browser/prefs/scoped_user_pref_update.h"
13 #include "chrome/browser/profiles/profile.h" 12 #include "chrome/browser/profiles/profile.h"
14 #include "chrome/browser/translate/translate_accept_languages.h" 13 #include "chrome/browser/translate/translate_accept_languages.h"
15 #include "chrome/browser/translate/translate_manager.h" 14 #include "chrome/browser/translate/translate_manager.h"
16 #include "chrome/common/chrome_switches.h"
17 #include "chrome/common/pref_names.h" 15 #include "chrome/common/pref_names.h"
18 #include "chrome/common/translate/translate_util.h" 16 #include "chrome/common/translate/translate_util.h"
19 #include "components/user_prefs/pref_registry_syncable.h" 17 #include "components/user_prefs/pref_registry_syncable.h"
20 18
21 const char TranslatePrefs::kPrefTranslateLanguageBlacklist[] = 19 const char TranslatePrefs::kPrefTranslateLanguageBlacklist[] =
22 "translate_language_blacklist"; 20 "translate_language_blacklist";
23 const char TranslatePrefs::kPrefTranslateSiteBlacklist[] = 21 const char TranslatePrefs::kPrefTranslateSiteBlacklist[] =
24 "translate_site_blacklist"; 22 "translate_site_blacklist";
25 const char TranslatePrefs::kPrefTranslateWhitelists[] = 23 const char TranslatePrefs::kPrefTranslateWhitelists[] =
26 "translate_whitelists"; 24 "translate_whitelists";
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 } // namespace 71 } // namespace
74 72
75 // TranslatePrefs: public: ----------------------------------------------------- 73 // TranslatePrefs: public: -----------------------------------------------------
76 74
77 TranslatePrefs::TranslatePrefs(PrefService* user_prefs) 75 TranslatePrefs::TranslatePrefs(PrefService* user_prefs)
78 : prefs_(user_prefs) { 76 : prefs_(user_prefs) {
79 } 77 }
80 78
81 bool TranslatePrefs::IsBlockedLanguage( 79 bool TranslatePrefs::IsBlockedLanguage(
82 const std::string& original_language) const { 80 const std::string& original_language) const {
83 CommandLine* command_line = CommandLine::ForCurrentProcess(); 81 return IsValueBlacklisted(kPrefTranslateBlockedLanguages,
84 if (command_line->HasSwitch(switches::kEnableTranslateSettings)) { 82 original_language);
85 return IsValueBlacklisted(kPrefTranslateBlockedLanguages,
86 original_language);
87 } else {
88 return IsValueBlacklisted(kPrefTranslateLanguageBlacklist,
89 original_language);
90 }
91 } 83 }
92 84
93 void TranslatePrefs::BlockLanguage( 85 void TranslatePrefs::BlockLanguage(
94 const std::string& original_language) { 86 const std::string& original_language) {
95 CommandLine* command_line = CommandLine::ForCurrentProcess(); 87 BlacklistValue(kPrefTranslateBlockedLanguages, original_language);
96 if (command_line->HasSwitch(switches::kEnableTranslateSettings)) { 88 AppendLanguageToAcceptLanguages(prefs_, original_language);
97 BlacklistValue(kPrefTranslateBlockedLanguages, original_language);
98 AppendLanguageToAcceptLanguages(prefs_, original_language);
99 } else {
100 BlacklistValue(kPrefTranslateLanguageBlacklist, original_language);
101 }
102 } 89 }
103 90
104 void TranslatePrefs::UnblockLanguage( 91 void TranslatePrefs::UnblockLanguage(
105 const std::string& original_language) { 92 const std::string& original_language) {
106 CommandLine* command_line = CommandLine::ForCurrentProcess(); 93 RemoveValueFromBlacklist(kPrefTranslateBlockedLanguages,
107 if (command_line->HasSwitch(switches::kEnableTranslateSettings)) { 94 original_language);
108 RemoveValueFromBlacklist(kPrefTranslateBlockedLanguages,
109 original_language);
110 } else {
111 RemoveValueFromBlacklist(kPrefTranslateLanguageBlacklist,
112 original_language);
113 }
114 } 95 }
115 96
116 void TranslatePrefs::RemoveLanguageFromLegacyBlacklist( 97 void TranslatePrefs::RemoveLanguageFromLegacyBlacklist(
117 const std::string& original_language) { 98 const std::string& original_language) {
118 RemoveValueFromBlacklist(kPrefTranslateLanguageBlacklist, 99 RemoveValueFromBlacklist(kPrefTranslateLanguageBlacklist,
119 original_language); 100 original_language);
120 } 101 }
121 102
122 bool TranslatePrefs::IsSiteBlacklisted(const std::string& site) const { 103 bool TranslatePrefs::IsSiteBlacklisted(const std::string& site) const {
123 return IsValueBlacklisted(kPrefTranslateSiteBlacklist, site); 104 return IsValueBlacklisted(kPrefTranslateSiteBlacklist, site);
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 DictionaryPrefUpdate update(prefs_, kPrefTranslateWhitelists); 143 DictionaryPrefUpdate update(prefs_, kPrefTranslateWhitelists);
163 DictionaryValue* dict = update.Get(); 144 DictionaryValue* dict = update.Get();
164 if (!dict) { 145 if (!dict) {
165 NOTREACHED() << "Unregistered translate whitelist pref"; 146 NOTREACHED() << "Unregistered translate whitelist pref";
166 return; 147 return;
167 } 148 }
168 dict->Remove(original_language, NULL); 149 dict->Remove(original_language, NULL);
169 } 150 }
170 151
171 bool TranslatePrefs::HasBlacklistedLanguages() const { 152 bool TranslatePrefs::HasBlacklistedLanguages() const {
172 CommandLine* command_line = CommandLine::ForCurrentProcess(); 153 return !IsListEmpty(kPrefTranslateBlockedLanguages);
173 if (command_line->HasSwitch(switches::kEnableTranslateSettings))
174 return !IsListEmpty(kPrefTranslateBlockedLanguages);
175 else
176 return !IsListEmpty(kPrefTranslateLanguageBlacklist);
177 } 154 }
178 155
179 void TranslatePrefs::ClearBlacklistedLanguages() { 156 void TranslatePrefs::ClearBlacklistedLanguages() {
180 CommandLine* command_line = CommandLine::ForCurrentProcess(); 157 prefs_->ClearPref(kPrefTranslateBlockedLanguages);
181 if (command_line->HasSwitch(switches::kEnableTranslateSettings))
182 prefs_->ClearPref(kPrefTranslateBlockedLanguages);
183 else
184 prefs_->ClearPref(kPrefTranslateLanguageBlacklist);
185 } 158 }
186 159
187 bool TranslatePrefs::HasBlacklistedSites() const { 160 bool TranslatePrefs::HasBlacklistedSites() const {
188 return !IsListEmpty(kPrefTranslateSiteBlacklist); 161 return !IsListEmpty(kPrefTranslateSiteBlacklist);
189 } 162 }
190 163
191 void TranslatePrefs::ClearBlacklistedSites() { 164 void TranslatePrefs::ClearBlacklistedSites() {
192 prefs_->ClearPref(kPrefTranslateSiteBlacklist); 165 prefs_->ClearPref(kPrefTranslateSiteBlacklist);
193 } 166 }
194 167
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 } 219 }
247 220
248 // TranslatePrefs: public, static: --------------------------------------------- 221 // TranslatePrefs: public, static: ---------------------------------------------
249 222
250 // static 223 // static
251 bool TranslatePrefs::CanTranslateLanguage(Profile* profile, 224 bool TranslatePrefs::CanTranslateLanguage(Profile* profile,
252 const std::string& language) { 225 const std::string& language) {
253 TranslatePrefs translate_prefs(profile->GetPrefs()); 226 TranslatePrefs translate_prefs(profile->GetPrefs());
254 bool blocked = translate_prefs.IsBlockedLanguage(language); 227 bool blocked = translate_prefs.IsBlockedLanguage(language);
255 228
256 CommandLine* command_line = CommandLine::ForCurrentProcess(); 229 bool is_accept_language =
257 if (command_line->HasSwitch(switches::kEnableTranslateSettings)) { 230 TranslateManager::IsAcceptLanguage(profile, language);
258 bool is_accept_language = 231 bool can_be_accept_language =
259 TranslateManager::IsAcceptLanguage(profile, language); 232 TranslateAcceptLanguages::CanBeAcceptLanguage(language);
260 bool can_be_accept_language =
261 TranslateAcceptLanguages::CanBeAcceptLanguage(language);
262 233
263 // Don't translate any user black-listed languages. Checking 234 // Don't translate any user black-listed languages. Checking
264 // |is_accept_language| is necessary because if the user eliminates the 235 // |is_accept_language| is necessary because if the user eliminates the
265 // language from the preference, it is natural to forget whether or not 236 // language from the preference, it is natural to forget whether or not
266 // the language should be translated. Checking |cannot_be_accept_language| 237 // the language should be translated. Checking |cannot_be_accept_language|
267 // is also necessary because some minor languages can't be selected in the 238 // is also necessary because some minor languages can't be selected in the
268 // language preference even though the language is available in Translate 239 // language preference even though the language is available in Translate
269 // server. 240 // server.
270 if (blocked && (is_accept_language || !can_be_accept_language)) 241 if (blocked && (is_accept_language || !can_be_accept_language))
271 return false; 242 return false;
272 } else {
273 // Don't translate any user user selected language.
274 if (blocked)
275 return false;
276 }
277 243
278 return true; 244 return true;
279 } 245 }
280 246
281 // static 247 // static
282 bool TranslatePrefs::ShouldAutoTranslate(PrefService* user_prefs, 248 bool TranslatePrefs::ShouldAutoTranslate(PrefService* user_prefs,
283 const std::string& original_language, std::string* target_language) { 249 const std::string& original_language, std::string* target_language) {
284 TranslatePrefs prefs(user_prefs); 250 TranslatePrefs prefs(user_prefs);
285 return prefs.IsLanguageWhitelisted(original_language, target_language); 251 return prefs.IsLanguageWhitelisted(original_language, target_language);
286 } 252 }
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
347 313
348 // Get the union of the blacklist and the Accept languages, and set this to 314 // Get the union of the blacklist and the Accept languages, and set this to
349 // the new language set 'translate_blocked_languages'. This is used for the 315 // the new language set 'translate_blocked_languages'. This is used for the
350 // settings UI for Translate and configration to determine which langauage 316 // settings UI for Translate and configration to determine which langauage
351 // should be translated instead of the blacklist. The blacklist is no longer 317 // should be translated instead of the blacklist. The blacklist is no longer
352 // used after launching the settings UI. 318 // used after launching the settings UI.
353 // After that, Set 'translate_languages_not_translate' to Accept languages to 319 // After that, Set 'translate_languages_not_translate' to Accept languages to
354 // enable settings for users. 320 // enable settings for users.
355 bool merged = user_prefs->HasPrefPath(kPrefTranslateBlockedLanguages); 321 bool merged = user_prefs->HasPrefPath(kPrefTranslateBlockedLanguages);
356 322
357 const CommandLine& command_line = *CommandLine::ForCurrentProcess(); 323 if (!merged) {
358 bool enabled_translate_settings =
359 command_line.HasSwitch(switches::kEnableTranslateSettings);
360
361 if (!merged && enabled_translate_settings) {
362 std::vector<std::string> blacklisted_languages; 324 std::vector<std::string> blacklisted_languages;
363 GetBlacklistedLanguages(user_prefs, &blacklisted_languages); 325 GetBlacklistedLanguages(user_prefs, &blacklisted_languages);
364 326
365 std::string accept_languages_str = 327 std::string accept_languages_str =
366 user_prefs->GetString(prefs::kAcceptLanguages); 328 user_prefs->GetString(prefs::kAcceptLanguages);
367 std::vector<std::string> accept_languages; 329 std::vector<std::string> accept_languages;
368 base::SplitString(accept_languages_str, ',', &accept_languages); 330 base::SplitString(accept_languages_str, ',', &accept_languages);
369 331
370 std::vector<std::string> blocked_languages; 332 std::vector<std::string> blocked_languages;
371 CreateBlockedLanguages(&blocked_languages, 333 CreateBlockedLanguages(&blocked_languages,
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
496 458
497 bool TranslatePrefs::IsListEmpty(const char* pref_id) const { 459 bool TranslatePrefs::IsListEmpty(const char* pref_id) const {
498 const ListValue* blacklist = prefs_->GetList(pref_id); 460 const ListValue* blacklist = prefs_->GetList(pref_id);
499 return (blacklist == NULL || blacklist->empty()); 461 return (blacklist == NULL || blacklist->empty());
500 } 462 }
501 463
502 bool TranslatePrefs::IsDictionaryEmpty(const char* pref_id) const { 464 bool TranslatePrefs::IsDictionaryEmpty(const char* pref_id) const {
503 const DictionaryValue* dict = prefs_->GetDictionary(pref_id); 465 const DictionaryValue* dict = prefs_->GetDictionary(pref_id);
504 return (dict == NULL || dict->empty()); 466 return (dict == NULL || dict->empty());
505 } 467 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698