| OLD | NEW |
| 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/string_util.h" | 7 #include "base/string_util.h" |
| 8 #include "chrome/browser/prefs/pref_registry_syncable.h" |
| 8 #include "chrome/browser/prefs/pref_service.h" | 9 #include "chrome/browser/prefs/pref_service.h" |
| 9 #include "chrome/browser/prefs/scoped_user_pref_update.h" | 10 #include "chrome/browser/prefs/scoped_user_pref_update.h" |
| 10 | 11 |
| 11 const char TranslatePrefs::kPrefTranslateLanguageBlacklist[] = | 12 const char TranslatePrefs::kPrefTranslateLanguageBlacklist[] = |
| 12 "translate_language_blacklist"; | 13 "translate_language_blacklist"; |
| 13 const char TranslatePrefs::kPrefTranslateSiteBlacklist[] = | 14 const char TranslatePrefs::kPrefTranslateSiteBlacklist[] = |
| 14 "translate_site_blacklist"; | 15 "translate_site_blacklist"; |
| 15 const char TranslatePrefs::kPrefTranslateWhitelists[] = | 16 const char TranslatePrefs::kPrefTranslateWhitelists[] = |
| 16 "translate_whitelists"; | 17 "translate_whitelists"; |
| 17 const char TranslatePrefs::kPrefTranslateDeniedCount[] = | 18 const char TranslatePrefs::kPrefTranslateDeniedCount[] = |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 141 return false; | 142 return false; |
| 142 return (!prefs.IsLanguageBlacklisted(original_language)); | 143 return (!prefs.IsLanguageBlacklisted(original_language)); |
| 143 } | 144 } |
| 144 | 145 |
| 145 bool TranslatePrefs::ShouldAutoTranslate(PrefService* user_prefs, | 146 bool TranslatePrefs::ShouldAutoTranslate(PrefService* user_prefs, |
| 146 const std::string& original_language, std::string* target_language) { | 147 const std::string& original_language, std::string* target_language) { |
| 147 TranslatePrefs prefs(user_prefs); | 148 TranslatePrefs prefs(user_prefs); |
| 148 return prefs.IsLanguageWhitelisted(original_language, target_language); | 149 return prefs.IsLanguageWhitelisted(original_language, target_language); |
| 149 } | 150 } |
| 150 | 151 |
| 151 void TranslatePrefs::RegisterUserPrefs(PrefServiceSyncable* user_prefs) { | 152 void TranslatePrefs::RegisterUserPrefs(PrefService* prefs, |
| 152 if (!user_prefs->FindPreference(kPrefTranslateLanguageBlacklist)) | 153 PrefRegistrySyncable* registry) { |
| 153 user_prefs->RegisterListPref(kPrefTranslateLanguageBlacklist, | 154 if (!prefs->FindPreference(kPrefTranslateLanguageBlacklist)) |
| 154 PrefServiceSyncable::SYNCABLE_PREF); | 155 registry->RegisterListPref(kPrefTranslateLanguageBlacklist, |
| 155 if (!user_prefs->FindPreference(kPrefTranslateSiteBlacklist)) | 156 PrefRegistrySyncable::SYNCABLE_PREF); |
| 156 user_prefs->RegisterListPref(kPrefTranslateSiteBlacklist, | 157 if (!prefs->FindPreference(kPrefTranslateSiteBlacklist)) |
| 157 PrefServiceSyncable::SYNCABLE_PREF); | 158 registry->RegisterListPref(kPrefTranslateSiteBlacklist, |
| 158 if (!user_prefs->FindPreference(kPrefTranslateWhitelists)) { | 159 PrefRegistrySyncable::SYNCABLE_PREF); |
| 159 user_prefs->RegisterDictionaryPref(kPrefTranslateWhitelists, | 160 if (!prefs->FindPreference(kPrefTranslateWhitelists)) { |
| 160 PrefServiceSyncable::SYNCABLE_PREF); | 161 registry->RegisterDictionaryPref(kPrefTranslateWhitelists, |
| 161 MigrateTranslateWhitelists(user_prefs); | 162 PrefRegistrySyncable::SYNCABLE_PREF); |
| 163 MigrateTranslateWhitelists(prefs); |
| 162 } | 164 } |
| 163 if (!user_prefs->FindPreference(kPrefTranslateDeniedCount)) | 165 if (!prefs->FindPreference(kPrefTranslateDeniedCount)) |
| 164 user_prefs->RegisterDictionaryPref(kPrefTranslateDeniedCount, | 166 registry->RegisterDictionaryPref(kPrefTranslateDeniedCount, |
| 165 PrefServiceSyncable::SYNCABLE_PREF); | 167 PrefRegistrySyncable::SYNCABLE_PREF); |
| 166 if (!user_prefs->FindPreference(kPrefTranslateAcceptedCount)) | 168 if (!prefs->FindPreference(kPrefTranslateAcceptedCount)) |
| 167 user_prefs->RegisterDictionaryPref(kPrefTranslateAcceptedCount, | 169 registry->RegisterDictionaryPref(kPrefTranslateAcceptedCount, |
| 168 PrefServiceSyncable::SYNCABLE_PREF); | 170 PrefRegistrySyncable::SYNCABLE_PREF); |
| 169 } | 171 } |
| 170 | 172 |
| 171 // TranslatePrefs: private, static: -------------------------------------------- | 173 // TranslatePrefs: private, static: -------------------------------------------- |
| 172 | 174 |
| 173 void TranslatePrefs::MigrateTranslateWhitelists(PrefService* user_prefs) { | 175 void TranslatePrefs::MigrateTranslateWhitelists(PrefService* user_prefs) { |
| 174 // Old format of kPrefTranslateWhitelists | 176 // Old format of kPrefTranslateWhitelists |
| 175 // - original language -> list of target langs to auto-translate | 177 // - original language -> list of target langs to auto-translate |
| 176 // - list of langs is in order of being enabled i.e. last in list is the | 178 // - list of langs is in order of being enabled i.e. last in list is the |
| 177 // most recent language that user enabled via | 179 // most recent language that user enabled via |
| 178 // Always translate |source_lang| to |target_lang|" | 180 // Always translate |source_lang| to |target_lang|" |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 250 | 252 |
| 251 bool TranslatePrefs::IsLanguageWhitelisted( | 253 bool TranslatePrefs::IsLanguageWhitelisted( |
| 252 const std::string& original_language, std::string* target_language) { | 254 const std::string& original_language, std::string* target_language) { |
| 253 const DictionaryValue* dict = prefs_->GetDictionary(kPrefTranslateWhitelists); | 255 const DictionaryValue* dict = prefs_->GetDictionary(kPrefTranslateWhitelists); |
| 254 if (dict && dict->GetString(original_language, target_language)) { | 256 if (dict && dict->GetString(original_language, target_language)) { |
| 255 DCHECK(!target_language->empty()); | 257 DCHECK(!target_language->empty()); |
| 256 return !target_language->empty(); | 258 return !target_language->empty(); |
| 257 } | 259 } |
| 258 return false; | 260 return false; |
| 259 } | 261 } |
| OLD | NEW |