void InspectorNetworkAgent::willSendRequest(unsigned long identifier, DocumentLoader& loader, ResourceRequest& request, const ResourceResponse& redirectResponse) { if (request.hiddenFromInspector()) { m_hiddenRequestIdentifiers.add(identifier); return; } String requestId = IdentifiersFactory::requestId(identifier); m_resourcesData->resourceCreated(requestId, m_pageAgent->loaderId(&loader)); CachedResource* cachedResource = InspectorPageAgent::cachedResource(loader.frame(), request.url()); InspectorPageAgent::ResourceType type = cachedResource ? InspectorPageAgent::cachedResourceType(*cachedResource) : m_resourcesData->resourceType(requestId); if (type == InspectorPageAgent::OtherResource) { if (m_loadingXHRSynchronously) type = InspectorPageAgent::XHRResource; else if (equalIgnoringFragmentIdentifier(request.url(), loader.frameLoader()->icon().url())) type = InspectorPageAgent::ImageResource; else if (equalIgnoringFragmentIdentifier(request.url(), loader.url()) && !loader.isCommitted()) type = InspectorPageAgent::DocumentResource; } m_resourcesData->setResourceType(requestId, type); for (auto& entry : m_extraRequestHeaders) request.setHTTPHeaderField(entry.key, entry.value); request.setReportLoadTiming(true); request.setReportRawHeaders(true); if (m_cacheDisabled) { request.setHTTPHeaderField(HTTPHeaderName::Pragma, "no-cache"); request.setCachePolicy(ReloadIgnoringCacheData); request.setHTTPHeaderField(HTTPHeaderName::CacheControl, "no-cache"); } Inspector::Protocol::Page::ResourceType resourceType = InspectorPageAgent::resourceTypeJson(type); RefPtr<Inspector::Protocol::Network::Initiator> initiatorObject = buildInitiatorObject(loader.frame() ? loader.frame()->document() : nullptr); m_frontendDispatcher->requestWillBeSent(requestId, m_pageAgent->frameId(loader.frame()), m_pageAgent->loaderId(&loader), loader.url().string(), buildObjectForResourceRequest(request), timestamp(), initiatorObject, buildObjectForResourceResponse(redirectResponse, &loader), type != InspectorPageAgent::OtherResource ? &resourceType : nullptr); }