Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 57052761f12cac99419741ade11be63a170f01b3
      
https://github.com/WebKit/WebKit/commit/57052761f12cac99419741ade11be63a170f01b3
  Author: Alex Christensen <[email protected]>
  Date:   2025-01-06 (Mon, 06 Jan 2025)

  Changed paths:
    M Source/WebKit/Scripts/generate-serializers.py
    M Source/WebKit/Scripts/webkit/tests/GeneratedWebKitSecureCoding.cpp
    M Source/WebKit/Scripts/webkit/tests/SerializedTypeInfo.cpp
    M Source/WebKit/Scripts/webkit/tests/TestSerializedType.serialization.in
    M Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.h
    M Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.mm
    M Source/WebKit/Shared/Cocoa/CoreIPCNSCFObject.h
    M Source/WebKit/Shared/Cocoa/CoreIPCNSCFObject.mm
    M Source/WebKit/Shared/Cocoa/CoreIPCNSCFObject.serialization.in
    M Source/WebKit/Shared/Cocoa/CoreIPCNSShadow.h
    M Source/WebKit/Shared/Cocoa/CoreIPCNSShadow.mm
    M Source/WebKit/Shared/Cocoa/CoreIPCNSValue.h
    M Source/WebKit/Shared/Cocoa/CoreIPCNSValue.mm
    M Source/WebKit/Shared/Cocoa/CoreIPCNSValue.serialization.in
    A Source/WebKit/Shared/Cocoa/CoreIPCPKSecureElementPass.h
    A Source/WebKit/Shared/Cocoa/CoreIPCPKSecureElementPass.mm
    M Source/WebKit/Shared/Cocoa/CoreIPCPassKit.serialization.in
    M Source/WebKit/Shared/Cocoa/CoreIPCRetainPtr.h
    M Source/WebKit/Shared/Cocoa/CoreIPCSecureCoding.h
    M Source/WebKit/Shared/Cocoa/CoreIPCSecureCoding.mm
    M Source/WebKit/Shared/Cocoa/CoreIPCSecureCoding.serialization.in
    M Source/WebKit/Shared/Cocoa/CoreIPCTypes.h
    M Source/WebKit/Shared/Cocoa/WebCoreArgumentCodersCocoa.serialization.in
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm

  Log Message:
  -----------
  Stop using NSKeyedUnarchiver for IPC on platforms that have the needed ObjC 
support
https://bugs.webkit.org/show_bug.cgi?id=285356
rdar://142327308

Reviewed by Brady Eidson.

To do this I needed to do a few things:
1. I needed to make CoreIPCPKSecureElementPass which continues to use NSKU under
the hood, but with a runtime verification that it is only used to send a
PKSecureElementPass into the web content process, so it can't be use to escape
the web content process.
2. I added a few more types to the NSType enumeration to replace SecureCoding.
3. I use a CoreIPCNSCFObject instead of a CoreIPCSecureCoding to store and 
serialize
the non-NSRange and non-NSRect possibilities in a CoreIPCNSValue.  This can 
probably
be tightened later, but for now it is not expanding the IPC possibilities that
are reachable by serializing an NSValue.
Now our IPC surface area has no ObjC types as primitive types on new platforms!

* Source/WebKit/Scripts/generate-serializers.py:
(generate_webkit_secure_coding_impl):
* Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.h:
* Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.mm:
(IPC::typeFromObject):
* Source/WebKit/Shared/Cocoa/CoreIPCNSCFObject.h:
* Source/WebKit/Shared/Cocoa/CoreIPCNSCFObject.mm:
(WebKit::valueFromID):
(WebKit::CoreIPCNSCFObject::valueIsAllowed):
* Source/WebKit/Shared/Cocoa/CoreIPCNSCFObject.serialization.in:
* Source/WebKit/Shared/Cocoa/CoreIPCNSShadow.h:
* Source/WebKit/Shared/Cocoa/CoreIPCNSShadow.mm:
* Source/WebKit/Shared/Cocoa/CoreIPCNSValue.h:
* Source/WebKit/Shared/Cocoa/CoreIPCNSValue.mm:
(WebKit::CoreIPCNSValue::valueFromNSValue):
(WebKit::CoreIPCNSValue::toID const):
(WebKit::CoreIPCNSValue::shouldWrapValue): Deleted.
* Source/WebKit/Shared/Cocoa/CoreIPCNSValue.serialization.in:
* Source/WebKit/Shared/Cocoa/CoreIPCPKSecureElementPass.h: Copied from 
Source/WebKit/Shared/Cocoa/CoreIPCRetainPtr.h.
(WebKit::CoreIPCPKSecureElementPass::CoreIPCPKSecureElementPass):
(WebKit::CoreIPCPKSecureElementPass::ipcData const):
* Source/WebKit/Shared/Cocoa/CoreIPCPKSecureElementPass.mm: Copied from 
Source/WebKit/Shared/Cocoa/CoreIPCNSShadow.mm.
(WebKit::CoreIPCPKSecureElementPass::CoreIPCPKSecureElementPass):
(WebKit::CoreIPCPKSecureElementPass::toID const):
* Source/WebKit/Shared/Cocoa/CoreIPCPassKit.serialization.in:
* Source/WebKit/Shared/Cocoa/CoreIPCRetainPtr.h:
* Source/WebKit/Shared/Cocoa/CoreIPCSecureCoding.h:
* Source/WebKit/Shared/Cocoa/CoreIPCSecureCoding.mm:
(WebKit::conformsToWebKitSecureCoding):
(WebKit::CoreIPCSecureCoding::conformsToWebKitSecureCoding): Deleted.
(WebKit::CoreIPCSecureCoding::conformsToSecureCoding): Deleted.
* Source/WebKit/Shared/Cocoa/CoreIPCSecureCoding.serialization.in:
* Source/WebKit/Shared/Cocoa/CoreIPCTypes.h:
* Source/WebKit/Shared/Cocoa/WebCoreArgumentCodersCocoa.serialization.in:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:
(SerializedTypeInfo)):

Canonical link: https://commits.webkit.org/288484@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to