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

Unified Diff: components/content_settings/core/common/content_settings_pattern.cc

Issue 1895993003: Add migration code to change existing domain scoped content settings to be origin scoped (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address review comments and split the CL Created 4 years, 6 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: components/content_settings/core/common/content_settings_pattern.cc
diff --git a/components/content_settings/core/common/content_settings_pattern.cc b/components/content_settings/core/common/content_settings_pattern.cc
index 74a9ffaf86d16c055e4613fe3daac1f076becb74..2a2ddc1d9c34bcbeacbe74433373279ec43a712f 100644
--- a/components/content_settings/core/common/content_settings_pattern.cc
+++ b/components/content_settings/core/common/content_settings_pattern.cc
@@ -439,6 +439,24 @@ ContentSettingsPattern ContentSettingsPattern::FromString(
}
// static
+ContentSettingsPattern ContentSettingsPattern::FromDomainToOrigin(
+ const ContentSettingsPattern domain_pattern) {
+ ContentSettingsPattern origin_pattern(domain_pattern);
+
+ if (domain_pattern.parts_.is_scheme_wildcard) {
+ origin_pattern.parts_.scheme = url::kHttpScheme;
+ origin_pattern.parts_.is_scheme_wildcard = false;
+ }
+ if (domain_pattern.parts_.has_domain_wildcard)
+ origin_pattern.parts_.has_domain_wildcard = false;
+ if (domain_pattern.parts_.is_port_wildcard) {
+ origin_pattern.parts_.port = GetDefaultPort(origin_pattern.parts_.scheme);
+ origin_pattern.parts_.is_port_wildcard = false;
+ }
+ return origin_pattern;
+}
+
+// static
void ContentSettingsPattern::SetNonWildcardDomainNonPortScheme(
const char* scheme) {
DCHECK(scheme);
@@ -529,6 +547,27 @@ bool ContentSettingsPattern::MatchesAllHosts() const {
return parts_.has_domain_wildcard && parts_.host.empty();
}
+bool ContentSettingsPattern::IsGeneratedUsingFromURL() const {
+ // Generated patterns must either have a scheme wildcard or be https.
+ if (parts_.scheme != url::kHttpsScheme && !parts_.is_scheme_wildcard)
+ return false;
+
+ // Generated patterns will either have a port wildcard or be https (but not
+ // both).
+ if (parts_.is_port_wildcard && parts_.scheme == url::kHttpsScheme)
+ return false;
+
+ // Generated patterns will always have a domain wildcard.
+ if (!parts_.has_domain_wildcard)
+ return false;
+
+ // Generated patterns will always have a host.
+ if (parts_.host.empty())
+ return false;
+
+ return true;
+}
+
std::string ContentSettingsPattern::ToString() const {
if (IsValid())
return content_settings::PatternParser::ToString(parts_);

Powered by Google App Engine
This is Rietveld 408576698