Index: third_party/WebKit/Source/core/inspector/InspectorNetworkAgent.cpp |
diff --git a/third_party/WebKit/Source/core/inspector/InspectorNetworkAgent.cpp b/third_party/WebKit/Source/core/inspector/InspectorNetworkAgent.cpp |
index 93b7ec551e89ce49b84a26259511b15afd699f00..24b50267068f4ca6d44c56d2e06b0a87e16216b5 100644 |
--- a/third_party/WebKit/Source/core/inspector/InspectorNetworkAgent.cpp |
+++ b/third_party/WebKit/Source/core/inspector/InspectorNetworkAgent.cpp |
@@ -576,8 +576,9 @@ void InspectorNetworkAgent::didBlockRequest( |
const FetchInitiatorInfo& initiatorInfo, |
ResourceRequestBlockedReason reason) { |
unsigned long identifier = createUniqueIdentifier(); |
- willSendRequestInternal(frame, identifier, loader, request, |
- ResourceResponse(), initiatorInfo); |
+ willSendRequestInternal(identifier, loader, request, ResourceResponse(), |
+ initiatorInfo, monotonicallyIncreasingTime(), |
+ currentTime()); |
String requestId = IdentifiersFactory::requestId(identifier); |
String protocolReason = buildBlockedReason(reason); |
@@ -597,14 +598,15 @@ void InspectorNetworkAgent::didChangeResourcePriority( |
} |
void InspectorNetworkAgent::willSendRequestInternal( |
- LocalFrame* frame, |
unsigned long identifier, |
DocumentLoader* loader, |
const ResourceRequest& request, |
const ResourceResponse& redirectResponse, |
- const FetchInitiatorInfo& initiatorInfo) { |
+ const FetchInitiatorInfo& initiatorInfo, |
+ double timestamp, |
+ double wallTime) { |
String requestId = IdentifiersFactory::requestId(identifier); |
- String loaderId = IdentifiersFactory::loaderId(loader); |
+ String loaderId = loader ? IdentifiersFactory::loaderId(loader) : ""; |
m_resourcesData->resourceCreated(requestId, loaderId, request.url()); |
InspectorPageAgent::ResourceType type = InspectorPageAgent::OtherResource; |
@@ -616,11 +618,20 @@ void InspectorNetworkAgent::willSendRequestInternal( |
m_resourcesData->setResourceType(requestId, type); |
} |
- String frameId = |
- loader->frame() ? IdentifiersFactory::frameId(loader->frame()) : ""; |
- std::unique_ptr<protocol::Network::Initiator> initiatorObject = |
- buildInitiatorObject(loader->frame() ? loader->frame()->document() : 0, |
- initiatorInfo); |
+ String frameId = loader && loader->frame() |
+ ? IdentifiersFactory::frameId(loader->frame()) |
+ : ""; |
+ std::unique_ptr<protocol::Network::Initiator> initiatorObject; |
+ if (loader) { |
+ initiatorObject = buildInitiatorObject( |
+ loader->frame() ? loader->frame()->document() : 0, initiatorInfo); |
+ } else { |
+ initiatorObject = |
+ protocol::Network::Initiator::create() |
+ .setType(protocol::Network::Initiator::TypeEnum::Preload) |
+ .build(); |
+ } |
+ |
if (initiatorInfo.name == FetchInitiatorTypeNames::document) { |
FrameNavigationInitiatorMap::iterator it = |
m_frameNavigationInitiatorMap.find(frameId); |
@@ -631,28 +642,32 @@ void InspectorNetworkAgent::willSendRequestInternal( |
std::unique_ptr<protocol::Network::Request> requestInfo( |
buildObjectForResourceRequest(request)); |
- requestInfo->setMixedContentType(mixedContentTypeForContextType( |
- MixedContentChecker::contextTypeForInspector(frame, request))); |
+ if (loader) { |
+ requestInfo->setMixedContentType(mixedContentTypeForContextType( |
+ MixedContentChecker::contextTypeForInspector(loader->frame(), |
+ request))); |
+ } |
requestInfo->setReferrerPolicy(referrerPolicy(request.getReferrerPolicy())); |
String resourceType = InspectorPageAgent::resourceTypeJson(type); |
frontend()->requestWillBeSent( |
requestId, frameId, loaderId, |
- urlWithoutFragment(loader->url()).getString(), std::move(requestInfo), |
- monotonicallyIncreasingTime(), currentTime(), std::move(initiatorObject), |
+ loader ? urlWithoutFragment(loader->url()).getString() : "", |
+ std::move(requestInfo), timestamp, wallTime, std::move(initiatorObject), |
pfeldman
2017/01/20 20:41:46
We report blink time as a part of the willSendRequ
horo
2017/01/23 08:05:32
Done.
|
buildObjectForResourceResponse(redirectResponse), resourceType); |
if (m_pendingXHRReplayData && !m_pendingXHRReplayData->async()) |
frontend()->flush(); |
} |
void InspectorNetworkAgent::willSendRequest( |
- LocalFrame* frame, |
unsigned long identifier, |
DocumentLoader* loader, |
ResourceRequest& request, |
const ResourceResponse& redirectResponse, |
- const FetchInitiatorInfo& initiatorInfo) { |
+ const FetchInitiatorInfo& initiatorInfo, |
+ double timestamp, |
pfeldman
2017/01/20 20:41:46
ditto
horo
2017/01/23 08:05:32
Done.
|
+ double wallTime) { |
// Ignore the request initiated internally. |
if (initiatorInfo.name == FetchInitiatorTypeNames::internal) |
return; |
@@ -687,8 +702,8 @@ void InspectorNetworkAgent::willSendRequest( |
if (m_state->booleanProperty(NetworkAgentState::bypassServiceWorker, false)) |
request.setSkipServiceWorker(WebURLRequest::SkipServiceWorker::All); |
- willSendRequestInternal(frame, identifier, loader, request, redirectResponse, |
- initiatorInfo); |
+ willSendRequestInternal(identifier, loader, request, redirectResponse, |
+ initiatorInfo, timestamp, wallTime); |
if (!m_hostId.isEmpty()) |
request.addHTTPHeaderField( |
@@ -701,7 +716,7 @@ void InspectorNetworkAgent::markResourceAsCached(unsigned long identifier) { |
} |
void InspectorNetworkAgent::didReceiveResourceResponse( |
- LocalFrame* frame, |
+ ExecutionContext* context, |
unsigned long identifier, |
DocumentLoader* loader, |
const ResourceResponse& response, |
@@ -737,7 +752,10 @@ void InspectorNetworkAgent::didReceiveResourceResponse( |
// doesn't affect Resource lifetime. |
if (cachedResource) |
m_resourcesData->addResource(requestId, cachedResource); |
- String frameId = IdentifiersFactory::frameId(frame); |
+ String frameId = |
+ context->isDocument() |
+ ? IdentifiersFactory::frameId(toDocument(context)->frame()) |
+ : ""; |
String loaderId = loader ? IdentifiersFactory::loaderId(loader) : ""; |
m_resourcesData->responseReceived(requestId, frameId, response); |
m_resourcesData->setResourceType(requestId, type); |
@@ -760,15 +778,14 @@ void InspectorNetworkAgent::didReceiveResourceResponse( |
// following didReceiveResponse as there will be no calls to didReceiveData |
// from the network stack. |
if (isNotModified && cachedResource && cachedResource->encodedSize()) |
- didReceiveData(frame, identifier, 0, cachedResource->encodedSize()); |
+ didReceiveData(identifier, 0, cachedResource->encodedSize()); |
} |
static bool isErrorStatusCode(int statusCode) { |
return statusCode >= 400; |
} |
-void InspectorNetworkAgent::didReceiveData(LocalFrame*, |
- unsigned long identifier, |
+void InspectorNetworkAgent::didReceiveData(unsigned long identifier, |
const char* data, |
int dataLength) { |
String requestId = IdentifiersFactory::requestId(identifier); |
@@ -833,7 +850,8 @@ void InspectorNetworkAgent::didReceiveCORSRedirectResponse( |
const ResourceResponse& response, |
Resource* resource) { |
// Update the response and finish loading |
- didReceiveResourceResponse(frame, identifier, loader, response, resource); |
+ didReceiveResourceResponse(frame->document(), identifier, loader, response, |
+ resource); |
didFinishLoading(identifier, 0, |
WebURLLoaderClient::kUnknownEncodedDataLength); |
} |