Index: chrome/browser/content_settings/host_content_settings_map.h |
diff --git a/chrome/browser/content_settings/host_content_settings_map.h b/chrome/browser/content_settings/host_content_settings_map.h |
index 1b05880c57e3ab022013feb90ae3b088990e24a8..09d8ebd660d921a21502edee67b81e044f4d1c5a 100644 |
--- a/chrome/browser/content_settings/host_content_settings_map.h |
+++ b/chrome/browser/content_settings/host_content_settings_map.h |
@@ -33,6 +33,7 @@ class Value; |
} |
namespace content_settings { |
+class ObservableProvider; |
class ProviderInterface; |
class PrefProvider; |
} |
@@ -46,6 +47,9 @@ class HostContentSettingsMap |
public base::RefCountedThreadSafe<HostContentSettingsMap> { |
public: |
enum ProviderType { |
+ // EXTENSION names is a layering violation when this class will move to |
+ // components. |
+ // TODO(mukai): find the solution. |
INTERNAL_EXTENSION_PROVIDER = 0, |
POLICY_PROVIDER, |
CUSTOM_EXTENSION_PROVIDER, |
@@ -56,15 +60,13 @@ class HostContentSettingsMap |
HostContentSettingsMap(PrefService* prefs, bool incognito); |
-#if defined(ENABLE_EXTENSIONS) |
- // In some cases, the ExtensionService is not available at the time the |
- // HostContentSettingsMap is constructed. In these cases, we register the |
- // service once it's available. |
- void RegisterExtensionService(ExtensionService* extension_service); |
-#endif |
- |
static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry); |
+ // Adds a new provider for |type|. |
+ void RegisterProvider( |
+ ProviderType type, |
+ scoped_ptr<content_settings::ObservableProvider> provider); |
+ |
// Returns the default setting for a particular content type. If |provider_id| |
// is not NULL, the id of the provider which provided the default setting is |
// assigned to it. |