| 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);
|
|
|