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

Unified Diff: extensions/common/url_pattern.cc

Issue 2433583002: Reduce buggy usage of the registry controlled domain service. (Closed)
Patch Set: Review comments Created 4 years, 2 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: extensions/common/url_pattern.cc
diff --git a/extensions/common/url_pattern.cc b/extensions/common/url_pattern.cc
index 7313e125a81ec4357bd05d979a67267089264b4d..91ba65bec02583f4666ea4a68e76c96fe3ef66e6 100644
--- a/extensions/common/url_pattern.cc
+++ b/extensions/common/url_pattern.cc
@@ -445,28 +445,24 @@ bool URLPattern::ImpliesAllHosts() const {
if (!match_subdomains_)
return false;
- // If |host_| is a recognized TLD, this will be 0. We don't include private
- // TLDs, so that, e.g., *.appspot.com does not imply all hosts.
- size_t registry_length = net::registry_controlled_domains::GetRegistryLength(
- host_,
- net::registry_controlled_domains::EXCLUDE_UNKNOWN_REGISTRIES,
- net::registry_controlled_domains::EXCLUDE_PRIVATE_REGISTRIES);
// If there was more than just a TLD in the host (e.g., *.foobar.com), it
- // doesn't imply all hosts.
- if (registry_length > 0)
+ // doesn't imply all hosts. We don't include private TLDs, so that, e.g.,
+ // *.appspot.com does not imply all hosts.
+ if (net::registry_controlled_domains::HostHasRegistryControlledDomain(
+ host_, net::registry_controlled_domains::EXCLUDE_UNKNOWN_REGISTRIES,
+ net::registry_controlled_domains::EXCLUDE_PRIVATE_REGISTRIES))
return false;
// At this point the host could either be just a TLD ("com") or some unknown
// TLD-like string ("notatld"). To disambiguate between them construct a
- // fake URL, and check the registry. This returns 0 if the TLD is
- // unrecognized, or the length of the recognized TLD.
- registry_length = net::registry_controlled_domains::GetRegistryLength(
- base::StringPrintf("foo.%s", host_.c_str()),
+ // fake URL, and check the registry.
+ //
+ // If we recognized this TLD, then this is a pattern like *.com, and it
+ // should imply all hosts.
+ return net::registry_controlled_domains::HostHasRegistryControlledDomain(
+ "notatld." + host_,
net::registry_controlled_domains::EXCLUDE_UNKNOWN_REGISTRIES,
net::registry_controlled_domains::EXCLUDE_PRIVATE_REGISTRIES);
- // If we recognized this TLD, then this is a pattern like *.com, and it
- // should imply all hosts. Otherwise, this doesn't imply all hosts.
- return registry_length > 0;
}
bool URLPattern::MatchesSingleOrigin() const {

Powered by Google App Engine
This is Rietveld 408576698