| Index: Source/core/inspector/InspectorResourceAgent.cpp
|
| diff --git a/Source/core/inspector/InspectorResourceAgent.cpp b/Source/core/inspector/InspectorResourceAgent.cpp
|
| index e5c6833f0bd03293ec698e2c7b1712e56950ac6a..8aec85c9d0b3695925377e18911f1eced012a139 100644
|
| --- a/Source/core/inspector/InspectorResourceAgent.cpp
|
| +++ b/Source/core/inspector/InspectorResourceAgent.cpp
|
| @@ -208,6 +208,25 @@ TypeBuilder::Network::ResourcePriority::Enum resourcePriorityJSON(ResourceLoadPr
|
| return TypeBuilder::Network::ResourcePriority::Medium;
|
| }
|
|
|
| +TypeBuilder::Network::BlockedReason::Enum buildBlockedReason(ResourceRequestBlockedReason reason)
|
| +{
|
| + switch (reason) {
|
| + case ResourceRequestBlockedReasonCSP:
|
| + return TypeBuilder::Network::BlockedReason::Enum::Csp;
|
| + case ResourceRequestBlockedReasonMixedContent:
|
| + return TypeBuilder::Network::BlockedReason::Enum::Mixed_content;
|
| + case ResourceRequestBlockedReasonOrigin:
|
| + return TypeBuilder::Network::BlockedReason::Enum::Origin;
|
| + case ResourceRequestBlockedReasonInspector:
|
| + return TypeBuilder::Network::BlockedReason::Enum::Inspector;
|
| + case ResourceRequestBlockedReasonOther:
|
| + return TypeBuilder::Network::BlockedReason::Enum::Other;
|
| + case ResourceRequestBlockedReasonNone:
|
| + default:
|
| + ASSERT_NOT_REACHED();
|
| + return TypeBuilder::Network::BlockedReason::Enum::Other;
|
| + }
|
| +}
|
|
|
| } // namespace
|
|
|
| @@ -383,24 +402,27 @@ DEFINE_TRACE(InspectorResourceAgent)
|
| InspectorBaseAgent::trace(visitor);
|
| }
|
|
|
| -bool InspectorResourceAgent::shouldBlockRequest(LocalFrame* frame, const ResourceRequest& request, DocumentLoader* loader, const FetchInitiatorInfo& initiatorInfo)
|
| +bool InspectorResourceAgent::shouldBlockRequest(const ResourceRequest& request)
|
| {
|
| String url = request.url().string();
|
| RefPtr<JSONObject> blockedURLs = m_state->getObject(ResourceAgentState::blockedURLs);
|
| for (const auto& entry : *blockedURLs) {
|
| - if (url.contains(entry.key)) {
|
| - unsigned long identifier = createUniqueIdentifier();
|
| - willSendRequestInternal(frame, identifier, loader, request, ResourceResponse(), initiatorInfo);
|
| -
|
| - String requestId = IdentifiersFactory::requestId(identifier);
|
| - bool blocked = true;
|
| - frontend()->loadingFailed(requestId, monotonicallyIncreasingTime(), InspectorPageAgent::resourceTypeJson(m_resourcesData->resourceType(requestId)), String(), nullptr, &blocked);
|
| + if (url.contains(entry.key))
|
| return true;
|
| - }
|
| }
|
| return false;
|
| }
|
|
|
| +void InspectorResourceAgent::didBlockRequest(LocalFrame* frame, const ResourceRequest& request, DocumentLoader* loader, const FetchInitiatorInfo& initiatorInfo, ResourceRequestBlockedReason reason)
|
| +{
|
| + unsigned long identifier = createUniqueIdentifier();
|
| + willSendRequestInternal(frame, identifier, loader, request, ResourceResponse(), initiatorInfo);
|
| +
|
| + String requestId = IdentifiersFactory::requestId(identifier);
|
| + TypeBuilder::Network::BlockedReason::Enum protocolReason = buildBlockedReason(reason);
|
| + frontend()->loadingFailed(requestId, monotonicallyIncreasingTime(), InspectorPageAgent::resourceTypeJson(m_resourcesData->resourceType(requestId)), String(), nullptr, &protocolReason);
|
| +}
|
| +
|
| void InspectorResourceAgent::willSendRequestInternal(LocalFrame* frame, unsigned long identifier, DocumentLoader* loader, const ResourceRequest& request, const ResourceResponse& redirectResponse, const FetchInitiatorInfo& initiatorInfo)
|
| {
|
| String requestId = IdentifiersFactory::requestId(identifier);
|
|
|