Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: db14efcc24bcc45321da73cc77b502b0dcab3e66
https://github.com/WebKit/WebKit/commit/db14efcc24bcc45321da73cc77b502b0dcab3e66
Author: Kimmo Kinnunen <[email protected]>
Date: 2025-12-01 (Mon, 01 Dec 2025)
Changed paths:
M Source/WebCore/Modules/fetch/FetchBodyConsumer.cpp
M Source/WebCore/bindings/js/ScriptBufferSourceProvider.h
M Source/WebCore/bindings/js/WebAssemblyScriptBufferSourceProvider.h
M Source/WebCore/loader/SubstituteResource.h
M Source/WebCore/platform/SharedBuffer.cpp
M Source/WebCore/platform/SharedBuffer.h
M Source/WebCore/workers/ScriptBuffer.cpp
M Source/WebCore/workers/ScriptBuffer.h
M Source/WebCore/workers/WorkerFontLoadRequest.cpp
M Source/WebCore/workers/service/server/SWScriptStorage.cpp
M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
Log Message:
-----------
ScriptBuffer IPC serialization is doing redundant work
https://bugs.webkit.org/show_bug.cgi?id=303135
rdar://problem/165440987
Reviewed by Jean-Yves Avenard.
When serializing ScriptBuffer for IPC, serialization would create:
- SharedMemory
- ShareableResource
- ShareableResourceHandle
ScriptBuffer contains a FragmentedSharedBuffer. We already have
IPC serialization for FragmentedSharedBuffer. We should simply use that.
Add FragmentedSharedBuffer serialization feature where single-segment
mmap-backed data is sent as directly shared memory.
This is work towards removing SharedMemory::wrapMap, which is unsafe
function and should be removed in favor of
SharedMemoryHandle::createVMShared() used here.
Removes
SharedBufferBuilder&
SharedBufferBuilder::operator=(RefPtr<FragmentedSharedBuffer>&&)
because it was buggy (did not reset()). It also is overly specific
operation for what it does.
Removes ShareBufferBuilder(RefPtr<..SharedBuffer>&&) constructor
variants, as they did not adopt the ptr, but implied that they did. Their
lack of const qualified ..SharedBuffer and use of rvalue RefPtr vs.
ShareBufferBuilder::append(const FragmentedSharedBuffer&) created
inconsistent API surface.
* Source/WebCore/Modules/fetch/FetchBodyConsumer.cpp:
(WebCore::FetchBodyConsumer::setData):
* Source/WebCore/bindings/js/ScriptBufferSourceProvider.h:
* Source/WebCore/bindings/js/WebAssemblyScriptBufferSourceProvider.h:
* Source/WebCore/loader/SubstituteResource.h:
(WebCore::SubstituteResource::SubstituteResource):
* Source/WebCore/platform/SharedBuffer.cpp:
(WebCore::FragmentedSharedBuffer::toIPCData const):
(WebCore::SharedBufferBuilder::initialize): Deleted.
* Source/WebCore/platform/SharedBuffer.h:
(WebCore::SharedBufferBuilder::SharedBufferBuilder):
* Source/WebCore/workers/ScriptBuffer.cpp:
(WebCore::ScriptBuffer::ScriptBuffer):
(WebCore::tryConvertToShareableResourceHandle): Deleted.
(WebCore::ScriptBuffer::fromIPCData): Deleted.
(WebCore::ScriptBuffer::ipcData const): Deleted.
* Source/WebCore/workers/ScriptBuffer.h:
(WebCore::ScriptBuffer::buffer const):
(WebCore::ScriptBuffer::ScriptBuffer):
(WebCore::ScriptBuffer::protectedBuffer const): Deleted.
* Source/WebCore/workers/WorkerFontLoadRequest.cpp:
(WebCore::WorkerFontLoadRequest::ensureCustomFontData):
* Source/WebCore/workers/service/server/SWScriptStorage.cpp:
(WebCore::SWScriptStorage::store):
(WebCore::SWScriptStorage::retrieve):
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
Canonical link: https://commits.webkit.org/303676@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications