| Index: chrome/browser/content_settings/content_settings_pref_provider.cc
|
| diff --git a/chrome/browser/content_settings/content_settings_pref_provider.cc b/chrome/browser/content_settings/content_settings_pref_provider.cc
|
| index e5ad337a5d9d2231b5dce62913b37d961433a93c..eb6135f7c507a3e8c30773537de33828f7f7f499 100644
|
| --- a/chrome/browser/content_settings/content_settings_pref_provider.cc
|
| +++ b/chrome/browser/content_settings/content_settings_pref_provider.cc
|
| @@ -120,7 +120,10 @@ PrefProvider::PrefProvider(PrefService* prefs,
|
| }
|
|
|
| pref_change_registrar_.Init(prefs_);
|
| - pref_change_registrar_.Add(prefs::kContentSettingsPatternPairs, this);
|
| + pref_change_registrar_.Add(
|
| + prefs::kContentSettingsPatternPairs,
|
| + base::Bind(&PrefProvider::OnContentSettingsPatternPairsChanged,
|
| + base::Unretained(this)));
|
| }
|
|
|
| bool PrefProvider::SetWebsiteSetting(
|
| @@ -217,23 +220,6 @@ void PrefProvider::ClearAllContentSettingsRules(
|
| std::string());
|
| }
|
|
|
| -void PrefProvider::OnPreferenceChanged(PrefServiceBase* service,
|
| - const std::string& name) {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| - DCHECK_EQ(prefs_, service);
|
| - DCHECK_EQ(std::string(prefs::kContentSettingsPatternPairs), name);
|
| -
|
| - if (updating_preferences_)
|
| - return;
|
| -
|
| - ReadContentSettingsFromPref(true);
|
| -
|
| - NotifyObservers(ContentSettingsPattern(),
|
| - ContentSettingsPattern(),
|
| - CONTENT_SETTINGS_TYPE_DEFAULT,
|
| - std::string());
|
| -}
|
| -
|
| PrefProvider::~PrefProvider() {
|
| DCHECK(!prefs_);
|
| }
|
| @@ -384,6 +370,20 @@ void PrefProvider::ReadContentSettingsFromPref(bool overwrite) {
|
| }
|
| }
|
|
|
| +void PrefProvider::OnContentSettingsPatternPairsChanged() {
|
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| +
|
| + if (updating_preferences_)
|
| + return;
|
| +
|
| + ReadContentSettingsFromPref(true);
|
| +
|
| + NotifyObservers(ContentSettingsPattern(),
|
| + ContentSettingsPattern(),
|
| + CONTENT_SETTINGS_TYPE_DEFAULT,
|
| + std::string());
|
| +}
|
| +
|
| void PrefProvider::UpdatePatternPairsSettings(
|
| const ContentSettingsPattern& primary_pattern,
|
| const ContentSettingsPattern& secondary_pattern,
|
|
|