Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c945958015e63678c04af33fc5dc8b974e983516
      
https://github.com/WebKit/WebKit/commit/c945958015e63678c04af33fc5dc8b974e983516
  Author: Abrar Rahman Protyasha <[email protected]>
  Date:   2026-04-30 (Thu, 30 Apr 2026)

  Changed paths:
    M Source/WebCore/Configurations/AllowedSPI-legacy.toml
    M Source/WebCore/Modules/applepay-ams-ui/ApplePayAMSUIPaymentHandler.cpp
    A 
Source/WebCore/Modules/applepay/ApplePayInstallmentConfigurationWebCore.cpp
    M Source/WebCore/Modules/applepay/ApplePayInstallmentConfigurationWebCore.h
    M Source/WebCore/Modules/applepay/ApplePaySetup.cpp
    M Source/WebCore/Modules/applepay/PaymentInstallmentConfiguration.mm
    M Source/WebCore/PAL/pal/spi/cocoa/PassKitInstallmentsSPI.h
    M Source/WebCore/SaferCPPExpectations/NoDeleteCheckerExpectations
    M Source/WebCore/SourcesCocoa.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in

  Log Message:
  -----------
  WebPaymentCoordinatorProxy_ShowPaymentUI handles arbitrary untyped image data 
from WebContent Process
https://bugs.webkit.org/show_bug.cgi?id=306300
rdar://158091098

Reviewed by Aditya Keerthi.

Stop serializing this property, which was originally part of the plan for this
feature, but was (according to Apple Pay folks) never actually used. We leave
the web-facing parts intact, and just stop encoding the field.

In working towards this change, we hit a couple of roadbumps.

1. WebIDL dictionaries are _ordered_ maps, and as such the installment
   configuration dictionary could not be reordered (to place the not-to-
   be-serialized image data at the end). This also meant that the C++
   type could not be reordered, given our static member order
   enforcement post-305840@main.
2. Since we had to make merchandisingImageData a [NotSerialized]
   property in the serializer declaration regardless, we could no longer
   use the aggregate initializer of ApplePayInstallmentConfiguration, as
   the generate-serializers.py did not know how to call it with an
   ommitted property.

To work around these issues, we introduce a static generator function
that takes the serializable bits of the type and constructs them back
with a placeholder empty string for merchandisingImageData.

We also make a few unified sources fixes following the addition of the
new source file ApplePayInstallmentConfigurationWebCore.cpp.

* Source/WebCore/Configurations/AllowedSPI-legacy.toml:
* Source/WebCore/Modules/applepay-ams-ui/ApplePayAMSUIPaymentHandler.cpp:
* Source/WebCore/Modules/applepay/ApplePayInstallmentConfigurationWebCore.cpp:
(WebCore::ApplePayInstallmentConfiguration::fromInstallmentConfiguration):
* Source/WebCore/Modules/applepay/ApplePayInstallmentConfigurationWebCore.h:
* Source/WebCore/Modules/applepay/ApplePaySetup.cpp:
* Source/WebCore/Modules/applepay/PaymentInstallmentConfiguration.mm:
(WebCore::createPlatformConfiguration):
(WebCore::PaymentInstallmentConfiguration::applePayInstallmentConfiguration):
* Source/WebCore/PAL/pal/spi/cocoa/PassKitInstallmentsSPI.h:
* Source/WebCore/SourcesCocoa.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:

Co-authored-by: Abrar Rahman Protyasha <[email protected]>

Originally-landed-as: 305413.164@safari-7624-branch (23871800e9d7). 
rdar://173969098
Canonical link: https://commits.webkit.org/312403@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to