| Index: third_party/WebKit/Source/core/loader/FrameFetchContext.cpp
|
| diff --git a/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp b/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp
|
| index 7eee0125a243760fdbcb05e3f3ea4b57e8fc6096..32d1987b3ac4e69a137e3c69adb092c3e2ce2398 100644
|
| --- a/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp
|
| +++ b/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp
|
| @@ -817,10 +817,27 @@ ResourceRequestBlockedReason FrameFetchContext::canRequestInternal(
|
| // proceed.
|
| DocumentLoader* documentLoader = masterDocumentLoader();
|
| if (documentLoader && documentLoader->subresourceFilter() &&
|
| - type != Resource::MainResource && type != Resource::ImportResource &&
|
| - !documentLoader->subresourceFilter()->allowLoad(
|
| - url, resourceRequest.requestContext()))
|
| - return ResourceRequestBlockedReason::SubresourceFilter;
|
| + type != Resource::MainResource && type != Resource::ImportResource) {
|
| + WebDocumentSubresourceFilter::LoadPolicy loadPolicy =
|
| + documentLoader->subresourceFilter()->getLoadPolicy(
|
| + url, resourceRequest.requestContext());
|
| + // Only report filtering information for non preloads.
|
| + if (!forPreload) {
|
| + switch (loadPolicy) {
|
| + case WebDocumentSubresourceFilter::Allow:
|
| + break;
|
| + case WebDocumentSubresourceFilter::Filter:
|
| + documentLoader->subresourceFilter()->reportFilteredLoad();
|
| + // fall through
|
| + case WebDocumentSubresourceFilter::AllowWouldFilter:
|
| + documentLoader->didObserveLoadingBehavior(
|
| + WebLoadingBehaviorSubresourceFilterMatch);
|
| + break;
|
| + }
|
| + }
|
| + if (loadPolicy == WebDocumentSubresourceFilter::Filter)
|
| + return ResourceRequestBlockedReason::SubresourceFilter;
|
| + }
|
|
|
| return ResourceRequestBlockedReason::None;
|
| }
|
|
|