Index: components/subresource_filter/content/renderer/document_subresource_filter.cc |
diff --git a/components/subresource_filter/content/renderer/document_subresource_filter.cc b/components/subresource_filter/content/renderer/document_subresource_filter.cc |
index ad1f90c87bfee55f7aa28505bec3a89cb01417d9..944b3130d433c915fc21f2b0485abd9b6bee268d 100644 |
--- a/components/subresource_filter/content/renderer/document_subresource_filter.cc |
+++ b/components/subresource_filter/content/renderer/document_subresource_filter.cc |
@@ -96,15 +96,19 @@ DocumentSubresourceFilter::DocumentSubresourceFilter( |
filtering_disabled_for_document_ = true; |
return; |
} |
+ // TODO(pkalinnikov): Match several activation types in a batch. |
+ generic_blocking_rules_disabled_ = |
+ generic_blocking_rules_disabled_ || |
+ ruleset_matcher_.ShouldDisableFilteringForDocument( |
+ document_url, parent_document_origin, |
+ proto::ACTIVATION_TYPE_GENERICBLOCK); |
+ |
// TODO(pkalinnikov): Think about avoiding this conversion. |
parent_document_origin = url::Origin(document_url); |
} |
url::Origin document_origin = std::move(parent_document_origin); |
document_origin_.reset(new FirstPartyOrigin(std::move(document_origin))); |
- |
- // TODO(pkalinnikov): Implement GENERICBLOCK activation type as well. |
- // TODO(pkalinnikov): Match several activation types in a batch. |
} |
DocumentSubresourceFilter::~DocumentSubresourceFilter() = default; |
@@ -126,8 +130,8 @@ bool DocumentSubresourceFilter::allowLoad( |
++num_loads_evaluated_; |
DCHECK(document_origin_); |
if (ruleset_matcher_.ShouldDisallowResourceLoad( |
- GURL(resourceUrl), *document_origin_, |
- ToElementType(request_context))) { |
+ GURL(resourceUrl), *document_origin_, ToElementType(request_context), |
+ generic_blocking_rules_disabled_)) { |
++num_loads_matching_rules_; |
if (activation_state_ == ActivationState::ENABLED) { |
if (!first_disallowed_load_callback_.is_null()) { |