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

Unified Diff: components/subresource_filter/content/browser/content_subresource_filter_driver_factory.cc

Issue 2396133003: Change the logic how Subesource Filter propagates activation. (Closed)
Patch Set: fix test, for real now 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: components/subresource_filter/content/browser/content_subresource_filter_driver_factory.cc
diff --git a/components/subresource_filter/content/browser/content_subresource_filter_driver_factory.cc b/components/subresource_filter/content/browser/content_subresource_filter_driver_factory.cc
index 3f2947d3de54ff8681b5daa2e7df7374ad504b4d..b9b4371aac1771611f66e6d84bf9ed9472cbaff1 100644
--- a/components/subresource_filter/content/browser/content_subresource_filter_driver_factory.cc
+++ b/components/subresource_filter/content/browser/content_subresource_filter_driver_factory.cc
@@ -79,6 +79,10 @@ bool ContentSubresourceFilterDriverFactory::IsBlacklisted(
return activation_set().find(url.host()) != activation_set().end();
}
+bool ContentSubresourceFilterDriverFactory::IsHit(const GURL& url) const {
+ return hits_set().find(url.host()) != hits_set().end();
+}
+
bool ContentSubresourceFilterDriverFactory::ShouldActivateForURL(
const GURL& url) const {
return IsBlacklisted(url) && !IsWhitelisted(url);
@@ -101,9 +105,7 @@ void ContentSubresourceFilterDriverFactory::
}
if (!proceed)
return;
- AddHostOfURLToActivationSet(url);
- for (const auto& url : redirect_urls)
- AddHostOfURLToActivationSet(url);
+ AddToActivationHitsSet(url);
}
void ContentSubresourceFilterDriverFactory::AddHostOfURLToWhitelistSet(
@@ -118,9 +120,20 @@ void ContentSubresourceFilterDriverFactory::AddHostOfURLToActivationSet(
activate_on_hosts_.insert(url.host());
}
+void ContentSubresourceFilterDriverFactory::AddToActivationHitsSet(
+ const GURL& url) {
+ if (!url.host().empty() && url.SchemeIsHTTPOrHTTPS())
+ hits_hosts_.insert(url.host());
+}
+
void ContentSubresourceFilterDriverFactory::ReadyToCommitMainFrameNavigation(
content::RenderFrameHost* render_frame_host,
const GURL& url) {
+ if (IsHit(url)) {
+ hits_hosts_.clear();
+ AddHostOfURLToActivationSet(url);
+ }
+
if (ShouldActivateForMainFrameURL(url)) {
set_activation_state(GetMaximumActivationState());
ActivateForFrameHostIfNeeded(render_frame_host, url);

Powered by Google App Engine
This is Rietveld 408576698