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

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

Issue 2909273003: Replace raw ptr from ContentSettingsPattern Builder with unique_ptr (Closed)
Patch Set: remove more auto Created 3 years, 7 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 a83a6959a02240575eae95fe7168e4ea75c644bc..e88351a5d0b615d05a961524a14205d2f2f8f858 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,71 +338,67 @@ ContentSettingsPattern ContentSettingsPattern::Wildcard() {
// static
ContentSettingsPattern ContentSettingsPattern::FromURL(
const GURL& url) {
- std::unique_ptr<ContentSettingsPattern::BuilderInterface> builder(
- ContentSettingsPattern::CreateBuilder(false));
+ ContentSettingsPattern::Builder builder;
const GURL* local_url = &url;
if (url.SchemeIsFileSystem() && url.inner_url()) {
local_url = url.inner_url();
}
if (local_url->SchemeIsFile()) {
- builder->WithScheme(local_url->scheme())->WithPath(local_url->path());
+ builder.WithScheme(local_url->scheme())->WithPath(local_url->path());
} else {
// Please keep the order of the ifs below as URLs with an IP as host can
// also have a "http" scheme.
if (local_url->HostIsIPAddress()) {
- builder->WithScheme(local_url->scheme())->WithHost(local_url->host());
+ builder.WithScheme(local_url->scheme())->WithHost(local_url->host());
} else if (local_url->SchemeIs(url::kHttpScheme)) {
- builder->WithSchemeWildcard()->WithDomainWildcard()->WithHost(
+ builder.WithSchemeWildcard()->WithDomainWildcard()->WithHost(
local_url->host());
} else if (local_url->SchemeIs(url::kHttpsScheme)) {
- builder->WithScheme(local_url->scheme())->WithDomainWildcard()->WithHost(
- local_url->host());
+ builder.WithScheme(local_url->scheme())
+ ->WithDomainWildcard()
+ ->WithHost(local_url->host());
} else {
// Unsupported scheme
}
if (local_url->port().empty()) {
if (local_url->SchemeIs(url::kHttpsScheme))
- builder->WithPort(GetDefaultPort(url::kHttpsScheme));
+ builder.WithPort(GetDefaultPort(url::kHttpsScheme));
else
- builder->WithPortWildcard();
+ builder.WithPortWildcard();
} else {
- builder->WithPort(local_url->port());
+ builder.WithPort(local_url->port());
}
}
- return builder->Build();
+ return builder.Build();
}
// static
ContentSettingsPattern ContentSettingsPattern::FromURLNoWildcard(
const GURL& url) {
- std::unique_ptr<ContentSettingsPattern::BuilderInterface> builder(
- ContentSettingsPattern::CreateBuilder(false));
-
+ ContentSettingsPattern::Builder builder;
const GURL* local_url = &url;
if (url.SchemeIsFileSystem() && url.inner_url()) {
local_url = url.inner_url();
}
if (local_url->SchemeIsFile()) {
- builder->WithScheme(local_url->scheme())->WithPath(local_url->path());
+ builder.WithScheme(local_url->scheme())->WithPath(local_url->path());
} else {
- builder->WithScheme(local_url->scheme())->WithHost(local_url->host());
+ builder.WithScheme(local_url->scheme())->WithHost(local_url->host());
if (local_url->port().empty()) {
- builder->WithPort(GetDefaultPort(local_url->scheme()));
+ builder.WithPort(GetDefaultPort(local_url->scheme()));
} else {
- builder->WithPort(local_url->port());
+ builder.WithPort(local_url->port());
}
}
- return builder->Build();
+ return builder.Build();
}
// static
ContentSettingsPattern ContentSettingsPattern::FromString(
const std::string& pattern_spec) {
- std::unique_ptr<ContentSettingsPattern::BuilderInterface> builder(
- ContentSettingsPattern::CreateBuilder(false));
- content_settings::PatternParser::Parse(pattern_spec,
- builder.get());
- return builder->Build();
+ ContentSettingsPattern::Builder builder;
+ content_settings::PatternParser::Parse(pattern_spec, &builder);
+ return builder.Build();
}
// static
@@ -481,27 +430,25 @@ bool ContentSettingsPattern::MigrateFromDomainToOrigin(
if (domain_pattern.parts_.host.empty())
return false;
- std::unique_ptr<ContentSettingsPattern::BuilderInterface> builder(
- ContentSettingsPattern::CreateBuilder(false));
-
+ ContentSettingsPattern::Builder builder;
if (domain_pattern.parts_.is_scheme_wildcard)
- builder->WithScheme(url::kHttpScheme);
+ builder.WithScheme(url::kHttpScheme);
else
- builder->WithScheme(domain_pattern.parts_.scheme);
+ builder.WithScheme(domain_pattern.parts_.scheme);
- builder->WithHost(domain_pattern.parts_.host);
+ builder.WithHost(domain_pattern.parts_.host);
if (domain_pattern.parts_.is_port_wildcard) {
if (domain_pattern.parts_.scheme == url::kHttpsScheme) {
- builder->WithPort(GetDefaultPort(url::kHttpsScheme));
+ builder.WithPort(GetDefaultPort(url::kHttpsScheme));
} else {
- builder->WithPort(GetDefaultPort(url::kHttpScheme));
+ builder.WithPort(GetDefaultPort(url::kHttpScheme));
}
} else {
- builder->WithPort(domain_pattern.parts_.port);
+ builder.WithPort(domain_pattern.parts_.port);
}
- *origin_pattern = builder->Build();
+ *origin_pattern = builder.Build();
return true;
}

Powered by Google App Engine
This is Rietveld 408576698