Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 9324527cc7b65c245ae5f37cb0747cb686150b3f
https://github.com/WebKit/WebKit/commit/9324527cc7b65c245ae5f37cb0747cb686150b3f
Author: Gavin Phillips <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M Source/WebCore/platform/graphics/FontPlatformData.h
M Source/WebCore/platform/graphics/coretext/FontPlatformDataCoreText.cpp
M Source/WebKit/Scripts/generate-serializers.py
M Source/WebKit/Scripts/webkit/opaque_ipc_types.tracking.in
M Source/WebKit/Scripts/webkit/tests/GeneratedSerializers.cpp
M Source/WebKit/Scripts/webkit/tests/GeneratedSerializers.h
M Source/WebKit/Scripts/webkit/tests/WebKitPlatformGeneratedSerializers.cpp
M Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.h
M Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.mm
M Source/WebKit/Shared/Cocoa/CoreIPCDDScannerResult.h
M Source/WebKit/Shared/Cocoa/CoreIPCDDScannerResult.mm
M Source/WebKit/Shared/Cocoa/CoreIPCDDScannerResult.serialization.in
M Source/WebKit/Shared/WebCoreFont.serialization.in
M Source/WebKit/Shared/mac/CoreIPCDDSecureActionContext.h
M Source/WebKit/Shared/mac/CoreIPCDDSecureActionContext.mm
M Source/WebKit/Shared/mac/CoreIPCDDSecureActionContext.serialization.in
Log Message:
-----------
Add support for CoreIPC to serialize NULLable RetainPtrs without wrapping in
a std::optional.
https://bugs.webkit.org/show_bug.cgi?id=303311
rdar://165685885
Reviewed by Alex Christensen.
CoreIPC wasn't able to handle NULL RetainPtrs. As a result,
places which expected to handle potentially null values were
wrapping RetainPtrs with std::optional. This change supports
direct serialization of NULL RetainPtr's by serializing an
initial populated bit like we do for other NULLable boxed typed.
* Source/WebCore/platform/graphics/FontPlatformData.h:
* Source/WebCore/platform/graphics/coretext/FontPlatformDataCoreText.cpp:
(WebCore::FontPlatformSerializedAttributes::toCFDictionary const):
* Source/WebKit/Scripts/generate-serializers.py:
(one_argument_coder_declaration_cf):
(decode_cf_type):
(decode_type):
(generate_one_impl):
* Source/WebKit/Scripts/webkit/opaque_ipc_types.tracking.in:
* Source/WebKit/Scripts/webkit/tests/GeneratedSerializers.cpp:
(IPC::ArgumentCoder<Namespace::OtherClass>::decode):
(IPC::ArgumentCoder<Namespace::ClassWithMemberPrecondition>::decode):
(IPC::ArgumentCoder<SoftLinkedMember>::decode):
(IPC::ArgumentCoder<RetainPtr<CFFooRef>>::encode):
(IPC::ArgumentCoder<RetainPtr<CFFooRef>>::decode):
(IPC::ArgumentCoder<RetainPtr<CFBarRef>>::encode):
(IPC::ArgumentCoder<RetainPtr<CFBarRef>>::decode):
* Source/WebKit/Scripts/webkit/tests/GeneratedSerializers.h:
(IPC::ArgumentCoder<RetainPtr<CFFooRef>>::encode): Deleted.
(IPC::ArgumentCoder<RetainPtr<CFBarRef>>::encode): Deleted.
(IPC::ArgumentCoder<RetainPtr<CFStringRef>>::encode): Deleted.
* Source/WebKit/Scripts/webkit/tests/WebKitPlatformGeneratedSerializers.cpp:
(IPC::ArgumentCoder<RetainPtr<CFStringRef>>::encode):
(IPC::ArgumentCoder<RetainPtr<CFStringRef>>::decode):
* Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.h:
(IPC::ArgumentCoder<RetainPtr<T>>::encode):
(IPC::ArgumentCoder<RetainPtr<T>>::decode):
* Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.mm:
(IPC::encodeObjectDirectly<NSObject<NSSecureCoding>>):
* Source/WebKit/Shared/Cocoa/CoreIPCDDScannerResult.h:
* Source/WebKit/Shared/Cocoa/CoreIPCDDScannerResult.mm:
(WebKit::CoreIPCDDScannerResult::toID const):
* Source/WebKit/Shared/Cocoa/CoreIPCDDScannerResult.serialization.in:
* Source/WebKit/Shared/WebCoreFont.serialization.in:
* Source/WebKit/Shared/mac/CoreIPCDDSecureActionContext.h:
* Source/WebKit/Shared/mac/CoreIPCDDSecureActionContext.mm:
(WebKit::CoreIPCDDSecureActionContext::toID const):
* Source/WebKit/Shared/mac/CoreIPCDDSecureActionContext.serialization.in:
Canonical link: https://commits.webkit.org/303792@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications