summaryrefslogtreecommitdiffstats
path: root/chrome/browser/translate
diff options
context:
space:
mode:
authorjoi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-26 02:55:05 +0000
committerjoi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-26 02:55:05 +0000
commitc9536a170eb95ca6c27f26e25d63b63cbbf263e1 (patch)
treecb59b58522a0a126209aca01b1d5a671272dbf9c /chrome/browser/translate
parent5da5aec46a82cf75d34dbf66249e68f180eb4802 (diff)
downloadchromium_src-c9536a170eb95ca6c27f26e25d63b63cbbf263e1.zip
chromium_src-c9536a170eb95ca6c27f26e25d63b63cbbf263e1.tar.gz
chromium_src-c9536a170eb95ca6c27f26e25d63b63cbbf263e1.tar.bz2
Fix prefs registration/migration for TranslatePrefs.
All preferences should be registered _before_ a PrefService is created, so reading other prefs during registration is a no-no. BUG=155525 Review URL: https://chromiumcodereview.appspot.com/12319069 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@184565 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/translate')
-rw-r--r--chrome/browser/translate/translate_prefs.cc34
-rw-r--r--chrome/browser/translate/translate_prefs.h5
2 files changed, 14 insertions, 25 deletions
diff --git a/chrome/browser/translate/translate_prefs.cc b/chrome/browser/translate/translate_prefs.cc
index db61e3e..df0ef65 100644
--- a/chrome/browser/translate/translate_prefs.cc
+++ b/chrome/browser/translate/translate_prefs.cc
@@ -166,30 +166,20 @@ bool TranslatePrefs::ShouldAutoTranslate(PrefService* user_prefs,
return prefs.IsLanguageWhitelisted(original_language, target_language);
}
-void TranslatePrefs::RegisterUserPrefs(PrefService* prefs,
- PrefRegistrySyncable* registry) {
- if (!prefs->FindPreference(kPrefTranslateLanguageBlacklist))
- registry->RegisterListPref(kPrefTranslateLanguageBlacklist,
- PrefRegistrySyncable::SYNCABLE_PREF);
- if (!prefs->FindPreference(kPrefTranslateSiteBlacklist))
- registry->RegisterListPref(kPrefTranslateSiteBlacklist,
- PrefRegistrySyncable::SYNCABLE_PREF);
- if (!prefs->FindPreference(kPrefTranslateWhitelists)) {
- registry->RegisterDictionaryPref(kPrefTranslateWhitelists,
- PrefRegistrySyncable::SYNCABLE_PREF);
- MigrateTranslateWhitelists(prefs);
- }
- if (!prefs->FindPreference(kPrefTranslateDeniedCount))
- registry->RegisterDictionaryPref(kPrefTranslateDeniedCount,
- PrefRegistrySyncable::SYNCABLE_PREF);
- if (!prefs->FindPreference(kPrefTranslateAcceptedCount))
- registry->RegisterDictionaryPref(kPrefTranslateAcceptedCount,
- PrefRegistrySyncable::SYNCABLE_PREF);
+void TranslatePrefs::RegisterUserPrefs(PrefRegistrySyncable* registry) {
+ registry->RegisterListPref(kPrefTranslateLanguageBlacklist,
+ PrefRegistrySyncable::SYNCABLE_PREF);
+ registry->RegisterListPref(kPrefTranslateSiteBlacklist,
+ PrefRegistrySyncable::SYNCABLE_PREF);
+ registry->RegisterDictionaryPref(kPrefTranslateWhitelists,
+ PrefRegistrySyncable::SYNCABLE_PREF);
+ registry->RegisterDictionaryPref(kPrefTranslateDeniedCount,
+ PrefRegistrySyncable::SYNCABLE_PREF);
+ registry->RegisterDictionaryPref(kPrefTranslateAcceptedCount,
+ PrefRegistrySyncable::SYNCABLE_PREF);
}
-// TranslatePrefs: private, static: --------------------------------------------
-
-void TranslatePrefs::MigrateTranslateWhitelists(PrefService* user_prefs) {
+void TranslatePrefs::MigrateUserPrefs(PrefService* user_prefs) {
// Old format of kPrefTranslateWhitelists
// - original language -> list of target langs to auto-translate
// - list of langs is in order of being enabled i.e. last in list is the
diff --git a/chrome/browser/translate/translate_prefs.h b/chrome/browser/translate/translate_prefs.h
index e68a1d3..2880948 100644
--- a/chrome/browser/translate/translate_prefs.h
+++ b/chrome/browser/translate/translate_prefs.h
@@ -68,11 +68,10 @@ class TranslatePrefs {
const std::string& original_language, const GURL& url);
static bool ShouldAutoTranslate(PrefService* user_prefs,
const std::string& original_language, std::string* target_language);
- static void RegisterUserPrefs(PrefService* prefs,
- PrefRegistrySyncable* registry);
+ static void RegisterUserPrefs(PrefRegistrySyncable* registry);
+ static void MigrateUserPrefs(PrefService* user_prefs);
private:
- static void MigrateTranslateWhitelists(PrefService* user_prefs);
bool IsValueBlacklisted(const char* pref_id, const std::string& value) const;
void BlacklistValue(const char* pref_id, const std::string& value);
void RemoveValueFromBlacklist(const char* pref_id, const std::string& value);