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

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: enhance tests 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..f4163a461515896ee47fa19f6d0ed63b2559d7cf 100644
--- a/components/content_settings/core/common/content_settings_pattern.cc
+++ b/components/content_settings/core/common/content_settings_pattern.cc
@@ -439,6 +439,50 @@ ContentSettingsPattern ContentSettingsPattern::FromString(
}
// static
+bool ContentSettingsPattern::MigrateFromDomainToOrigin(
+ const ContentSettingsPattern& domain_pattern,
+ ContentSettingsPattern* origin_pattern) {
+ DCHECK(origin_pattern);
+
+ // Generated patterns must either have a scheme wildcard or be https.
+ if (domain_pattern.parts_.scheme != url::kHttpsScheme &&
+ !domain_pattern.parts_.is_scheme_wildcard) {
+ return false;
+ }
+
+ // Generated patterns will either have a port wildcard or be https (but not
msramek 2016/06/30 16:16:22 Not sure if this is just me, but this sentence rea
lshang 2016/07/04 02:46:01 Done.
+ // both).
+ if (domain_pattern.parts_.is_port_wildcard &&
+ domain_pattern.parts_.scheme == url::kHttpsScheme) {
+ return false;
+ }
+
+ // Generated patterns will always have a domain wildcard.
msramek 2016/06/30 16:16:22 nit: Patterns generated with ::FromUrl (which we w
lshang 2016/07/04 02:46:01 Done.
+ if (!domain_pattern.parts_.has_domain_wildcard)
+ return false;
+
+ // Generated patterns will always have a host.
+ if (domain_pattern.parts_.host.empty())
+ return false;
+
+ *origin_pattern = domain_pattern;
msramek 2016/06/30 16:16:22 Would it make sense to use Builder here instead of
lshang 2016/07/04 02:46:01 Done.
+
+ if (domain_pattern.parts_.is_scheme_wildcard) {
+ (*origin_pattern).parts_.scheme = url::kHttpScheme;
msramek 2016/06/30 16:16:22 The scheme wildcard exception was valid for both h
lshang 2016/07/04 02:46:01 That's a good point! Patterns generated from perm
msramek 2016/07/07 12:19:24 Yup, makes sense :)
+ (*origin_pattern).parts_.is_scheme_wildcard = false;
+ }
+
+ (*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 true;
+}
+
+// static
void ContentSettingsPattern::SetNonWildcardDomainNonPortScheme(
const char* scheme) {
DCHECK(scheme);

Powered by Google App Engine
This is Rietveld 408576698