Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: ec8ff55e6568cd38eb629339e589d5d97c077d95 https://github.com/WebKit/WebKit/commit/ec8ff55e6568cd38eb629339e589d5d97c077d95 Author: Ryan Reno <rr...@apple.com> Date: 2022-11-16 (Wed, 16 Nov 2022)
Changed paths: A LayoutTests/imported/w3c/web-platform-tests/fetch/content-encoding/gzip-body.any-expected.txt A LayoutTests/imported/w3c/web-platform-tests/fetch/content-encoding/gzip-body.any.html A LayoutTests/imported/w3c/web-platform-tests/fetch/content-encoding/gzip-body.any.js A LayoutTests/imported/w3c/web-platform-tests/fetch/content-encoding/gzip-body.any.serviceworker-expected.txt A LayoutTests/imported/w3c/web-platform-tests/fetch/content-encoding/gzip-body.any.serviceworker.html A LayoutTests/imported/w3c/web-platform-tests/fetch/content-encoding/gzip-body.any.sharedworker-expected.txt A LayoutTests/imported/w3c/web-platform-tests/fetch/content-encoding/gzip-body.any.sharedworker.html A LayoutTests/imported/w3c/web-platform-tests/fetch/content-encoding/gzip-body.any.worker-expected.txt A LayoutTests/imported/w3c/web-platform-tests/fetch/content-encoding/gzip-body.any.worker.html A LayoutTests/imported/w3c/web-platform-tests/fetch/content-encoding/resources/foo.octetstream.gz A LayoutTests/imported/w3c/web-platform-tests/fetch/content-encoding/resources/foo.octetstream.gz.headers A LayoutTests/imported/w3c/web-platform-tests/fetch/content-encoding/resources/foo.text.gz A LayoutTests/imported/w3c/web-platform-tests/fetch/content-encoding/resources/foo.text.gz.headers M LayoutTests/platform/mac-wk1/TestExpectations M Source/WebCore/Modules/fetch/FetchLoader.cpp M Source/WebCore/loader/ResourceLoader.cpp M Source/WebCore/loader/ResourceLoader.h M Source/WebCore/loader/ResourceLoaderOptions.h M Source/WebCore/loader/ThreadableLoader.cpp M Source/WebCore/platform/network/BlobResourceHandle.cpp M Source/WebCore/platform/network/ResourceHandle.cpp M Source/WebCore/platform/network/ResourceHandle.h M Source/WebCore/platform/network/ResourceHandleInternal.h M Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp M Source/WebCore/platform/network/curl/ResourceHandleCurl.cpp M Source/WebCore/platform/network/mac/ResourceHandleMac.mm M Source/WebCore/xml/XMLHttpRequest.cpp M Source/WebKit/NetworkProcess/NetworkLoadParameters.h M Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.cpp M Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp M Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp M Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h M Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm M Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp M Source/WebKitLegacy/WebCoreSupport/PingHandle.h Log Message: ----------- Content downloaded with fetch() API when Content-Encoding: gzip is set is not decompressed https://bugs.webkit.org/show_bug.cgi?id=247421 rdar://101935292 Reviewed by Brent Fulgham. In 195247@main we adopted CFNetwork SPI to opt-out of content encoding sniffing for XMLHttpRequest. Content encoding sniffing would cause responses with `Content-Encoding: gzip` and `Content-Type: application/octet-stream` to be treated as `Content-Type: application/gzip` and `Content-Encoding: identity` on macOS. The user and developer visible behavior is that the gzipped data is not decompressed. This brings that change forward to Fetch requests by setting the ContentEncodingSniffingPolicy flag in the FetchLoader. As an additional step this also renames the ContentEncodingSniffingPolicy flags to Default and Disable and replaces raw bools representing those flags with the enum itself. On iOS the flag has no effect since the default behavior is to opt-out of sniffing. * LayoutTests/platform/mac-wk1/TestExpectations: Skip new worker tests since workers are unsupported in WK1. * LayoutTests/imported/w3c/web-platform-tests/fetch/content-encoding/gzip-body.any-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/fetch/content-encoding/gzip-body.any.html: Added. * LayoutTests/imported/w3c/web-platform-tests/fetch/content-encoding/gzip-body.any.js: Added. (string_appeared_here.forEach.contentType.promise_test.async t): * LayoutTests/imported/w3c/web-platform-tests/fetch/content-encoding/gzip-body.any.serviceworker-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/fetch/content-encoding/gzip-body.any.serviceworker.html: Added. * LayoutTests/imported/w3c/web-platform-tests/fetch/content-encoding/gzip-body.any.sharedworker-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/fetch/content-encoding/gzip-body.any.sharedworker.html: Added. * LayoutTests/imported/w3c/web-platform-tests/fetch/content-encoding/gzip-body.any.worker-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/fetch/content-encoding/gzip-body.any.worker.html: Added. * LayoutTests/imported/w3c/web-platform-tests/fetch/content-encoding/resources/foo.octetstream.gz: Added. * LayoutTests/imported/w3c/web-platform-tests/fetch/content-encoding/resources/foo.octetstream.gz.headers: Added. * LayoutTests/imported/w3c/web-platform-tests/fetch/content-encoding/resources/foo.text.gz: Added. * LayoutTests/imported/w3c/web-platform-tests/fetch/content-encoding/resources/foo.text.gz.headers: Added. * Source/WebCore/Modules/fetch/FetchLoader.cpp: (WebCore::FetchLoader::start): * Source/WebCore/loader/ResourceLoader.cpp: (WebCore::ResourceLoader::start): * Source/WebCore/loader/ResourceLoader.h: (WebCore::ResourceLoader::contentEncodingSniffingPolicy const): (WebCore::ResourceLoader::shouldSniffContentEncoding const): Deleted. * Source/WebCore/loader/ResourceLoaderOptions.h: (WebCore::ResourceLoaderOptions::ResourceLoaderOptions): * Source/WebCore/loader/ThreadableLoader.cpp: (WebCore::ThreadableLoaderOptions::isolatedCopy const): * Source/WebCore/platform/network/BlobResourceHandle.cpp: (WebCore::BlobResourceHandle::BlobResourceHandle): * Source/WebCore/platform/network/ResourceHandle.cpp: (WebCore::ResourceHandle::ResourceHandle): (WebCore::ResourceHandle::create): (WebCore::ResourceHandle::contentEncodingSniffingPolicy const): (WebCore::ResourceHandle::shouldContentEncodingSniff const): Deleted. * Source/WebCore/platform/network/ResourceHandle.h: * Source/WebCore/platform/network/ResourceHandleInternal.h: (WebCore::ResourceHandleInternal::ResourceHandleInternal): * Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::ResourceHandle::createCFURLConnection): (WebCore::ResourceHandle::start): (WebCore::ResourceHandle::platformLoadResourceSynchronously): * Source/WebCore/platform/network/curl/ResourceHandleCurl.cpp: (WebCore::ResourceHandle::platformLoadResourceSynchronously): * Source/WebCore/platform/network/mac/ResourceHandleMac.mm: (WebCore::ResourceHandle::applySniffingPoliciesIfNeeded): (WebCore::ResourceHandle::createNSURLConnection): (WebCore::ResourceHandle::start): (WebCore::ResourceHandle::platformLoadResourceSynchronously): * Source/WebCore/xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::createRequest): * Source/WebKit/NetworkProcess/NetworkLoadParameters.h: * Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.cpp: (WebKit::ServiceWorkerSoftUpdateLoader::loadFromNetwork): * Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: (WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad): * Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp: (WebKit::NetworkCache::SpeculativeLoadManager::preconnectForSubresource): * Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h: * Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTaskCocoa::applySniffingPoliciesAndBindRequestToInferfaceIfNeeded): (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): * Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp: (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): (WebKit::WebLoaderStrategy::loadResourceSynchronously): * Source/WebKitLegacy/WebCoreSupport/PingHandle.h: Canonical link: https://commits.webkit.org/256755@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes