| Index: chrome/browser/content_settings/content_settings_extension_provider.cc
|
| diff --git a/chrome/browser/content_settings/content_settings_extension_provider.cc b/chrome/browser/content_settings/content_settings_extension_provider.cc
|
| index 640d4549fe97f4f8771ee625e2511155915853c8..703edd8d4ff81b9d08ea9f9bcac579cbe1ce7247 100644
|
| --- a/chrome/browser/content_settings/content_settings_extension_provider.cc
|
| +++ b/chrome/browser/content_settings/content_settings_extension_provider.cc
|
| @@ -14,19 +14,17 @@
|
| namespace content_settings {
|
|
|
| ExtensionProvider::ExtensionProvider(
|
| - Profile* profile,
|
| + HostContentSettingsMap* map,
|
| ExtensionContentSettingsStore* extensions_settings,
|
| bool incognito)
|
| - : profile_(profile),
|
| + : map_(map),
|
| incognito_(incognito),
|
| extensions_settings_(extensions_settings) {
|
| - DCHECK(extensions_settings);
|
| extensions_settings_->AddObserver(this);
|
| }
|
|
|
| ExtensionProvider::~ExtensionProvider() {
|
| - if (extensions_settings_)
|
| - extensions_settings_->RemoveObserver(this);
|
| + DCHECK(!map_);
|
| }
|
|
|
| ContentSetting ExtensionProvider::GetContentSetting(
|
| @@ -49,18 +47,21 @@ void ExtensionProvider::GetAllContentSettingsRules(
|
| ContentSettingsType content_type,
|
| const ResourceIdentifier& resource_identifier,
|
| Rules* content_setting_rules) const {
|
| - DCHECK(extensions_settings_);
|
| return extensions_settings_->GetContentSettingsForContentType(
|
| content_type, resource_identifier, incognito_, content_setting_rules);
|
| }
|
|
|
| +void ExtensionProvider::ShutdownOnUIThread() {
|
| + extensions_settings_->RemoveObserver(this);
|
| + map_ = NULL;
|
| +}
|
| +
|
| void ExtensionProvider::NotifyObservers(
|
| const ContentSettingsDetails& details) {
|
| - if (profile_ == NULL)
|
| - return;
|
| + DCHECK(map_);
|
| NotificationService::current()->Notify(
|
| NotificationType::CONTENT_SETTINGS_CHANGED,
|
| - Source<HostContentSettingsMap>(profile_->GetHostContentSettingsMap()),
|
| + Source<HostContentSettingsMap>(map_),
|
| Details<const ContentSettingsDetails>(&details));
|
| }
|
|
|
| @@ -77,9 +78,4 @@ void ExtensionProvider::OnContentSettingChanged(
|
| NotifyObservers(details);
|
| }
|
|
|
| -void ExtensionProvider::OnDestruction() {
|
| - DCHECK(extensions_settings_);
|
| - extensions_settings_ = NULL;
|
| -}
|
| -
|
| } // namespace content_settings
|
|
|