diff options
author | joi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-26 02:55:05 +0000 |
---|---|---|
committer | joi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-26 02:55:05 +0000 |
commit | c9536a170eb95ca6c27f26e25d63b63cbbf263e1 (patch) | |
tree | cb59b58522a0a126209aca01b1d5a671272dbf9c /chrome/browser/translate | |
parent | 5da5aec46a82cf75d34dbf66249e68f180eb4802 (diff) | |
download | chromium_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.cc | 34 | ||||
-rw-r--r-- | chrome/browser/translate/translate_prefs.h | 5 |
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); |