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 f4ed3245bec852d4d6f070e199d46df159ff46ae..a390189bf54b156b767ce75e8850198646c90b8b 100644 |
--- a/chrome/browser/content_settings/host_content_settings_map.cc |
+++ b/chrome/browser/content_settings/host_content_settings_map.cc |
@@ -78,8 +78,11 @@ bool SupportsResourceIdentifier(ContentSettingsType content_type) { |
HostContentSettingsMap::HostContentSettingsMap( |
PrefService* prefs, |
- bool incognito) |
- : prefs_(prefs), |
+ bool incognito) : |
+#ifndef NDEBUG |
+ used_content_settings_providers_(false), |
+#endif |
+ prefs_(prefs), |
is_off_the_record_(incognito) { |
content_settings::ObservableProvider* policy_provider = |
new content_settings::PolicyProvider(prefs_); |
@@ -106,6 +109,9 @@ HostContentSettingsMap::HostContentSettingsMap( |
void HostContentSettingsMap::RegisterExtensionService( |
ExtensionService* extension_service) { |
DCHECK(extension_service); |
+#ifndef NDEBUG |
+ DCHECK(!used_content_settings_providers_); |
+#endif |
DCHECK(!content_settings_providers_[INTERNAL_EXTENSION_PROVIDER]); |
DCHECK(!content_settings_providers_[CUSTOM_EXTENSION_PROVIDER]); |
@@ -168,6 +174,8 @@ ContentSetting HostContentSettingsMap::GetDefaultContentSettingFromProvider( |
ContentSetting HostContentSettingsMap::GetDefaultContentSetting( |
ContentSettingsType content_type, |
std::string* provider_id) const { |
+ UsedContentSettingsProviders(); |
+ |
// Iterate through the list of providers and return the first non-NULL value |
// that matches |primary_url| and |secondary_url|. |
for (ConstProviderIterator provider = content_settings_providers_.begin(); |
@@ -209,6 +217,7 @@ void HostContentSettingsMap::GetSettingsForOneType( |
DCHECK(SupportsResourceIdentifier(content_type) || |
resource_identifier.empty()); |
DCHECK(settings); |
+ UsedContentSettingsProviders(); |
settings->clear(); |
for (ConstProviderIterator provider = content_settings_providers_.begin(); |
@@ -258,6 +267,8 @@ void HostContentSettingsMap::SetWebsiteSetting( |
DCHECK(IsValueAllowedForType(prefs_, value, content_type)); |
DCHECK(SupportsResourceIdentifier(content_type) || |
resource_identifier.empty()); |
+ UsedContentSettingsProviders(); |
+ |
for (ProviderIterator provider = content_settings_providers_.begin(); |
provider != content_settings_providers_.end(); |
++provider) { |
@@ -317,6 +328,7 @@ void HostContentSettingsMap::AddExceptionForURL( |
void HostContentSettingsMap::ClearSettingsForOneType( |
ContentSettingsType content_type) { |
+ UsedContentSettingsProviders(); |
for (ProviderIterator provider = content_settings_providers_.begin(); |
provider != content_settings_providers_.end(); |
++provider) { |
@@ -505,6 +517,12 @@ void HostContentSettingsMap::AddSettingsForOneType( |
} |
} |
+void HostContentSettingsMap::UsedContentSettingsProviders() const { |
+#ifndef NDEBUG |
+ used_content_settings_providers_ = true; |
+#endif |
+} |
+ |
bool HostContentSettingsMap::ShouldAllowAllContent( |
const GURL& primary_url, |
const GURL& secondary_url, |