Chromium Code Reviews| 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); |