WebKit Bugzilla
Attachment 339059 Details for
Bug 185107
: NetworkResourceLoader::isMainResource() is a misnomer; it is only true for a main frame initiated load
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-185107-20180427214721.patch (text/plain), 26.85 KB, created by
Daniel Bates
on 2018-04-27 21:47:22 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Daniel Bates
Created:
2018-04-27 21:47:22 PDT
Size:
26.85 KB
patch
obsolete
>Index: Source/WebCore/ChangeLog >=================================================================== >--- Source/WebCore/ChangeLog (revision 231128) >+++ Source/WebCore/ChangeLog (working copy) >@@ -1,3 +1,35 @@ >+2018-04-27 Daniel Bates <dabates@apple.com> >+ >+ NetworkResourceLoader::isMainResource() is a misnomer; it is only true for a main frame initiated load >+ https://bugs.webkit.org/show_bug.cgi?id=185107 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Rename ResourceRequest::Requester::Main to ResourceRequest::Requester::MainFrame to better >+ describe this enumerator. >+ >+ * inspector/agents/InspectorPageAgent.cpp: >+ (WebCore::InspectorPageAgent::inspectorResourceType): >+ * loader/DocumentLoader.cpp: >+ (WebCore::DocumentLoader::startLoadingMainResource): >+ * loader/NavigationScheduler.cpp: >+ * loader/SubresourceLoader.cpp: >+ (WebCore::SubresourceLoader::willSendRequestInternal): >+ * platform/network/ResourceRequestBase.h: >+ * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp: >+ (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse): Remove self- >+ contradictory code that does nothing meaningful and add a FIXME comment. See <https://bugs.webkit.org/show_bug.cgi?id=185105> >+ for more details. >+ * platform/network/ios/WebCoreURLResponseIOS.mm: >+ (WebCore::adjustMIMETypeIfNecessary): I am unclear if this code is correct as written. It seems weird >+ that we special case a main frame load as opposed to all main resource loads. Further investigation >+ is required. >+ * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm: >+ (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]): >+ * platform/network/mac/WebCoreURLResponse.h: >+ * platform/network/mac/WebCoreURLResponse.mm: >+ (WebCore::adjustMIMETypeIfNecessary): >+ > 2018-04-27 Keith Rollin <krollin@apple.com> > > Fix crash in DocumentLoader::startLoadingMainResource >Index: Source/WebCore/inspector/agents/InspectorPageAgent.cpp >=================================================================== >--- Source/WebCore/inspector/agents/InspectorPageAgent.cpp (revision 231128) >+++ Source/WebCore/inspector/agents/InspectorPageAgent.cpp (working copy) >@@ -251,7 +251,7 @@ InspectorPageAgent::ResourceType Inspect > switch (cachedResource.resourceRequest().requester()) { > case ResourceRequest::Requester::Fetch: > return InspectorPageAgent::FetchResource; >- case ResourceRequest::Requester::Main: >+ case ResourceRequest::Requester::MainFrame: > return InspectorPageAgent::DocumentResource; > default: > return InspectorPageAgent::XHRResource; >Index: Source/WebCore/loader/DocumentLoader.cpp >=================================================================== >--- Source/WebCore/loader/DocumentLoader.cpp (revision 231128) >+++ Source/WebCore/loader/DocumentLoader.cpp (working copy) >@@ -1705,7 +1705,7 @@ void DocumentLoader::startLoadingMainRes > return; > } > >- request.setRequester(ResourceRequest::Requester::Main); >+ request.setRequester(ResourceRequest::Requester::MainFrame); > // If this is a reload the cache layer might have made the previous request conditional. DocumentLoader can't handle 304 responses itself. > request.makeUnconditional(); > >Index: Source/WebCore/loader/NavigationScheduler.cpp >=================================================================== >--- Source/WebCore/loader/NavigationScheduler.cpp (revision 231128) >+++ Source/WebCore/loader/NavigationScheduler.cpp (working copy) >@@ -184,7 +184,7 @@ public: > bool refresh = equalIgnoringFragmentIdentifier(frame.document()->url(), url()); > ResourceRequest resourceRequest { url(), referrer(), refresh ? ReloadIgnoringCacheData : UseProtocolCachePolicy }; > if (initiatedByMainFrame() == InitiatedByMainFrame::Yes) >- resourceRequest.setRequester(ResourceRequest::Requester::Main); >+ resourceRequest.setRequester(ResourceRequest::Requester::MainFrame); > FrameLoadRequest frameLoadRequest { initiatingDocument(), *securityOrigin(), resourceRequest, "_self", lockHistory(), lockBackForwardList(), MaybeSendReferrer, AllowNavigationToInvalidURL::No, NewFrameOpenerPolicy::Allow, shouldOpenExternalURLs(), initiatedByMainFrame() }; > > frame.loader().changeLocation(WTFMove(frameLoadRequest)); >Index: Source/WebCore/loader/SubresourceLoader.cpp >=================================================================== >--- Source/WebCore/loader/SubresourceLoader.cpp (revision 231128) >+++ Source/WebCore/loader/SubresourceLoader.cpp (working copy) >@@ -181,7 +181,7 @@ void SubresourceLoader::willSendRequestI > return completionHandler(WTFMove(newRequest)); > } > >- if (newRequest.requester() != ResourceRequestBase::Requester::Main) { >+ if (newRequest.requester() != ResourceRequestBase::Requester::MainFrame) { > tracePoint(SubresourceLoadWillStart); > ResourceLoadObserver::shared().logSubresourceLoading(m_frame.get(), newRequest, redirectResponse); > } >Index: Source/WebCore/platform/network/ResourceRequestBase.h >=================================================================== >--- Source/WebCore/platform/network/ResourceRequestBase.h (revision 231128) >+++ Source/WebCore/platform/network/ResourceRequestBase.h (working copy) >@@ -163,7 +163,7 @@ public: > bool hiddenFromInspector() const { return m_hiddenFromInspector; } > void setHiddenFromInspector(bool hiddenFromInspector) { m_hiddenFromInspector = hiddenFromInspector; } > >- enum class Requester { Unspecified, Main, XHR, Fetch, Media }; >+ enum class Requester { Unspecified, MainFrame, XHR, Fetch, Media }; > Requester requester() const { return m_requester; } > void setRequester(Requester requester) { m_requester = requester; } > >Index: Source/WebCore/platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp >=================================================================== >--- Source/WebCore/platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp (revision 231128) >+++ Source/WebCore/platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp (working copy) >@@ -188,14 +188,7 @@ void ResourceHandleCFURLConnectionDelega > > LOG(Network, "CFNet - ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse(handle=%p) (%s)", m_handle, m_handle->firstRequest().url().string().utf8().data()); > >- // Avoid MIME type sniffing if the response comes back as 304 Not Modified. >- auto msg = CFURLResponseGetHTTPResponse(cfResponse.get()); >- int statusCode = msg ? CFHTTPMessageGetResponseStatusCode(msg) : 0; >- >- if (statusCode != 304) { >- bool isMainResourceLoad = m_handle->firstRequest().requester() == ResourceRequest::Requester::Main; >- } >- >+ // FIXME: Avoid MIME type sniffing if the response comes back as 304 Not Modified. See <https://bugs.webkit.org/show_bug.cgi?id=185105>. > if (_CFURLRequestCopyProtocolPropertyForKey(m_handle->firstRequest().cfURLRequest(DoNotUpdateHTTPBody), CFSTR("ForceHTMLMIMEType"))) > CFURLResponseSetMIMEType(cfResponse.get(), CFSTR("text/html")); > >Index: Source/WebCore/platform/network/ios/WebCoreURLResponseIOS.mm >=================================================================== >--- Source/WebCore/platform/network/ios/WebCoreURLResponseIOS.mm (revision 231128) >+++ Source/WebCore/platform/network/ios/WebCoreURLResponseIOS.mm (working copy) >@@ -39,7 +39,7 @@ > > namespace WebCore { > >-void adjustMIMETypeIfNecessary(CFURLResponseRef cfResponse, bool isMainResourceLoad) >+void adjustMIMETypeIfNecessary(CFURLResponseRef cfResponse, bool isMainFrameLoad) > { > RetainPtr<CFStringRef> mimeType = CFURLResponseGetMIMEType(cfResponse); > RetainPtr<CFStringRef> updatedMIMEType = mimeType; >@@ -49,7 +49,7 @@ void adjustMIMETypeIfNecessary(CFURLResp > #if USE(QUICK_LOOK) > // We must ensure that the MIME type is correct, so that QuickLook's web plugin is called when needed. > // We filter the basic MIME types so that we don't do unnecessary work in standard browsing situations. >- if (isMainResourceLoad && shouldUseQuickLookForMIMEType((NSString *)updatedMIMEType.get())) { >+ if (isMainFrameLoad && shouldUseQuickLookForMIMEType((NSString *)updatedMIMEType.get())) { > RetainPtr<CFStringRef> suggestedFilename = adoptCF(CFURLResponseCopySuggestedFilename(cfResponse)); > RetainPtr<CFStringRef> quickLookMIMEType = adoptCF((CFStringRef)QLTypeCopyBestMimeTypeForFileNameAndMimeType((NSString *)suggestedFilename.get(), (NSString *)mimeType.get())); > if (!quickLookMIMEType) { >@@ -69,7 +69,7 @@ void adjustMIMETypeIfNecessary(CFURLResp > updatedMIMEType = quickLookMIMEType; > } > #else >- UNUSED_PARAM(isMainResourceLoad); >+ UNUSED_PARAM(isMainFrameLoad); > #endif // USE(QUICK_LOOK) > if (!mimeType || CFStringCompare(mimeType.get(), updatedMIMEType.get(), kCFCompareCaseInsensitive) != kCFCompareEqualTo) > CFURLResponseSetMIMEType(cfResponse, updatedMIMEType.get()); >Index: Source/WebCore/platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm >=================================================================== >--- Source/WebCore/platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm (revision 231128) >+++ Source/WebCore/platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm (working copy) >@@ -233,8 +233,8 @@ - (void)connection:(NSURLConnection *)co > // Avoid MIME type sniffing if the response comes back as 304 Not Modified. > int statusCode = [r respondsToSelector:@selector(statusCode)] ? [(id)r statusCode] : 0; > if (statusCode != 304) { >- bool isMainResourceLoad = m_handle->firstRequest().requester() == ResourceRequest::Requester::Main; >- adjustMIMETypeIfNecessary([r _CFURLResponse], isMainResourceLoad); >+ bool isMainFrameLoad = m_handle->firstRequest().requester() == ResourceRequest::Requester::MainFrame; >+ adjustMIMETypeIfNecessary([r _CFURLResponse], isMainFrameLoad); > } > > if ([m_handle->firstRequest().nsURLRequest(DoNotUpdateHTTPBody) _propertyForKey:@"ForceHTMLMIMEType"]) >Index: Source/WebCore/platform/network/mac/WebCoreURLResponse.h >=================================================================== >--- Source/WebCore/platform/network/mac/WebCoreURLResponse.h (revision 231128) >+++ Source/WebCore/platform/network/mac/WebCoreURLResponse.h (working copy) >@@ -34,6 +34,6 @@ namespace WebCore { > WEBCORE_EXPORT NSURLResponse *synthesizeRedirectResponseIfNecessary(NSURLRequest *currentRequest, NSURLRequest *newRequest, NSURLResponse *redirectResponse); > #endif > >-WEBCORE_EXPORT void adjustMIMETypeIfNecessary(CFURLResponseRef, bool isMainResourceLoad); >+WEBCORE_EXPORT void adjustMIMETypeIfNecessary(CFURLResponseRef, bool isMainFrameLoad); > > } >Index: Source/WebCore/platform/network/mac/WebCoreURLResponse.mm >=================================================================== >--- Source/WebCore/platform/network/mac/WebCoreURLResponse.mm (revision 231128) >+++ Source/WebCore/platform/network/mac/WebCoreURLResponse.mm (working copy) >@@ -286,9 +286,9 @@ static CFDictionaryRef createExtensionTo > return CFDictionaryCreate(kCFAllocatorDefault, (const void**)&keys, (const void**)&values, sizeof(keys)/sizeof(CFStringRef), &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); > } > >-void adjustMIMETypeIfNecessary(CFURLResponseRef cfResponse, bool isMainResourceLoad) >+void adjustMIMETypeIfNecessary(CFURLResponseRef cfResponse, bool isMainFrameLoad) > { >- UNUSED_PARAM(isMainResourceLoad); >+ UNUSED_PARAM(isMainFrameLoad); > RetainPtr<CFStringRef> result = CFURLResponseGetMIMEType(cfResponse); > RetainPtr<CFStringRef> originalResult = result; > >Index: Source/WebKit/ChangeLog >=================================================================== >--- Source/WebKit/ChangeLog (revision 231129) >+++ Source/WebKit/ChangeLog (working copy) >@@ -1,3 +1,36 @@ >+2018-04-27 Daniel Bates <dabates@apple.com> >+ >+ NetworkResourceLoader::isMainResource() is a misnomer; it is only true for a main frame initiated load >+ https://bugs.webkit.org/show_bug.cgi?id=185107 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Substitute NetworkResourceLoader::isMainFrameLoader() for NetworkResourceLoader::isMainResource() >+ to better describe its purpose. >+ >+ The phrase "main resource" refers the document loaded in a frame. There can be more than one main >+ resource in a web page. To be precise, there is exactly one main resource per frame in the page. >+ >+ * NetworkProcess/NetworkResourceLoader.cpp: >+ (WebKit::NetworkResourceLoader::start): >+ (WebKit::NetworkResourceLoader::retrieveCacheEntry): >+ (WebKit::NetworkResourceLoader::startNetworkLoad): >+ (WebKit::NetworkResourceLoader::didReceiveResponse): >+ (WebKit::NetworkResourceLoader::didRetrieveCacheEntry): >+ * NetworkProcess/NetworkResourceLoader.h: >+ * NetworkProcess/cache/NetworkCache.cpp: >+ (WebKit::NetworkCache::makeStoreDecision): >+ * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp: >+ (WebKit::NetworkCache::SpeculativeLoadManager::registerLoad): I am unclear if this code is correct >+ as written. It seems weird that we special case a main frame load as opposed to all main resource loads. >+ Further investigation is required. >+ * NetworkProcess/cocoa/NetworkSessionCocoa.mm: >+ (-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]): >+ * WebProcess/Storage/ServiceWorkerClientFetch.cpp: >+ (WebKit::ServiceWorkerClientFetch::didReceiveResponse): I am unclear if this code is correct as written. >+ It seems weird that we special case a main frame load as opposed to all main resource loads. Further >+ investigation is required. >+ > 2018-04-27 Timothy Hatcher <timothy@apple.com> > > REGRESSION: Touch events fail to dispatch to the page in all cases. >Index: Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp (revision 231128) >+++ Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp (working copy) >@@ -166,7 +166,7 @@ void NetworkResourceLoader::start() > ASSERT(RunLoop::isMain()); > > if (m_defersLoading) { >- RELEASE_LOG_IF_ALLOWED("start: Loading is deferred (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, isMainResource(), isSynchronous()); >+ RELEASE_LOG_IF_ALLOWED("start: Loading is deferred (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainFrameLoader = %d, isSynchronous = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, isMainFrameLoader(), isSynchronous()); > return; > } > >@@ -181,7 +181,7 @@ void NetworkResourceLoader::start() > return; > } > if (this->canUseCache(this->originalRequest())) { >- RELEASE_LOG_IF_ALLOWED("start: Checking cache for resource (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, this->isMainResource(), this->isSynchronous()); >+ RELEASE_LOG_IF_ALLOWED("start: Checking cache for resource (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainFrameLoader = %d, isSynchronous = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, this->isMainFrameLoader(), this->isSynchronous()); > this->retrieveCacheEntry(this->originalRequest()); > return; > } >@@ -192,7 +192,7 @@ void NetworkResourceLoader::start() > } > // FIXME: Remove that code path once m_networkLoadChecker is used for all network loads. > if (canUseCache(originalRequest())) { >- RELEASE_LOG_IF_ALLOWED("start: Checking cache for resource (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, isMainResource(), isSynchronous()); >+ RELEASE_LOG_IF_ALLOWED("start: Checking cache for resource (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainFrameLoader = %d, isSynchronous = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, isMainFrameLoader(), isSynchronous()); > retrieveCacheEntry(originalRequest()); > return; > } >@@ -214,26 +214,26 @@ void NetworkResourceLoader::retrieveCach > return; > } > if (!entry) { >- RELEASE_LOG_IF_ALLOWED("retrieveCacheEntry: Resource not in cache (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, isMainResource(), isSynchronous()); >+ RELEASE_LOG_IF_ALLOWED("retrieveCacheEntry: Resource not in cache (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainFrameLoader = %d, isSynchronous = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, isMainFrameLoader(), isSynchronous()); > loader->startNetworkLoad(WTFMove(request), FirstLoad::Yes); > return; > } > if (entry->redirectRequest()) { >- RELEASE_LOG_IF_ALLOWED("retrieveCacheEntry: Handling redirect (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, isMainResource(), isSynchronous()); >+ RELEASE_LOG_IF_ALLOWED("retrieveCacheEntry: Handling redirect (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainFrameLoader = %d, isSynchronous = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, isMainFrameLoader(), isSynchronous()); > loader->dispatchWillSendRequestForCacheEntry(WTFMove(entry)); > return; > } > if (loader->m_parameters.needsCertificateInfo && !entry->response().certificateInfo()) { >- RELEASE_LOG_IF_ALLOWED("retrieveCacheEntry: Resource does not have required certificate (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, isMainResource(), isSynchronous()); >+ RELEASE_LOG_IF_ALLOWED("retrieveCacheEntry: Resource does not have required certificate (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainFrameLoader = %d, isSynchronous = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, isMainFrameLoader(), isSynchronous()); > loader->startNetworkLoad(WTFMove(request), FirstLoad::Yes); > return; > } > if (entry->needsValidation() || request.cachePolicy() == WebCore::RefreshAnyCacheData) { >- RELEASE_LOG_IF_ALLOWED("retrieveCacheEntry: Validating cache entry (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, isMainResource(), isSynchronous()); >+ RELEASE_LOG_IF_ALLOWED("retrieveCacheEntry: Validating cache entry (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainFrameLoader = %d, isSynchronous = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, isMainFrameLoader(), isSynchronous()); > loader->validateCacheEntry(WTFMove(entry)); > return; > } >- RELEASE_LOG_IF_ALLOWED("retrieveCacheEntry: Retrieved resource from cache (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, isMainResource(), isSynchronous()); >+ RELEASE_LOG_IF_ALLOWED("retrieveCacheEntry: Retrieved resource from cache (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainFrameLoader = %d, isSynchronous = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, isMainFrameLoader(), isSynchronous()); > loader->didRetrieveCacheEntry(WTFMove(entry)); > }); > } >@@ -241,7 +241,7 @@ void NetworkResourceLoader::retrieveCach > void NetworkResourceLoader::startNetworkLoad(ResourceRequest&& request, FirstLoad load) > { > if (load == FirstLoad::Yes) { >- RELEASE_LOG_IF_ALLOWED("startNetworkLoad: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainResource = %d, isSynchronous = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, isMainResource(), isSynchronous()); >+ RELEASE_LOG_IF_ALLOWED("startNetworkLoad: (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ", isMainFrameLoader = %d, isSynchronous = %d)", m_parameters.webPageID, m_parameters.webFrameID, m_parameters.identifier, isMainFrameLoader(), isSynchronous()); > > consumeSandboxExtensions(); > >@@ -413,7 +413,7 @@ auto NetworkResourceLoader::didReceiveRe > } > bool shouldSendDidReceiveResponse = !m_cacheEntryForValidation; > >- bool shouldWaitContinueDidReceiveResponse = isMainResource(); >+ bool shouldWaitContinueDidReceiveResponse = isMainFrameLoader(); > if (shouldSendDidReceiveResponse) { > > ResourceError error; >@@ -747,7 +747,7 @@ void NetworkResourceLoader::didRetrieveC > return; > } > >- bool needsContinueDidReceiveResponseMessage = isMainResource(); >+ bool needsContinueDidReceiveResponseMessage = isMainFrameLoader(); > send(Messages::WebResourceLoader::DidReceiveResponse { response, needsContinueDidReceiveResponseMessage }); > > if (needsContinueDidReceiveResponseMessage) >Index: Source/WebKit/NetworkProcess/NetworkResourceLoader.h >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkResourceLoader.h (revision 231128) >+++ Source/WebKit/NetworkProcess/NetworkResourceLoader.h (working copy) >@@ -104,7 +104,7 @@ public: > > void convertToDownload(DownloadID, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&); > >- bool isMainResource() const { return m_parameters.request.requester() == WebCore::ResourceRequest::Requester::Main; } >+ bool isMainFrameLoader() const { return m_parameters.request.requester() == WebCore::ResourceRequest::Requester::MainFrame; } > bool isAlwaysOnLoggingAllowed() const; > > #if HAVE(CFNETWORK_STORAGE_PARTITIONING) && !RELEASE_LOG_DISABLED >Index: Source/WebKit/NetworkProcess/cache/NetworkCache.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/cache/NetworkCache.cpp (revision 231128) >+++ Source/WebKit/NetworkProcess/cache/NetworkCache.cpp (working copy) >@@ -275,8 +275,8 @@ static StoreDecision makeStoreDecision(c > return StoreDecision::NoDueToHTTPStatusCode; > } > >- bool isMainResource = originalRequest.requester() == WebCore::ResourceRequest::Requester::Main; >- bool storeUnconditionallyForHistoryNavigation = isMainResource || originalRequest.priority() == WebCore::ResourceLoadPriority::VeryHigh; >+ bool isMainFrameLoader = originalRequest.requester() == WebCore::ResourceRequest::Requester::MainFrame; >+ bool storeUnconditionallyForHistoryNavigation = isMainFrameLoader || originalRequest.priority() == WebCore::ResourceLoadPriority::VeryHigh; > if (!storeUnconditionallyForHistoryNavigation) { > auto now = WallTime::now(); > bool hasNonZeroLifetime = !response.cacheControlContainsNoCache() && WebCore::computeFreshnessLifetimeForHTTPFamily(response, now) > 0_ms; >Index: Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp (revision 231128) >+++ Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp (working copy) >@@ -370,8 +370,7 @@ void SpeculativeLoadManager::registerLoa > if (!request.httpHeaderField(HTTPHeaderName::Range).isEmpty()) > return; > >- auto isMainResource = request.requester() == ResourceRequest::Requester::Main; >- if (isMainResource) { >+ if (request.requester() == ResourceRequest::Requester::MainFrame) { > // Mark previous load in this frame as completed if necessary. > if (auto* pendingFrameLoad = m_pendingFrameLoads.get(frameID)) > pendingFrameLoad->markLoadAsCompleted(); >Index: Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm >=================================================================== >--- Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm (revision 231128) >+++ Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm (working copy) >@@ -489,8 +489,8 @@ - (void)URLSession:(NSURLSession *)sessi > // Avoid MIME type sniffing if the response comes back as 304 Not Modified. > int statusCode = [response respondsToSelector:@selector(statusCode)] ? [(id)response statusCode] : 0; > if (statusCode != 304) { >- bool isMainResourceLoad = networkDataTask->firstRequest().requester() == WebCore::ResourceRequest::Requester::Main; >- WebCore::adjustMIMETypeIfNecessary(response._CFURLResponse, isMainResourceLoad); >+ bool isMainFrameLoad = networkDataTask->firstRequest().requester() == WebCore::ResourceRequest::Requester::MainFrame; >+ WebCore::adjustMIMETypeIfNecessary(response._CFURLResponse, isMainFrameLoad); > } > > WebCore::ResourceResponse resourceResponse(response); >Index: Source/WebKit/WebProcess/Storage/ServiceWorkerClientFetch.cpp >=================================================================== >--- Source/WebKit/WebProcess/Storage/ServiceWorkerClientFetch.cpp (revision 231128) >+++ Source/WebKit/WebProcess/Storage/ServiceWorkerClientFetch.cpp (working copy) >@@ -140,7 +140,7 @@ void ServiceWorkerClientFetch::didReceiv > > // In case of main resource and mime type is the default one, we set it to text/html to pass more service worker WPT tests. > // FIXME: We should refine our MIME type sniffing strategy for synthetic responses. >- if (m_loader->originalRequest().requester() == ResourceRequest::Requester::Main) { >+ if (m_loader->originalRequest().requester() == ResourceRequest::Requester::MainFrame) { > if (response.mimeType() == defaultMIMEType()) { > response.setMimeType(ASCIILiteral("text/html")); > response.setTextEncodingName(ASCIILiteral("UTF-8"));
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
dbates
:
review-
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 185107
: 339059