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) { |