Chromium Code Reviews| Index: chrome/browser/content_settings/host_content_settings_map.cc |
| diff --git a/chrome/browser/content_settings/host_content_settings_map.cc b/chrome/browser/content_settings/host_content_settings_map.cc |
| index e0e1e56940f5754f5157a4bd55f679c36c935f4e..08a05945f03f3caba05669e83f18e7714b94c066 100644 |
| --- a/chrome/browser/content_settings/host_content_settings_map.cc |
| +++ b/chrome/browser/content_settings/host_content_settings_map.cc |
| @@ -12,6 +12,7 @@ |
| #include "chrome/browser/content_settings/content_settings_extension_provider.h" |
| #include "chrome/browser/content_settings/content_settings_policy_provider.h" |
| #include "chrome/browser/content_settings/content_settings_pref_provider.h" |
| +#include "chrome/browser/content_settings/content_settings_abstract_provider.h" |
| #include "chrome/browser/content_settings/content_settings_provider.h" |
| #include "chrome/browser/content_settings/content_settings_utils.h" |
| #include "chrome/browser/extensions/extension_service.h" |
| @@ -50,7 +51,7 @@ typedef std::vector<DefaultContentSettingsProviderPtr>::iterator |
| typedef std::vector<DefaultContentSettingsProviderPtr>::const_iterator |
| ConstDefaultProviderIterator; |
| -typedef linked_ptr<content_settings::ProviderInterface> ProviderPtr; |
| +typedef linked_ptr<content_settings::AbstractProvider> ProviderPtr; |
| typedef std::vector<ProviderPtr>::iterator ProviderIterator; |
| typedef std::vector<ProviderPtr>::const_iterator ConstProviderIterator; |
| @@ -109,20 +110,22 @@ HostContentSettingsMap::HostContentSettingsMap( |
| // The order in which the content settings providers are created is critical, |
| // as providers that are further up in the list (i.e. added earlier) override |
| // providers further down. |
| - content_settings_providers_.push_back(make_linked_ptr( |
| - new content_settings::PolicyProvider(this, |
| - prefs_, |
| - policy_default_provider))); |
| + content_settings::AbstractProvider* provider = |
| + new content_settings::PolicyProvider( |
| + this, prefs_, policy_default_provider); |
| + content_settings_providers_.push_back(make_linked_ptr(provider)); |
| + |
| if (extension_service) { |
| // |extension_service| can be NULL in unit tests. |
| - content_settings_providers_.push_back(make_linked_ptr( |
| - new content_settings::ExtensionProvider( |
| - this, |
| - extension_service->GetExtensionContentSettingsStore(), |
| - is_off_the_record_))); |
| + provider = new content_settings::ExtensionProvider( |
| + this, |
| + extension_service->GetExtensionContentSettingsStore(), |
| + is_off_the_record_); |
| + content_settings_providers_.push_back(make_linked_ptr(provider)); |
| } |
| - content_settings_providers_.push_back(make_linked_ptr( |
| - new content_settings::PrefProvider(this, prefs_, is_off_the_record_))); |
| + provider = new content_settings::PrefProvider( |
| + this, prefs_, is_off_the_record_); |
| + content_settings_providers_.push_back(make_linked_ptr(provider)); |
| pref_change_registrar_.Init(prefs_); |
| pref_change_registrar_.Add(prefs::kBlockThirdPartyCookies, this); |
| @@ -447,6 +450,20 @@ void HostContentSettingsMap::SetBlockThirdPartyCookies(bool block) { |
| prefs_->SetBoolean(prefs::kBlockThirdPartyCookies, block); |
| } |
| +void HostContentSettingsMap::OnContentSettingChanged( |
| + const ContentSettingsDetails& details) { |
| + LOG(ERROR) << " *** OnContentSettingChanged event received:" |
|
Bernhard Bauer
2011/07/13 07:58:18
Please remember to remove this statement before co
markusheintz_
2011/07/13 12:48:16
removed
|
| + << " [" << details.primary_pattern().ToString() |
| + << ", " << details.secondary_pattern().ToString() |
| + << ", " << details.type() |
| + << ", " << details.resource_identifier() |
| + << "]"; |
| + NotificationService::current()->Notify( |
| + chrome::NOTIFICATION_CONTENT_SETTINGS_CHANGED, |
| + Source<HostContentSettingsMap>(this), |
| + Details<const ContentSettingsDetails>(&details)); |
| +} |
| + |
| void HostContentSettingsMap::Observe(int type, |
| const NotificationSource& source, |
| const NotificationDetails& details) { |