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

Reply via email to