summaryrefslogtreecommitdiff
path: root/chromium/net/base/scheme_host_port_matcher_rule.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/net/base/scheme_host_port_matcher_rule.cc')
-rw-r--r--chromium/net/base/scheme_host_port_matcher_rule.cc23
1 files changed, 14 insertions, 9 deletions
diff --git a/chromium/net/base/scheme_host_port_matcher_rule.cc b/chromium/net/base/scheme_host_port_matcher_rule.cc
index 18798a3842e..cb02c0522c2 100644
--- a/chromium/net/base/scheme_host_port_matcher_rule.cc
+++ b/chromium/net/base/scheme_host_port_matcher_rule.cc
@@ -5,6 +5,7 @@
#include "net/base/scheme_host_port_matcher_rule.h"
#include "base/strings/pattern.h"
+#include "base/strings/strcat.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "net/base/host_port_pair.h"
@@ -28,15 +29,15 @@ std::string AddBracketsIfIPv6(const IPAddress& ip_address) {
// static
std::unique_ptr<SchemeHostPortMatcherRule>
SchemeHostPortMatcherRule::FromUntrimmedRawString(
- const std::string& raw_untrimmed) {
- std::string raw;
- base::TrimWhitespaceASCII(raw_untrimmed, base::TRIM_ALL, &raw);
+ base::StringPiece raw_untrimmed) {
+ base::StringPiece raw =
+ base::TrimWhitespaceASCII(raw_untrimmed, base::TRIM_ALL);
// Extract any scheme-restriction.
std::string::size_type scheme_pos = raw.find("://");
std::string scheme;
if (scheme_pos != std::string::npos) {
- scheme = raw.substr(0, scheme_pos);
+ scheme = std::string(raw.substr(0, scheme_pos));
raw = raw.substr(scheme_pos + 3);
if (scheme.empty())
return nullptr;
@@ -55,7 +56,7 @@ SchemeHostPortMatcherRule::FromUntrimmedRawString(
return nullptr;
return std::make_unique<SchemeHostPortMatcherIPBlockRule>(
- raw, scheme, ip_prefix, prefix_length_in_bits);
+ std::string(raw), scheme, ip_prefix, prefix_length_in_bits);
}
// Check if we have an <ip-address>[:port] input. We need to treat this
@@ -87,11 +88,15 @@ SchemeHostPortMatcherRule::FromUntrimmedRawString(
// Special-case hostnames that begin with a period.
// For example, we remap ".google.com" --> "*.google.com".
- if (base::StartsWith(raw, ".", base::CompareCase::SENSITIVE))
- raw = "*" + raw;
+ std::string hostname_pattern;
+ if (base::StartsWith(raw, ".", base::CompareCase::SENSITIVE)) {
+ hostname_pattern = base::StrCat({"*", raw});
+ } else {
+ hostname_pattern = std::string(raw);
+ }
- return std::make_unique<SchemeHostPortMatcherHostnamePatternRule>(scheme, raw,
- port);
+ return std::make_unique<SchemeHostPortMatcherHostnamePatternRule>(
+ scheme, hostname_pattern, port);
}
bool SchemeHostPortMatcherRule::IsHostnamePatternRule() const {