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

Unified Diff: chrome/browser/browsing_data/registrable_domain_filter_builder.cc

Issue 2261673002: Move static RegistrableDomainFilterBuilder methods to an anonymous namespace (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: BindRepeating Created 4 years 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
« no previous file with comments | « chrome/browser/browsing_data/registrable_domain_filter_builder.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/browsing_data/registrable_domain_filter_builder.cc
diff --git a/chrome/browser/browsing_data/registrable_domain_filter_builder.cc b/chrome/browser/browsing_data/registrable_domain_filter_builder.cc
index 2fe4b83f356503b10cff17e06b7e5fd1bdfc3c91..7ad7b69b6699681a92db862252a45933f5f0c5f8 100644
--- a/chrome/browser/browsing_data/registrable_domain_filter_builder.cc
+++ b/chrome/browser/browsing_data/registrable_domain_filter_builder.cc
@@ -35,6 +35,88 @@ bool IsSubdomainOfARegistrableDomain(const std::string& domain) {
// 2. IsSubdomainOfARegistrableDomain(domain) - e.g. www.google.com
// 3. GetDomainAndRegistry(domain, _) == "" - e.g. localhost, 127.0.0.1
+
+// True if the domain of |url| is in the whitelist, or isn't in the blacklist.
+// The whitelist or blacklist is represented as |registerable_domains|
+// and |mode|.
+bool MatchesURL(
+ const std::set<std::string>& registerable_domains,
+ BrowsingDataFilterBuilder::Mode mode,
+ const GURL& url) {
+ std::string url_registerable_domain =
+ GetDomainAndRegistry(url, INCLUDE_PRIVATE_REGISTRIES);
+ return (registerable_domains.find(
+ url_registerable_domain != "" ? url_registerable_domain
+ : url.host()) !=
+ registerable_domains.end()) ==
+ (mode == BrowsingDataFilterBuilder::WHITELIST);
+}
+
+// True if the pattern something in the whitelist, or doesn't match something
+// in the blacklist.
+// The whitelist or blacklist is represented as |patterns|, and |mode|.
+bool MatchesWebsiteSettingsPattern(
+ const std::vector<ContentSettingsPattern>& domain_patterns,
+ BrowsingDataFilterBuilder::Mode mode,
+ const ContentSettingsPattern& pattern) {
+ for (const ContentSettingsPattern& domain : domain_patterns) {
+ DCHECK(domain.IsValid());
+ Relation relation = pattern.Compare(domain);
+ if (relation == Relation::IDENTITY || relation == Relation::PREDECESSOR)
+ return mode == BrowsingDataFilterBuilder::WHITELIST;
+ }
+ return mode != BrowsingDataFilterBuilder::WHITELIST;
+}
+
+// True if no domains can see the given cookie and we're a blacklist, or any
+// domains can see the cookie and we're a whitelist.
+// The whitelist or blacklist is represented as |domains_and_ips| and |mode|.
+bool MatchesCookieForRegisterableDomainsAndIPs(
+ const std::set<std::string>& domains_and_ips,
+ BrowsingDataFilterBuilder::Mode mode,
+ const net::CanonicalCookie& cookie) {
+ if (domains_and_ips.empty())
+ return mode == BrowsingDataFilterBuilder::BLACKLIST;
+ std::string cookie_domain = cookie.Domain();
+ if (cookie.IsDomainCookie())
+ cookie_domain = cookie_domain.substr(1);
+ std::string parsed_cookie_domain =
+ GetDomainAndRegistry(cookie_domain, INCLUDE_PRIVATE_REGISTRIES);
+ // This means we're an IP address or an internal hostname.
+ if (parsed_cookie_domain.empty())
+ parsed_cookie_domain = cookie_domain;
+ return (mode == BrowsingDataFilterBuilder::WHITELIST) ==
+ (domains_and_ips.find(parsed_cookie_domain) != domains_and_ips.end());
+}
+
+// True if none of the supplied domains matches this Channel ID's server ID
+// and we're a blacklist, or one of them does and we're a whitelist.
+// The whitelist or blacklist is represented as |domains_and_ips| and |mode|.
+bool MatchesChannelIDForRegisterableDomainsAndIPs(
+ const std::set<std::string>& domains_and_ips,
+ BrowsingDataFilterBuilder::Mode mode,
+ const std::string& channel_id_server_id) {
+ return ((mode == BrowsingDataFilterBuilder::WHITELIST) ==
+ (domains_and_ips.find(channel_id_server_id) != domains_and_ips.end()));
+}
+
+// True if none of the supplied domains matches this plugin's |site| and we're
+// a blacklist, or one of them does and we're a whitelist. The whitelist or
+// blacklist is represented by |domains_and_ips| and |mode|.
+bool MatchesPluginSiteForRegisterableDomainsAndIPs(
+ const std::set<std::string>& domains_and_ips,
+ BrowsingDataFilterBuilder::Mode mode,
+ const std::string& site) {
+ // If |site| is a third- or lower-level domain, find the corresponding eTLD+1.
+ std::string domain_or_ip =
+ GetDomainAndRegistry(site, INCLUDE_PRIVATE_REGISTRIES);
+ if (domain_or_ip.empty())
+ domain_or_ip = site;
+
+ return ((mode == BrowsingDataFilterBuilder::WHITELIST) ==
+ (domains_and_ips.find(domain_or_ip) != domains_and_ips.end()));
+}
+
} // namespace
RegistrableDomainFilterBuilder::RegistrableDomainFilterBuilder(Mode mode)
@@ -48,24 +130,21 @@ void RegistrableDomainFilterBuilder::AddRegisterableDomain(
// We check that the domain we're given is actually a eTLD+1, an IP address,
// or an internal hostname.
DCHECK(!IsSubdomainOfARegistrableDomain(domain));
- domain_list_.insert(domain);
+ domains_.insert(domain);
}
base::Callback<bool(const GURL&)>
RegistrableDomainFilterBuilder::BuildGeneralFilter() const {
- std::set<std::string>* domains = new std::set<std::string>(domain_list_);
- return base::Bind(&RegistrableDomainFilterBuilder::MatchesURL,
- base::Owned(domains), mode());
+ return base::BindRepeating(MatchesURL, domains_, mode());
}
base::Callback<bool(const ContentSettingsPattern& pattern)>
RegistrableDomainFilterBuilder
::BuildWebsiteSettingsPatternMatchesFilter() const {
- std::vector<ContentSettingsPattern>* patterns_from_domains =
- new std::vector<ContentSettingsPattern>();
- patterns_from_domains->reserve(domain_list_.size());
+ std::vector<ContentSettingsPattern> patterns_from_domains;
+ patterns_from_domains.reserve(domains_.size());
- for (const std::string& domain : domain_list_) {
+ for (const std::string& domain : domains_) {
std::unique_ptr<ContentSettingsPattern::BuilderInterface> builder(
ContentSettingsPattern::CreateBuilder(/* use_legacy_validate */ false));
builder->WithSchemeWildcard()
@@ -75,126 +154,40 @@ RegistrableDomainFilterBuilder
if (IsRegistrableDomain(domain))
builder->WithDomainWildcard();
- patterns_from_domains->push_back(builder->Build());
+ patterns_from_domains.push_back(builder->Build());
}
- for (const ContentSettingsPattern& domain : *patterns_from_domains) {
+ for (const ContentSettingsPattern& domain : patterns_from_domains) {
DCHECK(domain.IsValid());
}
- return base::Bind(
- &RegistrableDomainFilterBuilder::MatchesWebsiteSettingsPattern,
- base::Owned(patterns_from_domains), mode());
+ return base::BindRepeating(&MatchesWebsiteSettingsPattern,
+ std::move(patterns_from_domains), mode());
}
base::Callback<bool(const net::CanonicalCookie& cookie)>
RegistrableDomainFilterBuilder::BuildCookieFilter() const {
- std::set<std::string>* domains_and_ips =
- new std::set<std::string>(domain_list_);
- return base::Bind(
- &RegistrableDomainFilterBuilder
- ::MatchesCookieForRegisterableDomainsAndIPs,
- base::Owned(domains_and_ips), mode());
+ return base::BindRepeating(&MatchesCookieForRegisterableDomainsAndIPs,
+ domains_, mode());
}
base::Callback<bool(const std::string& cookie)>
RegistrableDomainFilterBuilder::BuildChannelIDFilter() const {
- std::set<std::string>* domains_and_ips =
- new std::set<std::string>(domain_list_);
- return base::Bind(
- &RegistrableDomainFilterBuilder
- ::MatchesChannelIDForRegisterableDomainsAndIPs,
- base::Owned(domains_and_ips), mode());
+ return base::BindRepeating(&MatchesChannelIDForRegisterableDomainsAndIPs,
+ domains_, mode());
}
base::Callback<bool(const std::string& site)>
RegistrableDomainFilterBuilder::BuildPluginFilter() const {
- std::set<std::string>* domains_and_ips =
- new std::set<std::string>(domain_list_);
- return base::Bind(
- &RegistrableDomainFilterBuilder
- ::MatchesPluginSiteForRegisterableDomainsAndIPs,
- base::Owned(domains_and_ips), mode());
+ return base::BindRepeating(&MatchesPluginSiteForRegisterableDomainsAndIPs,
+ domains_, mode());
}
bool RegistrableDomainFilterBuilder::operator==(
const RegistrableDomainFilterBuilder& other) const {
- return domain_list_ == other.domain_list_ && mode() == other.mode();
+ return domains_ == other.domains_ && mode() == other.mode();
}
bool RegistrableDomainFilterBuilder::IsEmpty() const {
- return domain_list_.empty();
-}
-
-// static
-bool RegistrableDomainFilterBuilder::MatchesURL(
- std::set<std::string>* registerable_domains,
- Mode mode,
- const GURL& url) {
- std::string url_registerable_domain =
- GetDomainAndRegistry(url, INCLUDE_PRIVATE_REGISTRIES);
- return (registerable_domains->find(
- url_registerable_domain != "" ? url_registerable_domain
- : url.host()) !=
- registerable_domains->end()) ==
- (mode == WHITELIST);
-}
-
-// static
-bool RegistrableDomainFilterBuilder::MatchesWebsiteSettingsPattern(
- std::vector<ContentSettingsPattern>* domain_patterns,
- Mode mode,
- const ContentSettingsPattern& pattern) {
- for (const ContentSettingsPattern& domain : *domain_patterns) {
- DCHECK(domain.IsValid());
- Relation relation = pattern.Compare(domain);
- if (relation == Relation::IDENTITY || relation == Relation::PREDECESSOR)
- return mode == WHITELIST;
- }
- return mode != WHITELIST;
-}
-
-// static
-bool RegistrableDomainFilterBuilder::MatchesCookieForRegisterableDomainsAndIPs(
- std::set<std::string>* domains_and_ips,
- Mode mode,
- const net::CanonicalCookie& cookie) {
- if (domains_and_ips->empty())
- return mode == BLACKLIST;
- std::string cookie_domain = cookie.Domain();
- if (cookie.IsDomainCookie())
- cookie_domain = cookie_domain.substr(1);
- std::string parsed_cookie_domain =
- GetDomainAndRegistry(cookie_domain, INCLUDE_PRIVATE_REGISTRIES);
- // This means we're an IP address or an internal hostname.
- if (parsed_cookie_domain.empty())
- parsed_cookie_domain = cookie_domain;
- return (mode == WHITELIST) == (domains_and_ips->find(parsed_cookie_domain) !=
- domains_and_ips->end());
-}
-
-// static
-bool
-RegistrableDomainFilterBuilder::MatchesChannelIDForRegisterableDomainsAndIPs(
- std::set<std::string>* domains_and_ips,
- Mode mode,
- const std::string& channel_id_server_id) {
- return ((mode == WHITELIST) == (domains_and_ips->find(channel_id_server_id) !=
- domains_and_ips->end()));
-}
-
-// static
-bool
-RegistrableDomainFilterBuilder::MatchesPluginSiteForRegisterableDomainsAndIPs(
- std::set<std::string>* domains_and_ips,
- Mode mode,
- const std::string& site) {
- // If |site| is a third- or lower-level domain, find the corresponding eTLD+1.
- std::string domain_or_ip =
- GetDomainAndRegistry(site, INCLUDE_PRIVATE_REGISTRIES);
- if (domain_or_ip.empty())
- domain_or_ip = site;
-
- return ((mode == WHITELIST) == (domains_and_ips->find(domain_or_ip) !=
- domains_and_ips->end()));
+ return domains_.empty();
}
« no previous file with comments | « chrome/browser/browsing_data/registrable_domain_filter_builder.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698