[webkit-changes] [WebKit/WebKit] 5776a8: Generate secure coding serializer for DDActionCont...

Brady Eidson noreply at github.com
Tue Dec 5 18:12:19 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5776a8fdee1ed5230bafbb063ad15ac71d607f55
      https://github.com/WebKit/WebKit/commit/5776a8fdee1ed5230bafbb063ad15ac71d607f55
  Author: Brady Eidson <beidson at apple.com>
  Date:   2023-12-05 (Tue, 05 Dec 2023)

  Changed paths:
    M Source/WebCore/PAL/pal/spi/mac/DataDetectorsSPI.h
    M Source/WebKit/DerivedSources-input.xcfilelist
    M Source/WebKit/DerivedSources.make
    M Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.h
    M Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.mm
    A Source/WebKit/Shared/Cocoa/CoreIPCDDActionContext.serialization.in
    M Source/WebKit/Shared/Cocoa/CoreIPCDictionary.mm
    M Source/WebKit/Shared/Cocoa/CoreIPCNSCFObject.h
    M Source/WebKit/Shared/Cocoa/CoreIPCNSCFObject.mm
    M Source/WebKit/Shared/Cocoa/CoreIPCNSValue.h
    M Source/WebKit/Shared/Cocoa/CoreIPCNSValue.mm
    A Source/WebKit/Shared/Cocoa/CoreIPCPersonNameComponents.h
    A Source/WebKit/Shared/Cocoa/CoreIPCPersonNameComponents.mm
    A Source/WebKit/Shared/Cocoa/CoreIPCPersonNameComponents.serialization.in
    M Source/WebKit/Shared/Cocoa/CoreIPCTypes.h
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Tools/TestWebKitAPI/Tests/IPC/IPCSerialization.mm

  Log Message:
  -----------
  Generate secure coding serializer for DDActionContext (and the types it relies on)
https://bugs.webkit.org/show_bug.cgi?id=265890
rdar://119203785

Reviewed by Alex Christensen.

This adds the WebKit property list serialization code path for DDActionContext.
That includes the types it relies on - NSPersonNameComponents, and NSRect wrapped by NSValue.

On the surface - by looking at how our API test works - it appears almost as if we could serialize DDActionContext
directly by accessing members and recreating with setters.
Unfortunately that's not the case because not everything they need to encode/decode is directly accessible.

* Source/WebKit/DerivedSources-input.xcfilelist:
* Source/WebKit/DerivedSources.make:
* Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.h:
* Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.mm:
(IPC::getClass<WKDDActionContext>):
(IPC::typeFromObject):
* Source/WebKit/Shared/Cocoa/CoreIPCDDActionContext.serialization.in: Added.
* Source/WebKit/Shared/Cocoa/CoreIPCDictionary.mm:
(WebKit::CoreIPCDictionary::keyHasValueOfType const):
* Source/WebKit/Shared/Cocoa/CoreIPCNSCFObject.h:
* Source/WebKit/Shared/Cocoa/CoreIPCNSCFObject.mm:
(WebKit::valueFromID):
* Source/WebKit/Shared/Cocoa/CoreIPCNSValue.h:
* Source/WebKit/Shared/Cocoa/CoreIPCNSValue.mm:
(WebKit::CoreIPCNSValue::valueFromNSValue):
(WebKit::CoreIPCNSValue::toID const):
(WebKit::CoreIPCNSValue::shouldWrapValue):
* Source/WebKit/Shared/Cocoa/CoreIPCPersonNameComponents.h: Copied from Source/WebKit/Shared/Cocoa/CoreIPCNSValue.h.
(WebKit::CoreIPCPersonNameComponents::CoreIPCPersonNameComponents):
* Source/WebKit/Shared/Cocoa/CoreIPCPersonNameComponents.mm: Copied from Source/WebKit/Shared/Cocoa/CoreIPCNSValue.mm.
(WebKit::CoreIPCPersonNameComponents::CoreIPCPersonNameComponents):
(WebKit::CoreIPCPersonNameComponents::toID const):
* Source/WebKit/Shared/Cocoa/CoreIPCPersonNameComponents.serialization.in: Added.
* Source/WebKit/Shared/Cocoa/CoreIPCTypes.h:
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/IPC/IPCSerialization.mm:
(isEqual):
(operator==):
(personNameComponentsForTesting):
(TEST):
(fakeDataDetectorResultForTesting):

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




More information about the webkit-changes mailing list