diff options
9 files changed, 103 insertions, 135 deletions
diff --git a/chrome/browser/content_settings/content_settings_default_provider.cc b/chrome/browser/content_settings/content_settings_default_provider.cc index 28fd5cd..97e6b55 100644 --- a/chrome/browser/content_settings/content_settings_default_provider.cc +++ b/chrome/browser/content_settings/content_settings_default_provider.cc @@ -280,33 +280,30 @@ void DefaultProvider::Observe(int type, const content::NotificationSource& source, const content::NotificationDetails& details) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - - if (type == chrome::NOTIFICATION_PREF_CHANGED) { - DCHECK_EQ(prefs_, content::Source<PrefService>(source).ptr()); - if (updating_preferences_) - return; - - std::string* name = content::Details<std::string>(details).ptr(); - if (*name == prefs::kDefaultContentSettings) { - ReadDefaultSettings(true); - } else if (*name == prefs::kGeolocationDefaultContentSetting) { - MigrateObsoleteGeolocationPref(); - // Return and don't send a notifications. Migrating the obsolete - // geolocation pref will change the prefs::kDefaultContentSettings and - // cause the notification to be fired. - return; - } else { - NOTREACHED() << "Unexpected preference observed"; - return; - } - - NotifyObservers(ContentSettingsPattern(), - ContentSettingsPattern(), - CONTENT_SETTINGS_TYPE_DEFAULT, - std::string()); + DCHECK_EQ(chrome::NOTIFICATION_PREF_CHANGED, type); + DCHECK_EQ(content::Source<PrefService>(source).ptr(), prefs_); + + if (updating_preferences_) + return; + + const std::string& name = *content::Details<std::string>(details).ptr(); + if (name == prefs::kDefaultContentSettings) { + ReadDefaultSettings(true); + } else if (name == prefs::kGeolocationDefaultContentSetting) { + MigrateObsoleteGeolocationPref(); + // Return and don't send a notifications. Migrating the obsolete + // geolocation pref will change the prefs::kDefaultContentSettings and + // cause the notification to be fired. + return; } else { - NOTREACHED() << "Unexpected notification"; + NOTREACHED() << "Unexpected preference observed"; + return; } + + NotifyObservers(ContentSettingsPattern(), + ContentSettingsPattern(), + CONTENT_SETTINGS_TYPE_DEFAULT, + std::string()); } void DefaultProvider::ReadDefaultSettings(bool overwrite) { diff --git a/chrome/browser/content_settings/content_settings_policy_provider.cc b/chrome/browser/content_settings/content_settings_policy_provider.cc index 6aa1a0e..cb24bfd 100644 --- a/chrome/browser/content_settings/content_settings_policy_provider.cc +++ b/chrome/browser/content_settings/content_settings_policy_provider.cc @@ -426,45 +426,44 @@ void PolicyProvider::Observe(int type, const content::NotificationSource& source, const content::NotificationDetails& details) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - - if (type == chrome::NOTIFICATION_PREF_CHANGED) { - DCHECK_EQ(prefs_, content::Source<PrefService>(source).ptr()); - std::string* name = content::Details<std::string>(details).ptr(); - if (*name == prefs::kManagedDefaultCookiesSetting) { - UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_COOKIES); - } else if (*name == prefs::kManagedDefaultImagesSetting) { - UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_IMAGES); - } else if (*name == prefs::kManagedDefaultJavaScriptSetting) { - UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_JAVASCRIPT); - } else if (*name == prefs::kManagedDefaultPluginsSetting) { - UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_PLUGINS); - } else if (*name == prefs::kManagedDefaultPopupsSetting) { - UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_POPUPS); - } else if (*name == prefs::kManagedDefaultGeolocationSetting) { - UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_GEOLOCATION); - } else if (*name == prefs::kManagedDefaultNotificationsSetting) { - UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_NOTIFICATIONS); - } else if (*name == prefs::kManagedDefaultMediaStreamSetting) { - UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_MEDIASTREAM); - } else if (*name == prefs::kManagedAutoSelectCertificateForUrls || - *name == prefs::kManagedCookiesAllowedForUrls || - *name == prefs::kManagedCookiesBlockedForUrls || - *name == prefs::kManagedCookiesSessionOnlyForUrls || - *name == prefs::kManagedImagesAllowedForUrls || - *name == prefs::kManagedImagesBlockedForUrls || - *name == prefs::kManagedJavaScriptAllowedForUrls || - *name == prefs::kManagedJavaScriptBlockedForUrls || - *name == prefs::kManagedPluginsAllowedForUrls || - *name == prefs::kManagedPluginsBlockedForUrls || - *name == prefs::kManagedPopupsAllowedForUrls || - *name == prefs::kManagedPopupsBlockedForUrls || - *name == prefs::kManagedNotificationsAllowedForUrls || - *name == prefs::kManagedNotificationsBlockedForUrls) { - ReadManagedContentSettings(true); - ReadManagedDefaultSettings(); - } + DCHECK_EQ(chrome::NOTIFICATION_PREF_CHANGED, type); + DCHECK_EQ(content::Source<PrefService>(source).ptr(), prefs_); + + const std::string& name = *content::Details<std::string>(details).ptr(); + if (name == prefs::kManagedDefaultCookiesSetting) { + UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_COOKIES); + } else if (name == prefs::kManagedDefaultImagesSetting) { + UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_IMAGES); + } else if (name == prefs::kManagedDefaultJavaScriptSetting) { + UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_JAVASCRIPT); + } else if (name == prefs::kManagedDefaultPluginsSetting) { + UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_PLUGINS); + } else if (name == prefs::kManagedDefaultPopupsSetting) { + UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_POPUPS); + } else if (name == prefs::kManagedDefaultGeolocationSetting) { + UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_GEOLOCATION); + } else if (name == prefs::kManagedDefaultNotificationsSetting) { + UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_NOTIFICATIONS); + } else if (name == prefs::kManagedDefaultMediaStreamSetting) { + UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_MEDIASTREAM); + } else if (name == prefs::kManagedAutoSelectCertificateForUrls || + name == prefs::kManagedCookiesAllowedForUrls || + name == prefs::kManagedCookiesBlockedForUrls || + name == prefs::kManagedCookiesSessionOnlyForUrls || + name == prefs::kManagedImagesAllowedForUrls || + name == prefs::kManagedImagesBlockedForUrls || + name == prefs::kManagedJavaScriptAllowedForUrls || + name == prefs::kManagedJavaScriptBlockedForUrls || + name == prefs::kManagedPluginsAllowedForUrls || + name == prefs::kManagedPluginsBlockedForUrls || + name == prefs::kManagedPopupsAllowedForUrls || + name == prefs::kManagedPopupsBlockedForUrls || + name == prefs::kManagedNotificationsAllowedForUrls || + name == prefs::kManagedNotificationsBlockedForUrls) { + ReadManagedContentSettings(true); + ReadManagedDefaultSettings(); } else { - NOTREACHED() << "Unexpected notification"; + NOTREACHED(); return; } NotifyObservers(ContentSettingsPattern(), diff --git a/chrome/browser/content_settings/content_settings_pref_provider.cc b/chrome/browser/content_settings/content_settings_pref_provider.cc index 6dfb9ad..8b4887e 100644 --- a/chrome/browser/content_settings/content_settings_pref_provider.cc +++ b/chrome/browser/content_settings/content_settings_pref_provider.cc @@ -222,26 +222,20 @@ void PrefProvider::Observe( const content::NotificationSource& source, const content::NotificationDetails& details) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK_EQ(chrome::NOTIFICATION_PREF_CHANGED, type); + DCHECK_EQ(content::Source<PrefService>(source).ptr(), prefs_); + DCHECK_EQ(std::string(prefs::kContentSettingsPatternPairs), + *content::Details<std::string>(details).ptr()); - if (type == chrome::NOTIFICATION_PREF_CHANGED) { - DCHECK_EQ(prefs_, content::Source<PrefService>(source).ptr()); - if (updating_preferences_) - return; + if (updating_preferences_) + return; - std::string* name = content::Details<std::string>(details).ptr(); - if (*name != prefs::kContentSettingsPatternPairs) { - NOTREACHED() << "Unexpected preference observed"; - return; - } - ReadContentSettingsFromPref(true); + ReadContentSettingsFromPref(true); - NotifyObservers(ContentSettingsPattern(), - ContentSettingsPattern(), - CONTENT_SETTINGS_TYPE_DEFAULT, - std::string()); - } else { - NOTREACHED() << "Unexpected notification"; - } + NotifyObservers(ContentSettingsPattern(), + ContentSettingsPattern(), + CONTENT_SETTINGS_TYPE_DEFAULT, + std::string()); } PrefProvider::~PrefProvider() { diff --git a/chrome/browser/content_settings/cookie_settings.cc b/chrome/browser/content_settings/cookie_settings.cc index 72cfd17..9407cbc 100644 --- a/chrome/browser/content_settings/cookie_settings.cc +++ b/chrome/browser/content_settings/cookie_settings.cc @@ -159,20 +159,15 @@ void CookieSettings::Observe(int type, const content::NotificationSource& source, const content::NotificationDetails& details) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - - if (type == chrome::NOTIFICATION_PREF_CHANGED) { - PrefService* prefs = content::Source<PrefService>(source).ptr(); - std::string* name = content::Details<std::string>(details).ptr(); - if (*name == prefs::kBlockThirdPartyCookies) { - base::AutoLock auto_lock(lock_); - block_third_party_cookies_ = prefs->GetBoolean( - prefs::kBlockThirdPartyCookies); - } else { - NOTREACHED() << "Unexpected preference observed"; - return; - } - } else { - NOTREACHED() << "Unexpected notification"; + DCHECK_EQ(chrome::NOTIFICATION_PREF_CHANGED, type); + DCHECK_EQ(std::string(prefs::kBlockThirdPartyCookies), + *content::Details<std::string>(details).ptr()); + + PrefService* prefs = content::Source<PrefService>(source).ptr(); + { + base::AutoLock auto_lock(lock_); + block_third_party_cookies_ = prefs->GetBoolean( + prefs::kBlockThirdPartyCookies); } } diff --git a/chrome/browser/extensions/api/font_settings/font_settings_api.cc b/chrome/browser/extensions/api/font_settings/font_settings_api.cc index 93d6a9c..82d63cc 100644 --- a/chrome/browser/extensions/api/font_settings/font_settings_api.cc +++ b/chrome/browser/extensions/api/font_settings/font_settings_api.cc @@ -158,30 +158,27 @@ void FontSettingsEventRouter::Observe( int type, const content::NotificationSource& source, const content::NotificationDetails& details) { - if (type != chrome::NOTIFICATION_PREF_CHANGED) { - NOTREACHED(); - return; - } + DCHECK_EQ(chrome::NOTIFICATION_PREF_CHANGED, type); PrefService* pref_service = content::Source<PrefService>(source).ptr(); bool incognito = (pref_service != profile_->GetPrefs()); // We're only observing pref changes on the regular profile. DCHECK(!incognito); - const std::string* pref_name = - content::Details<const std::string>(details).ptr(); + const std::string& pref_name = + *content::Details<const std::string>(details).ptr(); - PrefEventMap::iterator iter = pref_event_map_.find(*pref_name); + PrefEventMap::iterator iter = pref_event_map_.find(pref_name); if (iter != pref_event_map_.end()) { const std::string& event_name = iter->second.first; const std::string& key = iter->second.second; - OnFontPrefChanged(pref_service, *pref_name, event_name, key, incognito); + OnFontPrefChanged(pref_service, pref_name, event_name, key, incognito); return; } std::string generic_family; std::string script; - if (ParseFontNamePrefPath(*pref_name, &generic_family, &script)) { - OnFontNamePrefChanged(pref_service, *pref_name, generic_family, script, + if (ParseFontNamePrefPath(pref_name, &generic_family, &script)) { + OnFontNamePrefChanged(pref_service, pref_name, generic_family, script, incognito); return; } diff --git a/chrome/browser/extensions/api/preference/preference_api.cc b/chrome/browser/extensions/api/preference/preference_api.cc index 06ef6c2..a555e36 100644 --- a/chrome/browser/extensions/api/preference/preference_api.cc +++ b/chrome/browser/extensions/api/preference/preference_api.cc @@ -257,13 +257,9 @@ void PreferenceEventRouter::Observe( int type, const content::NotificationSource& source, const content::NotificationDetails& details) { - if (type == chrome::NOTIFICATION_PREF_CHANGED) { - const std::string* pref_key = - content::Details<const std::string>(details).ptr(); - OnPrefChanged(content::Source<PrefService>(source).ptr(), *pref_key); - } else { - NOTREACHED(); - } + DCHECK_EQ(chrome::NOTIFICATION_PREF_CHANGED, type); + OnPrefChanged(content::Source<PrefService>(source).ptr(), + *content::Details<const std::string>(details).ptr()); } void PreferenceEventRouter::OnPrefChanged(PrefService* pref_service, diff --git a/chrome/browser/extensions/component_loader.cc b/chrome/browser/extensions/component_loader.cc index 59b2bb7..e7e5b16 100644 --- a/chrome/browser/extensions/component_loader.cc +++ b/chrome/browser/extensions/component_loader.cc @@ -411,16 +411,10 @@ void ComponentLoader::Observe( int type, const content::NotificationSource& source, const content::NotificationDetails& details) { - if (type == chrome::NOTIFICATION_PREF_CHANGED) { - const std::string* name = - content::Details<const std::string>(details).ptr(); - if (*name == prefs::kEnterpriseWebStoreURL) - AddOrReloadEnterpriseWebStore(); - else - NOTREACHED(); - } else { - NOTREACHED(); - } + DCHECK_EQ(chrome::NOTIFICATION_PREF_CHANGED, type); + DCHECK_EQ(std::string(prefs::kEnterpriseWebStoreURL), + *content::Details<const std::string>(details).ptr()); + AddOrReloadEnterpriseWebStore(); } // static diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc index c7b6401..cc1ea1b 100644 --- a/chrome/browser/extensions/extension_service.cc +++ b/chrome/browser/extensions/extension_service.cc @@ -2582,14 +2582,13 @@ void ExtensionService::Observe(int type, break; } case chrome::NOTIFICATION_PREF_CHANGED: { - std::string* pref_name = content::Details<std::string>(details).ptr(); - if (*pref_name == prefs::kExtensionInstallAllowList || - *pref_name == prefs::kExtensionInstallDenyList) { - IdentifyAlertableExtensions(); - CheckManagementPolicy(); - } else { - NOTREACHED() << "Unexpected preference name."; - } + const std::string& pref_name = + *content::Details<std::string>(details).ptr(); + DCHECK(pref_name == prefs::kExtensionInstallAllowList || + pref_name == prefs::kExtensionInstallDenyList) + << "Unexpected preference name " << pref_name; + IdentifyAlertableExtensions(); + CheckManagementPolicy(); break; } case chrome::NOTIFICATION_IMPORT_FINISHED: { diff --git a/chrome/browser/extensions/external_policy_loader.cc b/chrome/browser/extensions/external_policy_loader.cc index a93fe0f..5a3cbf9 100644 --- a/chrome/browser/extensions/external_policy_loader.cc +++ b/chrome/browser/extensions/external_policy_loader.cc @@ -82,12 +82,9 @@ void ExternalPolicyLoader::Observe( switch (type) { case chrome::NOTIFICATION_PREF_CHANGED: { if (content::Source<PrefService>(source).ptr() == profile_->GetPrefs()) { - std::string* pref_name = content::Details<std::string>(details).ptr(); - if (*pref_name == prefs::kExtensionInstallForceList) { - StartLoading(); - } else { - NOTREACHED() << "Unexpected preference name."; - } + DCHECK_EQ(std::string(prefs::kExtensionInstallForceList), + *content::Details<std::string>(details).ptr()); + StartLoading(); } break; } |