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

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

Issue 7344008: Make the hcsm and its providers communicate via an observer interface. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: " 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 9dcf9ae98dcb09d5230b39dd023bd6c2ebe02c4e..10c94bd3fcc7a85a426c31de8e3ae4050a3a8574 100644
--- a/chrome/browser/content_settings/content_settings_extension_provider.cc
+++ b/chrome/browser/content_settings/content_settings_extension_provider.cc
@@ -4,28 +4,21 @@
#include "chrome/browser/content_settings/content_settings_extension_provider.h"
-#include "chrome/browser/content_settings/content_settings_details.h"
#include "chrome/browser/extensions/extension_content_settings_store.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/chrome_notification_types.h"
-#include "content/common/notification_details.h"
-#include "content/common/notification_service.h"
-#include "content/common/notification_source.h"
namespace content_settings {
ExtensionProvider::ExtensionProvider(
- HostContentSettingsMap* map,
ExtensionContentSettingsStore* extensions_settings,
bool incognito)
- : map_(map),
- incognito_(incognito),
+ : incognito_(incognito),
extensions_settings_(extensions_settings) {
extensions_settings_->AddObserver(this);
}
ExtensionProvider::~ExtensionProvider() {
- DCHECK(!map_);
}
ContentSetting ExtensionProvider::GetContentSetting(
@@ -53,17 +46,8 @@ void ExtensionProvider::GetAllContentSettingsRules(
}
void ExtensionProvider::ShutdownOnUIThread() {
+ RemoveAllObservers();
extensions_settings_->RemoveObserver(this);
- map_ = NULL;
-}
-
-void ExtensionProvider::NotifyObservers(
- const ContentSettingsDetails& details) {
- DCHECK(map_);
- NotificationService::current()->Notify(
- chrome::NOTIFICATION_CONTENT_SETTINGS_CHANGED,
- Source<HostContentSettingsMap>(map_),
- Details<const ContentSettingsDetails>(&details));
}
void ExtensionProvider::OnContentSettingChanged(
@@ -72,11 +56,10 @@ void ExtensionProvider::OnContentSettingChanged(
if (incognito_ != incognito)
return;
// TODO(markusheintz): Be more concise.
- ContentSettingsDetails details(ContentSettingsPattern(),
- ContentSettingsPattern(),
- CONTENT_SETTINGS_TYPE_DEFAULT,
- std::string());
- NotifyObservers(details);
+ NotifyObservers(ContentSettingsPattern(),
+ ContentSettingsPattern(),
+ CONTENT_SETTINGS_TYPE_DEFAULT,
+ std::string());
}
} // namespace content_settings

Powered by Google App Engine
This is Rietveld 408576698