Index: Source/core/inspector/InspectorResourceAgent.cpp |
diff --git a/Source/core/inspector/InspectorResourceAgent.cpp b/Source/core/inspector/InspectorResourceAgent.cpp |
index 830b242b448375ff75de83c862bbbc46693893c5..c079270d1449d97cf2358e4e5eb0b5893e6711f2 100644 |
--- a/Source/core/inspector/InspectorResourceAgent.cpp |
+++ b/Source/core/inspector/InspectorResourceAgent.cpp |
@@ -315,7 +315,8 @@ void InspectorResourceAgent::willSendRequest(unsigned long identifier, DocumentL |
// Ignore the request initiated internally. |
if (initiatorInfo.name == FetchInitiatorTypeNames::internal) |
return; |
- if (loader && loader->substituteData().isValid()) |
+ |
+ if (initiatorInfo.name == FetchInitiatorTypeNames::document && loader && loader->substituteData().isValid()) |
return; |
String requestId = IdentifiersFactory::requestId(identifier); |
@@ -373,9 +374,6 @@ bool isResponseEmpty(PassRefPtr<TypeBuilder::Network::Response> response) |
void InspectorResourceAgent::didReceiveResourceResponse(LocalFrame* frame, unsigned long identifier, DocumentLoader* loader, const ResourceResponse& response, ResourceLoader* resourceLoader) |
{ |
- if (loader && loader->substituteData().isValid()) |
- return; |
- |
String requestId = IdentifiersFactory::requestId(identifier); |
RefPtr<TypeBuilder::Network::Response> resourceResponse = buildObjectForResourceResponse(response, loader); |
@@ -387,11 +385,9 @@ void InspectorResourceAgent::didReceiveResourceResponse(LocalFrame* frame, unsig |
if (!cachedResource || cachedResource->type() == Resource::MainResource) |
cachedResource = InspectorPageAgent::cachedResource(frame, response.url()); |
- if (cachedResource) { |
+ if (cachedResource && resourceResponse && response.mimeType().isEmpty()) { |
// Use mime type from cached resource in case the one in response is empty. |
- if (resourceResponse && response.mimeType().isEmpty()) |
- resourceResponse->setString(TypeBuilder::Network::Response::MimeType, cachedResource->response().mimeType()); |
- m_resourcesData->addResource(requestId, cachedResource); |
+ resourceResponse->setString(TypeBuilder::Network::Response::MimeType, cachedResource->response().mimeType()); |
} |
InspectorPageAgent::ResourceType type = cachedResource ? InspectorPageAgent::cachedResourceType(*cachedResource) : InspectorPageAgent::OtherResource; |
@@ -402,9 +398,15 @@ void InspectorResourceAgent::didReceiveResourceResponse(LocalFrame* frame, unsig |
if (loader && equalIgnoringFragmentIdentifier(response.url(), loader->url()) && !loader->isCommitted()) |
type = InspectorPageAgent::DocumentResource; |
+ if (type == InspectorPageAgent::DocumentResource && loader && loader->substituteData().isValid()) |
+ return; |
+ |
+ if (cachedResource) |
+ m_resourcesData->addResource(requestId, cachedResource); |
m_resourcesData->responseReceived(requestId, m_pageAgent->frameId(frame), response); |
m_resourcesData->setResourceType(requestId, type); |
+ |
if (!isResponseEmpty(resourceResponse)) |
m_frontend->responseReceived(requestId, m_pageAgent->frameId(frame), m_pageAgent->loaderId(loader), currentTime(), InspectorPageAgent::resourceTypeJson(type), resourceResponse); |
// If we revalidated the resource and got Not modified, send content length following didReceiveResponse |