| Index: Source/core/inspector/InspectorResourceAgent.cpp
|
| diff --git a/Source/core/inspector/InspectorResourceAgent.cpp b/Source/core/inspector/InspectorResourceAgent.cpp
|
| index 5e9bb99b48a926f1341e2bb93bdf03bae12cbc63..cf09e504e870ffed6c7851fa5f9d556b5baf03e2 100644
|
| --- a/Source/core/inspector/InspectorResourceAgent.cpp
|
| +++ b/Source/core/inspector/InspectorResourceAgent.cpp
|
| @@ -193,6 +193,24 @@ TypeBuilder::Network::Request::MixedContentType::Enum mixedContentTypeForContext
|
| return TypeBuilder::Network::Request::MixedContentType::None;
|
| }
|
|
|
| +TypeBuilder::Network::BlockedReason::Enum buildBlockedReason(InspectorRequestBlockedReason reason)
|
| +{
|
| + switch (reason) {
|
| + case InspectorRequestBlockedReasonCSP:
|
| + return TypeBuilder::Network::BlockedReason::Enum::Csp;
|
| + case InspectorRequestBlockedReasonMixedContent:
|
| + return TypeBuilder::Network::BlockedReason::Enum::Mixed_content;
|
| + case InspectorRequestBlockedReasonOrigin:
|
| + return TypeBuilder::Network::BlockedReason::Enum::Origin;
|
| + case InspectorRequestBlockedReasonInspector:
|
| + return TypeBuilder::Network::BlockedReason::Enum::Inspector;
|
| + case InspectorRequestBlockedReasonOther:
|
| + case InspectorRequestBlockedReasonNone:
|
| + return TypeBuilder::Network::BlockedReason::Enum::Other;
|
| + }
|
| + return TypeBuilder::Network::BlockedReason::Enum::Other;
|
| +}
|
| +
|
| } // namespace
|
|
|
| void InspectorResourceAgent::restore()
|
| @@ -366,24 +384,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, InspectorRequestBlockedReason 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);
|
|
|