Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c9b8f3887b04ea13be9d0365da205aec3689bae3
      
https://github.com/WebKit/WebKit/commit/c9b8f3887b04ea13be9d0365da205aec3689bae3
  Author: Alex Christensen <[email protected]>
  Date:   2023-05-03 (Wed, 03 May 2023)

  Changed paths:
    A 
LayoutTests/http/tests/paymentrequest/installment-configuration.https-expected.txt
    A LayoutTests/http/tests/paymentrequest/installment-configuration.https.html
    M Source/WebCore/Modules/applepay/ApplePaySetupFeatureTypeWebCore.h
    M Source/WebCore/Modules/applepay/ApplePaySetupFeatureWebCore.h
    M Source/WebCore/Modules/applepay/PaymentInstallmentConfiguration.mm
    M Source/WebCore/Modules/applepay/PaymentInstallmentConfigurationWebCore.h
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/testing/MockPaymentCoordinator.cpp
    M Source/WebCore/testing/MockPaymentCoordinator.h
    M Source/WebCore/testing/MockPaymentCoordinator.idl
    M Source/WebKit/Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm
    M Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.mm
    M Source/WebKit/Shared/Cocoa/WebCoreArgumentCodersCocoa.mm
    M Source/WebKit/Shared/WebCoreArgumentCoders.h
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in

  Log Message:
  -----------
  Migrate PaymentInstallmentConfiguration to generated serialization
https://bugs.webkit.org/show_bug.cgi?id=256264
rdar://108849628

Reviewed by Andy Estes.

A previous attempt at doing this had 
PaymentInstallmentConfiguration::platformConfiguration
always return a non-null, possibly empty configuration.  That caused an issue 
so it was reverted.
This attempt is the same as 263335@main except for the following changes:

1. I store a std::optional<ApplePayInstallmentConfiguration> to capture the 
nullness of the
   PKPaymentInstallmentConfiguration from the constructor and use that to 
return null when appropriate.
2. I added a layout test that verifies that null successfully roundtrips 
through PaymentInstallmentConfiguration
   using an internals function to do the test and return whether it passed or 
not.
3. addApplicationMetadata takes a ApplePayInstallmentConfiguration instead of a 
const reference.
   This was feedback given on 263335@main and is small and only cosmetic.

* 
LayoutTests/http/tests/paymentrequest/installment-configuration.https-expected.txt:
 Added.
* LayoutTests/http/tests/paymentrequest/installment-configuration.https.html: 
Added.
* Source/WebCore/Modules/applepay/ApplePaySetupFeatureTypeWebCore.h:
* Source/WebCore/Modules/applepay/ApplePaySetupFeatureWebCore.h:
* Source/WebCore/Modules/applepay/PaymentInstallmentConfiguration.mm:
(WebCore::applicationMetadataDictionary):
(WebCore::applicationMetadataString):
(WebCore::createPlatformConfiguration):
(WebCore::PaymentInstallmentConfiguration::create):
(WebCore::addApplicationMetadata):
(WebCore::PaymentInstallmentConfiguration::PaymentInstallmentConfiguration):
(WebCore::PaymentInstallmentConfiguration::applePayInstallmentConfiguration 
const):
(WebCore::PaymentInstallmentConfiguration::platformConfiguration const):
(WebCore::PaymentInstallmentConfiguration::applePayInstallmentConfiguration):
* Source/WebCore/Modules/applepay/PaymentInstallmentConfigurationWebCore.h:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/testing/MockPaymentCoordinator.cpp:
(WebCore::MockPaymentCoordinator::showPaymentUI):
(WebCore::MockPaymentCoordinator::installmentConfigurationReturnsNil const):
* Source/WebCore/testing/MockPaymentCoordinator.h:
* Source/WebCore/testing/MockPaymentCoordinator.idl:
* Source/WebKit/Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::WebPaymentCoordinatorProxy::platformPaymentRequest):
* Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.mm:
(IPC::shouldEnableStrictMode):
* Source/WebKit/Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
(IPC::ArgumentCoder<WebCore::PaymentInstallmentConfiguration>::encode): Deleted.
(IPC::ArgumentCoder<WebCore::PaymentInstallmentConfiguration>::decode): Deleted.
* Source/WebKit/Shared/WebCoreArgumentCoders.h:
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:

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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to