Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5029)

Unified Diff: chrome/browser/content_settings/content_settings_extension_provider.cc

Issue 7275018: Make ExtensionContentSettingsStore refcounted. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review Created 9 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698