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 a83a6959a02240575eae95fe7168e4ea75c644bc..55c1854075d952b6e3f0b2af930d9941069f5fc9 100644 |
| --- a/components/content_settings/core/common/content_settings_pattern.cc |
| +++ b/components/content_settings/core/common/content_settings_pattern.cc |
| @@ -10,6 +10,7 @@ |
| #include <vector> |
| #include "base/macros.h" |
| +#include "base/memory/ptr_util.h" |
| #include "base/strings/string_split.h" |
| #include "base/strings/string_util.h" |
| #include "components/content_settings/core/common/content_settings_pattern_parser.h" |
| @@ -100,7 +101,7 @@ typedef ContentSettingsPattern::BuilderInterface BuilderInterface; |
| class ContentSettingsPattern::Builder : |
| public ContentSettingsPattern::BuilderInterface { |
| public: |
| - explicit Builder(bool use_legacy_validate); |
| + explicit Builder(); |
| ~Builder() override; |
| // BuilderInterface: |
| @@ -124,20 +125,14 @@ class ContentSettingsPattern::Builder : |
| // Returns true when the pattern |parts| represent a valid pattern. |
| static bool Validate(const PatternParts& parts); |
| - static bool LegacyValidate(const PatternParts& parts); |
| - |
| bool is_valid_; |
| - bool use_legacy_validate_; |
| - |
| PatternParts parts_; |
| DISALLOW_COPY_AND_ASSIGN(Builder); |
| }; |
| -ContentSettingsPattern::Builder::Builder(bool use_legacy_validate) |
| - : is_valid_(true), |
| - use_legacy_validate_(use_legacy_validate) {} |
| +ContentSettingsPattern::Builder::Builder() : is_valid_(true) {} |
| ContentSettingsPattern::Builder::~Builder() {} |
| @@ -201,17 +196,11 @@ ContentSettingsPattern ContentSettingsPattern::Builder::Build() { |
| return ContentSettingsPattern(); |
| if (!Canonicalize(&parts_)) |
| return ContentSettingsPattern(); |
| - if (use_legacy_validate_) { |
| - is_valid_ = LegacyValidate(parts_); |
| - } else { |
| - is_valid_ = Validate(parts_); |
| - } |
| + is_valid_ = Validate(parts_); |
| if (!is_valid_) |
| return ContentSettingsPattern(); |
| // A pattern is invalid if canonicalization is not idempotent. |
| - // This check is here because it should be checked no matter |
| - // use_legacy_validate_ is. |
| PatternParts parts(parts_); |
| if (!Canonicalize(&parts)) |
| return ContentSettingsPattern(); |
| @@ -302,41 +291,6 @@ bool ContentSettingsPattern::Builder::Validate(const PatternParts& parts) { |
| return true; |
| } |
| -// static |
| -bool ContentSettingsPattern::Builder::LegacyValidate( |
| - const PatternParts& parts) { |
| - // If the pattern is for a "file-pattern" test if it is valid. |
| - if (parts.scheme == std::string(url::kFileScheme) && |
| - !parts.is_scheme_wildcard && |
| - parts.host.empty() && |
| - parts.port.empty()) |
| - return true; |
| - |
| - // If the pattern is for an extension URL test if it is valid. |
| - if (IsNonWildcardDomainNonPortScheme(parts.scheme) && |
| - !parts.is_scheme_wildcard && |
| - !parts.host.empty() && |
| - !parts.has_domain_wildcard && |
| - parts.port.empty() && |
| - !parts.is_port_wildcard) |
| - return true; |
| - |
| - // Non-file patterns are invalid if either the scheme, host or port part is |
| - // empty. |
| - if ((!parts.is_scheme_wildcard) || |
| - (parts.host.empty() && !parts.has_domain_wildcard) || |
| - (!parts.is_port_wildcard)) |
| - return false; |
| - |
| - // Test if the scheme is supported or a wildcard. |
| - if (!parts.is_scheme_wildcard && |
| - parts.scheme != std::string(url::kHttpScheme) && |
| - parts.scheme != std::string(url::kHttpsScheme)) { |
| - return false; |
| - } |
| - return true; |
| -} |
| - |
| // //////////////////////////////////////////////////////////////////////////// |
| // ContentSettingsPattern::PatternParts |
| // |
| @@ -367,9 +321,8 @@ ContentSettingsPattern::PatternParts::~PatternParts() {} |
| const int ContentSettingsPattern::kContentSettingsPatternVersion = 1; |
| // static |
| -BuilderInterface* ContentSettingsPattern::CreateBuilder( |
| - bool validate) { |
| - return new Builder(validate); |
| +std::unique_ptr<BuilderInterface> ContentSettingsPattern::CreateBuilder() { |
| + return base::MakeUnique<Builder>(); |
| } |
| // static |
| @@ -385,8 +338,7 @@ ContentSettingsPattern ContentSettingsPattern::Wildcard() { |
| // static |
| ContentSettingsPattern ContentSettingsPattern::FromURL( |
| const GURL& url) { |
| - std::unique_ptr<ContentSettingsPattern::BuilderInterface> builder( |
| - ContentSettingsPattern::CreateBuilder(false)); |
| + auto builder = ContentSettingsPattern::CreateBuilder(); |
|
msramek
2017/05/31 10:42:32
The style guide suggests that auto should not be u
dullweber
2017/05/31 11:42:37
CreateBuilder returns a ContentSettingsBuilder::Bu
msramek
2017/05/31 16:08:46
Acknowledged. I'm fine with the other proposal too
|
| const GURL* local_url = &url; |
| if (url.SchemeIsFileSystem() && url.inner_url()) { |
| local_url = url.inner_url(); |
| @@ -422,9 +374,7 @@ ContentSettingsPattern ContentSettingsPattern::FromURL( |
| // static |
| ContentSettingsPattern ContentSettingsPattern::FromURLNoWildcard( |
| const GURL& url) { |
| - std::unique_ptr<ContentSettingsPattern::BuilderInterface> builder( |
| - ContentSettingsPattern::CreateBuilder(false)); |
| - |
| + auto builder = ContentSettingsPattern::CreateBuilder(); |
| const GURL* local_url = &url; |
| if (url.SchemeIsFileSystem() && url.inner_url()) { |
| local_url = url.inner_url(); |
| @@ -445,8 +395,7 @@ ContentSettingsPattern ContentSettingsPattern::FromURLNoWildcard( |
| // static |
| ContentSettingsPattern ContentSettingsPattern::FromString( |
| const std::string& pattern_spec) { |
| - std::unique_ptr<ContentSettingsPattern::BuilderInterface> builder( |
| - ContentSettingsPattern::CreateBuilder(false)); |
| + auto builder = ContentSettingsPattern::CreateBuilder(); |
| content_settings::PatternParser::Parse(pattern_spec, |
| builder.get()); |
| return builder->Build(); |
| @@ -481,9 +430,7 @@ bool ContentSettingsPattern::MigrateFromDomainToOrigin( |
| if (domain_pattern.parts_.host.empty()) |
| return false; |
| - std::unique_ptr<ContentSettingsPattern::BuilderInterface> builder( |
| - ContentSettingsPattern::CreateBuilder(false)); |
| - |
| + auto builder = ContentSettingsPattern::CreateBuilder(); |
| if (domain_pattern.parts_.is_scheme_wildcard) |
| builder->WithScheme(url::kHttpScheme); |
| else |