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

Unified Diff: components/content_settings/core/browser/host_content_settings_map.cc

Issue 1686343002: Change HostContentSettingsMap::SetContentSetting to use GURLs instead of patterns (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: minor change in comments Created 4 years, 10 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
« no previous file with comments | « components/content_settings/core/browser/host_content_settings_map.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/content_settings/core/browser/host_content_settings_map.cc
diff --git a/components/content_settings/core/browser/host_content_settings_map.cc b/components/content_settings/core/browser/host_content_settings_map.cc
index 303ec9855df7551c4c7d78eabbf5190e8278c968..d1151eab85af2a51fa622b979cda1d05674ff2a3 100644
--- a/components/content_settings/core/browser/host_content_settings_map.cc
+++ b/components/content_settings/core/browser/host_content_settings_map.cc
@@ -34,6 +34,8 @@
#include "net/base/static_cookie_policy.h"
#include "url/gurl.h"
+using content_settings::WebsiteSettingsInfo;
+
namespace {
typedef std::vector<content_settings::Rule> Rules;
@@ -106,6 +108,31 @@ scoped_ptr<base::Value> ProcessIncognitoInheritanceBehavior(
return value;
}
+content_settings::PatternPair GetPatternsFromScopingType(
+ WebsiteSettingsInfo::ScopingType scoping_type,
+ const GURL& primary_url,
+ const GURL& secondary_url) {
+ content_settings::PatternPair patterns;
+
+ switch (scoping_type) {
+ case WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE:
+ case WebsiteSettingsInfo::REQUESTING_DOMAIN_ONLY_SCOPE:
+ patterns.first = ContentSettingsPattern::FromURL(primary_url);
+ patterns.second = ContentSettingsPattern::Wildcard();
+ break;
+ case WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE:
+ patterns.first = ContentSettingsPattern::FromURLNoWildcard(primary_url);
+ patterns.second = ContentSettingsPattern::Wildcard();
+ break;
+ case WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE:
+ patterns.first = ContentSettingsPattern::FromURLNoWildcard(primary_url);
+ patterns.second =
+ ContentSettingsPattern::FromURLNoWildcard(secondary_url);
+ break;
+ }
+ return patterns;
+}
+
} // namespace
HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
@@ -283,39 +310,16 @@ void HostContentSettingsMap::SetWebsiteSettingDefaultScope(
ContentSettingsType content_type,
const std::string& resource_identifier,
base::Value* value) {
- using content_settings::WebsiteSettingsInfo;
-
const WebsiteSettingsInfo* info =
content_settings::WebsiteSettingsRegistry::GetInstance()->Get(
content_type);
- ContentSettingsPattern primary_pattern;
- ContentSettingsPattern secondary_pattern;
- switch (info->scoping_type()) {
- case WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE:
- primary_pattern = ContentSettingsPattern::FromURL(top_level_url);
- secondary_pattern = ContentSettingsPattern::Wildcard();
- DCHECK(requesting_url.is_empty());
- break;
- case WebsiteSettingsInfo::REQUESTING_DOMAIN_ONLY_SCOPE:
- primary_pattern = ContentSettingsPattern::FromURL(requesting_url);
- secondary_pattern = ContentSettingsPattern::Wildcard();
- DCHECK(top_level_url.is_empty());
- break;
- case WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE:
- primary_pattern =
- ContentSettingsPattern::FromURLNoWildcard(requesting_url);
- secondary_pattern = ContentSettingsPattern::Wildcard();
- DCHECK(top_level_url.is_empty());
- break;
- case WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE:
- primary_pattern =
- ContentSettingsPattern::FromURLNoWildcard(requesting_url);
- secondary_pattern =
- ContentSettingsPattern::FromURLNoWildcard(top_level_url);
- break;
- }
+ content_settings::PatternPair patterns = GetPatternsFromScopingType(
+ info->scoping_type(), requesting_url, top_level_url);
+ ContentSettingsPattern primary_pattern = patterns.first;
+ ContentSettingsPattern secondary_pattern = patterns.second;
if (!primary_pattern.IsValid() || !secondary_pattern.IsValid())
return;
+
SetWebsiteSettingCustomScope(primary_pattern, secondary_pattern, content_type,
resource_identifier, make_scoped_ptr(value));
}
@@ -437,6 +441,30 @@ void HostContentSettingsMap::SetContentSetting(
resource_identifier, std::move(value));
}
+void HostContentSettingsMap::SetContentSettingDefaultScope(
+ const GURL& primary_url,
+ const GURL& secondary_url,
+ ContentSettingsType content_type,
+ const std::string& resource_identifier,
+ ContentSetting setting) {
+ using content_settings::ContentSettingsInfo;
+ const ContentSettingsInfo* info =
+ content_settings::ContentSettingsRegistry::GetInstance()->Get(
+ content_type);
+ DCHECK(info);
+
+ content_settings::PatternPair patterns =
+ GetPatternsFromScopingType(info->website_settings_info()->scoping_type(),
+ primary_url, secondary_url);
+ ContentSettingsPattern primary_pattern = patterns.first;
+ ContentSettingsPattern secondary_pattern = patterns.second;
+ if (!primary_pattern.IsValid() || !secondary_pattern.IsValid())
+ return;
+
+ SetContentSetting(primary_pattern, secondary_pattern, content_type,
+ resource_identifier, setting);
+}
+
ContentSetting HostContentSettingsMap::GetContentSettingAndMaybeUpdateLastUsage(
const GURL& primary_url,
const GURL& secondary_url,
« no previous file with comments | « components/content_settings/core/browser/host_content_settings_map.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698