| 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 82815fc5d988b35d64c32229b33d5e704a9fdafe..ddd7eb7a86a031febb83c714436ec46c390189df 100644
|
| --- a/chrome/browser/content_settings/host_content_settings_map.cc
|
| +++ b/chrome/browser/content_settings/host_content_settings_map.cc
|
| @@ -68,17 +68,10 @@ bool ContentTypeHasCompoundValue(ContentSettingsType type) {
|
| return type == CONTENT_SETTINGS_TYPE_AUTO_SELECT_CERTIFICATE;
|
| }
|
|
|
| -ContentSetting GetDefaultSetting(
|
| - content_settings::RuleIterator* rule_iterator) {
|
| - ContentSettingsPattern wildcard = ContentSettingsPattern::Wildcard();
|
| - while (rule_iterator->HasNext()) {
|
| - content_settings::Rule rule = rule_iterator->Next();
|
| - if (rule.primary_pattern == wildcard &&
|
| - rule.secondary_pattern == wildcard) {
|
| - return content_settings::ValueToContentSetting(rule.value.get());
|
| - }
|
| - }
|
| - return CONTENT_SETTING_DEFAULT;
|
| +// Returns true if the |content_type| supports a resource identifier.
|
| +// Resource identifiers are supported (but not required) for plug-ins.
|
| +bool SupportsResourceIdentifier(ContentSettingsType content_type) {
|
| + return content_type == CONTENT_SETTINGS_TYPE_PLUGINS;
|
| }
|
|
|
| } // namespace
|
| @@ -132,7 +125,16 @@ ContentSetting HostContentSettingsMap::GetDefaultContentSettingFromProvider(
|
| content_settings::ProviderInterface* provider) const {
|
| scoped_ptr<content_settings::RuleIterator> rule_iterator(
|
| provider->GetRuleIterator(content_type, "", false));
|
| - return GetDefaultSetting(rule_iterator.get());
|
| +
|
| + ContentSettingsPattern wildcard = ContentSettingsPattern::Wildcard();
|
| + while (rule_iterator->HasNext()) {
|
| + content_settings::Rule rule = rule_iterator->Next();
|
| + if (rule.primary_pattern == wildcard &&
|
| + rule.secondary_pattern == wildcard) {
|
| + return content_settings::ValueToContentSetting(rule.value.get());
|
| + }
|
| + }
|
| + return CONTENT_SETTING_DEFAULT;
|
| }
|
|
|
| ContentSetting HostContentSettingsMap::GetDefaultContentSetting(
|
| @@ -168,6 +170,7 @@ ContentSetting HostContentSettingsMap::GetContentSetting(
|
| const GURL& secondary_url,
|
| ContentSettingsType content_type,
|
| const std::string& resource_identifier) const {
|
| + DCHECK(!ContentTypeHasCompoundValue(content_type));
|
| scoped_ptr<base::Value> value(GetWebsiteSetting(
|
| primary_url, secondary_url, content_type, resource_identifier, NULL));
|
| return content_settings::ValueToContentSetting(value.get());
|
| @@ -177,7 +180,7 @@ void HostContentSettingsMap::GetSettingsForOneType(
|
| ContentSettingsType content_type,
|
| const std::string& resource_identifier,
|
| ContentSettingsForOneType* settings) const {
|
| - DCHECK(content_settings::SupportsResourceIdentifier(content_type) ||
|
| + DCHECK(SupportsResourceIdentifier(content_type) ||
|
| resource_identifier.empty());
|
| DCHECK(settings);
|
|
|
| @@ -207,7 +210,7 @@ void HostContentSettingsMap::GetSettingsForOneType(
|
| void HostContentSettingsMap::SetDefaultContentSetting(
|
| ContentSettingsType content_type,
|
| ContentSetting setting) {
|
| - DCHECK_NE(content_type, CONTENT_SETTINGS_TYPE_AUTO_SELECT_CERTIFICATE);
|
| + DCHECK(!ContentTypeHasCompoundValue(content_type));
|
| DCHECK(IsSettingAllowedForType(setting, content_type));
|
|
|
| base::Value* value = NULL;
|
| @@ -228,7 +231,7 @@ void HostContentSettingsMap::SetWebsiteSetting(
|
| const std::string& resource_identifier,
|
| base::Value* value) {
|
| DCHECK(IsValueAllowedForType(value, content_type));
|
| - DCHECK(content_settings::SupportsResourceIdentifier(content_type) ||
|
| + DCHECK(SupportsResourceIdentifier(content_type) ||
|
| resource_identifier.empty());
|
| for (ProviderIterator provider = content_settings_providers_.begin();
|
| provider != content_settings_providers_.end();
|
| @@ -250,7 +253,7 @@ void HostContentSettingsMap::SetContentSetting(
|
| ContentSettingsType content_type,
|
| const std::string& resource_identifier,
|
| ContentSetting setting) {
|
| - DCHECK_NE(content_type, CONTENT_SETTINGS_TYPE_AUTO_SELECT_CERTIFICATE);
|
| + DCHECK(!ContentTypeHasCompoundValue(content_type));
|
| base::Value* value = NULL;
|
| if (setting != CONTENT_SETTING_DEFAULT)
|
| value = Value::CreateIntegerValue(setting);
|
| @@ -270,6 +273,7 @@ void HostContentSettingsMap::AddExceptionForURL(
|
| // TODO(markusheintz): Until the UI supports pattern pairs, both urls must
|
| // match.
|
| DCHECK(primary_url == secondary_url);
|
| + DCHECK(!ContentTypeHasCompoundValue(content_type));
|
|
|
| // Make sure there is no entry that would override the pattern we are about
|
| // to insert for exactly this URL.
|
| @@ -415,7 +419,7 @@ base::Value* HostContentSettingsMap::GetWebsiteSetting(
|
| ContentSettingsType content_type,
|
| const std::string& resource_identifier,
|
| content_settings::SettingInfo* info) const {
|
| - DCHECK(content_settings::SupportsResourceIdentifier(content_type) ||
|
| + DCHECK(SupportsResourceIdentifier(content_type) ||
|
| resource_identifier.empty());
|
|
|
| // Check if the scheme of the requesting url is whitelisted.
|
|
|