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

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

Issue 12221147: Extend the translate prefs interface with new methods to clear/check blacklisted sites/languages (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 10 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
« no previous file with comments | « chrome/browser/translate/translate_prefs.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/prefs/pref_service.h" 7 #include "base/prefs/pref_service.h"
8 #include "base/string_util.h" 8 #include "base/string_util.h"
9 #include "chrome/browser/prefs/pref_registry_syncable.h" 9 #include "chrome/browser/prefs/pref_registry_syncable.h"
10 #include "chrome/browser/prefs/scoped_user_pref_update.h" 10 #include "chrome/browser/prefs/scoped_user_pref_update.h"
11 11
12 const char TranslatePrefs::kPrefTranslateLanguageBlacklist[] = 12 const char TranslatePrefs::kPrefTranslateLanguageBlacklist[] =
13 "translate_language_blacklist"; 13 "translate_language_blacklist";
14 const char TranslatePrefs::kPrefTranslateSiteBlacklist[] = 14 const char TranslatePrefs::kPrefTranslateSiteBlacklist[] =
15 "translate_site_blacklist"; 15 "translate_site_blacklist";
16 const char TranslatePrefs::kPrefTranslateWhitelists[] = 16 const char TranslatePrefs::kPrefTranslateWhitelists[] =
17 "translate_whitelists"; 17 "translate_whitelists";
18 const char TranslatePrefs::kPrefTranslateDeniedCount[] = 18 const char TranslatePrefs::kPrefTranslateDeniedCount[] =
19 "translate_denied_count"; 19 "translate_denied_count";
20 const char TranslatePrefs::kPrefTranslateAcceptedCount[] = 20 const char TranslatePrefs::kPrefTranslateAcceptedCount[] =
21 "translate_accepted_count"; 21 "translate_accepted_count";
22 22
23 // TranslatePrefs: public: ----------------------------------------------------- 23 // TranslatePrefs: public: -----------------------------------------------------
24 24
25 TranslatePrefs::TranslatePrefs(PrefService* user_prefs) 25 TranslatePrefs::TranslatePrefs(PrefService* user_prefs)
26 : prefs_(user_prefs) { 26 : prefs_(user_prefs) {
27 } 27 }
28 28
29 bool TranslatePrefs::IsLanguageBlacklisted( 29 bool TranslatePrefs::IsLanguageBlacklisted(
30 const std::string& original_language) { 30 const std::string& original_language) const {
31 return IsValueBlacklisted(kPrefTranslateLanguageBlacklist, original_language); 31 return IsValueBlacklisted(kPrefTranslateLanguageBlacklist, original_language);
32 } 32 }
33 33
34 void TranslatePrefs::BlacklistLanguage(const std::string& original_language) { 34 void TranslatePrefs::BlacklistLanguage(const std::string& original_language) {
35 BlacklistValue(kPrefTranslateLanguageBlacklist, original_language); 35 BlacklistValue(kPrefTranslateLanguageBlacklist, original_language);
36 } 36 }
37 37
38 void TranslatePrefs::RemoveLanguageFromBlacklist( 38 void TranslatePrefs::RemoveLanguageFromBlacklist(
39 const std::string& original_language) { 39 const std::string& original_language) {
40 RemoveValueFromBlacklist(kPrefTranslateLanguageBlacklist, original_language); 40 RemoveValueFromBlacklist(kPrefTranslateLanguageBlacklist, original_language);
41 } 41 }
42 42
43 bool TranslatePrefs::IsSiteBlacklisted(const std::string& site) { 43 bool TranslatePrefs::IsSiteBlacklisted(const std::string& site) const {
44 return IsValueBlacklisted(kPrefTranslateSiteBlacklist, site); 44 return IsValueBlacklisted(kPrefTranslateSiteBlacklist, site);
45 } 45 }
46 46
47 void TranslatePrefs::BlacklistSite(const std::string& site) { 47 void TranslatePrefs::BlacklistSite(const std::string& site) {
48 BlacklistValue(kPrefTranslateSiteBlacklist, site); 48 BlacklistValue(kPrefTranslateSiteBlacklist, site);
49 } 49 }
50 50
51 void TranslatePrefs::RemoveSiteFromBlacklist(const std::string& site) { 51 void TranslatePrefs::RemoveSiteFromBlacklist(const std::string& site) {
52 RemoveValueFromBlacklist(kPrefTranslateSiteBlacklist, site); 52 RemoveValueFromBlacklist(kPrefTranslateSiteBlacklist, site);
53 } 53 }
(...skipping 28 matching lines...) Expand all
82 const std::string& target_language) { 82 const std::string& target_language) {
83 DictionaryPrefUpdate update(prefs_, kPrefTranslateWhitelists); 83 DictionaryPrefUpdate update(prefs_, kPrefTranslateWhitelists);
84 DictionaryValue* dict = update.Get(); 84 DictionaryValue* dict = update.Get();
85 if (!dict) { 85 if (!dict) {
86 NOTREACHED() << "Unregistered translate whitelist pref"; 86 NOTREACHED() << "Unregistered translate whitelist pref";
87 return; 87 return;
88 } 88 }
89 dict->Remove(original_language, NULL); 89 dict->Remove(original_language, NULL);
90 } 90 }
91 91
92 int TranslatePrefs::GetTranslationDeniedCount(const std::string& language) { 92 bool TranslatePrefs::HasBlacklistedLanguages() const {
93 return !IsListEmpty(kPrefTranslateLanguageBlacklist);
94 }
95
96 void TranslatePrefs::ClearBlacklistedLanguages() {
97 prefs_->ClearPref(kPrefTranslateLanguageBlacklist);
98 }
99
100 bool TranslatePrefs::HasBlacklistedSites() {
101 return !IsListEmpty(kPrefTranslateSiteBlacklist);
102 }
103
104 void TranslatePrefs::ClearBlacklistedSites() {
105 prefs_->ClearPref(kPrefTranslateSiteBlacklist);
106 }
107
108 int TranslatePrefs::GetTranslationDeniedCount(
109 const std::string& language) const {
93 const DictionaryValue* dict = 110 const DictionaryValue* dict =
94 prefs_->GetDictionary(kPrefTranslateDeniedCount); 111 prefs_->GetDictionary(kPrefTranslateDeniedCount);
95 int count = 0; 112 int count = 0;
96 return dict->GetInteger(language, &count) ? count : 0; 113 return dict->GetInteger(language, &count) ? count : 0;
97 } 114 }
98 115
99 void TranslatePrefs::IncrementTranslationDeniedCount( 116 void TranslatePrefs::IncrementTranslationDeniedCount(
100 const std::string& language) { 117 const std::string& language) {
101 DictionaryPrefUpdate update(prefs_, kPrefTranslateDeniedCount); 118 DictionaryPrefUpdate update(prefs_, kPrefTranslateDeniedCount);
102 DictionaryValue* dict = update.Get(); 119 DictionaryValue* dict = update.Get();
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 target_lang.empty()) 220 target_lang.empty())
204 dict->Remove(*iter, NULL); 221 dict->Remove(*iter, NULL);
205 else 222 else
206 dict->SetString(*iter, target_lang); 223 dict->SetString(*iter, target_lang);
207 } 224 }
208 } 225 }
209 226
210 // TranslatePrefs: private: ---------------------------------------------------- 227 // TranslatePrefs: private: ----------------------------------------------------
211 228
212 bool TranslatePrefs::IsValueInList(const ListValue* list, 229 bool TranslatePrefs::IsValueInList(const ListValue* list,
213 const std::string& in_value) { 230 const std::string& in_value) const {
214 for (size_t i = 0; i < list->GetSize(); ++i) { 231 for (size_t i = 0; i < list->GetSize(); ++i) {
215 std::string value; 232 std::string value;
216 if (list->GetString(i, &value) && value == in_value) 233 if (list->GetString(i, &value) && value == in_value)
217 return true; 234 return true;
218 } 235 }
219 return false; 236 return false;
220 } 237 }
221 238
222 bool TranslatePrefs::IsValueBlacklisted(const char* pref_id, 239 bool TranslatePrefs::IsValueBlacklisted(const char* pref_id,
223 const std::string& value) { 240 const std::string& value) const {
224 const ListValue* blacklist = prefs_->GetList(pref_id); 241 const ListValue* blacklist = prefs_->GetList(pref_id);
225 return (blacklist && !blacklist->empty() && IsValueInList(blacklist, value)); 242 return (blacklist && !blacklist->empty() && IsValueInList(blacklist, value));
226 } 243 }
227 244
228 void TranslatePrefs::BlacklistValue(const char* pref_id, 245 void TranslatePrefs::BlacklistValue(const char* pref_id,
229 const std::string& value) { 246 const std::string& value) {
230 { 247 {
231 ListPrefUpdate update(prefs_, pref_id); 248 ListPrefUpdate update(prefs_, pref_id);
232 ListValue* blacklist = update.Get(); 249 ListValue* blacklist = update.Get();
233 if (!blacklist) { 250 if (!blacklist) {
(...skipping 10 matching lines...) Expand all
244 ListValue* blacklist = update.Get(); 261 ListValue* blacklist = update.Get();
245 if (!blacklist) { 262 if (!blacklist) {
246 NOTREACHED() << "Unregistered translate blacklist pref"; 263 NOTREACHED() << "Unregistered translate blacklist pref";
247 return; 264 return;
248 } 265 }
249 StringValue string_value(value); 266 StringValue string_value(value);
250 blacklist->Remove(string_value, NULL); 267 blacklist->Remove(string_value, NULL);
251 } 268 }
252 269
253 bool TranslatePrefs::IsLanguageWhitelisted( 270 bool TranslatePrefs::IsLanguageWhitelisted(
254 const std::string& original_language, std::string* target_language) { 271 const std::string& original_language, std::string* target_language) const {
255 const DictionaryValue* dict = prefs_->GetDictionary(kPrefTranslateWhitelists); 272 const DictionaryValue* dict = prefs_->GetDictionary(kPrefTranslateWhitelists);
256 if (dict && dict->GetString(original_language, target_language)) { 273 if (dict && dict->GetString(original_language, target_language)) {
257 DCHECK(!target_language->empty()); 274 DCHECK(!target_language->empty());
258 return !target_language->empty(); 275 return !target_language->empty();
259 } 276 }
260 return false; 277 return false;
261 } 278 }
279
280 bool TranslatePrefs::IsListEmpty(const char* pref_id) const {
281 const ListValue* blacklist = prefs_->GetList(pref_id);
282 return (blacklist == NULL || blacklist->empty());
283 }
OLDNEW
« no previous file with comments | « chrome/browser/translate/translate_prefs.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698