diff --git a/components/content_settings/core/browser/brave_content_settings_pref_provider.cc b/components/content_settings/core/browser/brave_content_settings_pref_provider.cc index fb0218de6752..dd05ebe77636 100644 --- a/components/content_settings/core/browser/brave_content_settings_pref_provider.cc +++ b/components/content_settings/core/browser/brave_content_settings_pref_provider.cc @@ -114,6 +114,7 @@ BravePrefProvider::BravePrefProvider(PrefService* prefs, bool store_last_modified, bool restore_session) : PrefProvider(prefs, off_the_record, store_last_modified, restore_session), + initialized_(false), weak_factory_(this) { brave_pref_change_registrar_.Init(prefs_); brave_pref_change_registrar_.Add( @@ -138,8 +139,9 @@ BravePrefProvider::BravePrefProvider(PrefService* prefs, MigrateShieldsSettings(off_the_record); - AddObserver(this); OnCookieSettingsChanged(ContentSettingsType::PLUGINS); + initialized_ = true; + AddObserver(this); } BravePrefProvider::~BravePrefProvider() {} @@ -442,7 +444,7 @@ void BravePrefProvider::UpdateCookieRules(ContentSettingsType content_type, } // Notify brave cookie changes as ContentSettingsType::COOKIES - if (content_type == ContentSettingsType::PLUGINS) { + if (initialized_ && content_type == ContentSettingsType::PLUGINS) { // PostTask here to avoid content settings autolock DCHECK base::PostTask( FROM_HERE, diff --git a/components/content_settings/core/browser/brave_content_settings_pref_provider.h b/components/content_settings/core/browser/brave_content_settings_pref_provider.h index 09dedf2dffb8..93dbe776ccbc 100644 --- a/components/content_settings/core/browser/brave_content_settings_pref_provider.h +++ b/components/content_settings/core/browser/brave_content_settings_pref_provider.h @@ -75,6 +75,8 @@ class BravePrefProvider : public PrefProvider, std::map> cookie_rules_; std::map> brave_cookie_rules_; + bool initialized_; + base::WeakPtrFactory weak_factory_; DISALLOW_COPY_AND_ASSIGN(BravePrefProvider);