haikuwebkit/Source/WebCore/fileapi
Chris Dumez a8487ff2be Add Cross-Origin-Embedder-Policy support for Blob URLs
https://bugs.webkit.org/show_bug.cgi?id=229041

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more checks are passing.

* web-platform-tests/html/cross-origin-embedder-policy/blob.https-expected.txt:
* web-platform-tests/html/cross-origin-embedder-policy/cross-origin-isolated-permission.https-expected.txt:
* web-platform-tests/html/cross-origin-opener-policy/coep-blob-popup.https-expected.txt:

Source/WebCore:

Add Cross-Origin-Embedder-Policy (COEP) support for Blob URLs. We do the same thing as for COOP,
we pass the COEP policy when registering the Blob URL and store it in the BlobData. When we need
the construct a Blob resource response as a result of a load, we add the right COEP headers
based on the BlobData's COEP policy.

No new tests, rebaselined existing tests.

* Modules/fetch/FetchLoader.cpp:
(WebCore::FetchLoader::startLoadingBlobURL):
* fileapi/Blob.cpp:
(WebCore::BlobURLRegistry::registerURL):
(WebCore::Blob::Blob):
* fileapi/FileReaderLoader.cpp:
(WebCore::FileReaderLoader::start):
* fileapi/ThreadableBlobRegistry.cpp:
(WebCore::ThreadableBlobRegistry::registerBlobURL):
* fileapi/ThreadableBlobRegistry.h:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::loadResource):
* loader/CrossOriginEmbedderPolicy.cpp:
(WebCore::addCrossOriginEmbedderPolicyHeaders):
* loader/CrossOriginEmbedderPolicy.h:
(WebCore::operator==):
* loader/CrossOriginOpenerPolicy.cpp:
(WebCore::addCrossOriginOpenerPolicyHeaders):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::didBeginDocument):
* platform/network/BlobData.h:
(WebCore::BlobData::crossOriginEmbedderPolicy const):
(WebCore::BlobData::setCrossOriginEmbedderPolicy):
* platform/network/BlobRegistry.h:
* platform/network/BlobRegistryImpl.cpp:
(WebCore::BlobRegistryImpl::registerBlobURL):
(WebCore::BlobRegistryImpl::registerBlobURLOptionallyFileBacked):
* platform/network/BlobRegistryImpl.h:
* platform/network/BlobResourceHandle.cpp:
(WebCore::BlobResourceHandle::notifyResponseOnSuccess):

Source/WebKit:

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::registerBlobURLFromURL):
(WebKit::NetworkConnectionToWebProcess::registerBlobURLOptionallyFileBacked):
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* NetworkProcess/NetworkDataTaskBlob.cpp:
(WebKit::NetworkDataTaskBlob::dispatchDidReceiveResponse):
* NetworkProcess/NetworkProcessPlatformStrategies.cpp:
(WebKit::NetworkProcessPlatformStrategies::createBlobRegistry):
* WebProcess/FileAPI/BlobRegistryProxy.cpp:
(WebKit::BlobRegistryProxy::registerBlobURL):
* WebProcess/FileAPI/BlobRegistryProxy.h:

Source/WebKitLegacy/mac:

* WebCoreSupport/WebPlatformStrategies.mm:

Source/WebKitLegacy/win:

* WebCoreSupport/WebPlatformStrategies.cpp:

LayoutTests:

Update test expectations to unskip tests that are now passing.

* TestExpectations:


Canonical link: https://commits.webkit.org/240518@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281055 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-14 02:28:19 +00:00
..
AsyncFileStream.cpp FileSystem::readFromFile() should return data as `void*` 2021-06-05 04:47:23 +00:00
AsyncFileStream.h FileSystem::readFromFile() should return data as `void*` 2021-06-05 04:47:23 +00:00
Blob.cpp Add Cross-Origin-Embedder-Policy support for Blob URLs 2021-08-14 02:28:19 +00:00
Blob.h Blob URL changes after loading it 2021-08-10 03:33:03 +00:00
Blob.idl
BlobBuilder.cpp
BlobBuilder.h
BlobCallback.cpp
BlobCallback.h
BlobCallback.idl
BlobLoader.h Remove <wtf/Optional.h> 2021-06-02 06:45:51 +00:00
BlobPropertyBag.h
BlobPropertyBag.idl
BlobURL.cpp Blob URL changes after loading it 2021-08-10 03:33:03 +00:00
BlobURL.h Blob URL changes after loading it 2021-08-10 03:33:03 +00:00
EndingType.h
EndingType.idl
File.cpp Remove WTF::Optional synonym for std::optional, using that class template directly instead 2021-05-30 16:11:40 +00:00
File.h Remove <wtf/Optional.h> 2021-06-02 06:45:51 +00:00
File.idl
FileCocoa.mm Rename FileSystem::pathGetFileName() to FileSystem::pathFileName() 2021-05-14 16:01:00 +00:00
FileList.cpp
FileList.h
FileList.idl
FileReader.cpp FileReader.readAsArrayBuffer misses checking for the type of blob param 2021-06-16 19:58:32 +00:00
FileReader.h FileReader.readAsArrayBuffer misses checking for the type of blob param 2021-06-16 19:58:32 +00:00
FileReader.idl FileReader.readAsArrayBuffer misses checking for the type of blob param 2021-06-16 19:58:32 +00:00
FileReaderLoader.cpp Add Cross-Origin-Embedder-Policy support for Blob URLs 2021-08-14 02:28:19 +00:00
FileReaderLoader.h Use Vector<uint8_t> instead of Vector<char> to store bytes in SharedBuffer 2021-06-05 01:16:43 +00:00
FileReaderLoaderClient.h
FileReaderSync.cpp
FileReaderSync.h
FileReaderSync.idl
NetworkSendQueue.cpp Fix some inefficient uses of SharedBuffer 2021-06-10 15:08:18 +00:00
NetworkSendQueue.h Fix some inefficient uses of SharedBuffer 2021-06-10 15:08:18 +00:00
ThreadableBlobRegistry.cpp Add Cross-Origin-Embedder-Policy support for Blob URLs 2021-08-14 02:28:19 +00:00
ThreadableBlobRegistry.h Add Cross-Origin-Embedder-Policy support for Blob URLs 2021-08-14 02:28:19 +00:00