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

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

Issue 2248403002: Implement origin-based deletion of plugin data (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments. Created 4 years, 4 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: 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 139b046f7983f020dc8bceddcb5d071c3f61baf0..2fe4b83f356503b10cff17e06b7e5fd1bdfc3c91 100644
--- a/chrome/browser/browsing_data/registrable_domain_filter_builder.cc
+++ b/chrome/browser/browsing_data/registrable_domain_filter_builder.cc
@@ -107,6 +107,16 @@ RegistrableDomainFilterBuilder::BuildChannelIDFilter() const {
base::Owned(domains_and_ips), 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());
+}
+
bool RegistrableDomainFilterBuilder::operator==(
const RegistrableDomainFilterBuilder& other) const {
return domain_list_ == other.domain_list_ && mode() == other.mode();
@@ -172,3 +182,19 @@ RegistrableDomainFilterBuilder::MatchesChannelIDForRegisterableDomainsAndIPs(
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()));
+}

Powered by Google App Engine
This is Rietveld 408576698