Index: third_party/WebKit/Source/core/loader/FrameFetchContext.cpp |
diff --git a/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp b/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp |
index 27d73c65b884d366ba098736c80de34c6a78dd87..962d87b3d4c71c5dffb44cd3701de046d0c5f147 100644 |
--- a/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp |
+++ b/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp |
@@ -250,14 +250,17 @@ void FrameFetchContext::dispatchWillSendRequest(unsigned long identifier, Resour |
void FrameFetchContext::dispatchDidReceiveResponse(unsigned long identifier, const ResourceResponse& response, ResourceLoader* resourceLoader) |
{ |
+ LinkLoader::CanLoadResources resourceLoadingPolicy = LinkLoader::LoadResourcesAndPreconnect; |
MixedContentChecker::checkMixedPrivatePublic(frame(), response.remoteIPAddress()); |
- LinkLoader::loadLinkFromHeader(response.httpHeaderField(HTTPNames::Link), frame()->document(), NetworkHintsInterfaceImpl(), LinkLoader::DoNotLoadResources); |
if (m_documentLoader == frame()->loader().provisionalDocumentLoader()) { |
ResourceFetcher* fetcher = nullptr; |
if (frame()->document()) |
fetcher = frame()->document()->fetcher(); |
m_documentLoader->clientHintsPreferences().updateFromAcceptClientHintsHeader(response.httpHeaderField(HTTPNames::Accept_CH), fetcher); |
+ // When response is received with a provisional docloader, the resource haven't committed yet, and we cannot load resources, only preconnect. |
+ resourceLoadingPolicy = LinkLoader::DoNotLoadResources; |
} |
+ LinkLoader::loadLinkFromHeader(response.httpHeaderField(HTTPNames::Link), frame()->document(), NetworkHintsInterfaceImpl(), resourceLoadingPolicy); |
if (response.hasMajorCertificateErrors() && resourceLoader) |
MixedContentChecker::handleCertificateError(frame(), resourceLoader->originalRequest(), response); |