[webkit-changes] [WebKit/WebKit] 1fdc00: Implement the Apple Pay JS API for deferred paymen...

Gerald Squelart noreply at github.com
Sat Mar 4 00:53:30 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1fdc00a92679f0507c9a3a22f156f9491c62bdb4
      https://github.com/WebKit/WebKit/commit/1fdc00a92679f0507c9a3a22f156f9491c62bdb4
  Author: Gerald Squelart <g_squelart at apple.com>
  Date:   2023-03-04 (Sat, 04 Mar 2023)

  Changed paths:
    A LayoutTests/http/tests/paymentrequest/ApplePayModifier-deferredPaymentRequest.https-expected.txt
    A LayoutTests/http/tests/paymentrequest/ApplePayModifier-deferredPaymentRequest.https.html
    M LayoutTests/platform/ios-wk2/TestExpectations
    M LayoutTests/platform/mac-wk2/TestExpectations
    M Source/WTF/wtf/PlatformEnableCocoa.h
    M Source/WTF/wtf/PlatformHave.h
    M Source/WebCore/DerivedSources-input.xcfilelist
    M Source/WebCore/DerivedSources-output.xcfilelist
    M Source/WebCore/DerivedSources.make
    A Source/WebCore/Modules/applepay/ApplePayDeferredPaymentRequest.h
    A Source/WebCore/Modules/applepay/ApplePayDeferredPaymentRequest.idl
    M Source/WebCore/Modules/applepay/ApplePayDetailsUpdateBase.h
    M Source/WebCore/Modules/applepay/ApplePayDetailsUpdateBase.idl
    M Source/WebCore/Modules/applepay/ApplePayFeature.h
    M Source/WebCore/Modules/applepay/ApplePayFeature.idl
    M Source/WebCore/Modules/applepay/ApplePayPaymentRequest.h
    M Source/WebCore/Modules/applepay/ApplePayPaymentRequest.idl
    M Source/WebCore/Modules/applepay/ApplePaySession.cpp
    M Source/WebCore/Modules/applepay/ApplePaySessionPaymentRequest.h
    M Source/WebCore/Modules/applepay/cocoa/PaymentAPIVersionCocoa.mm
    M Source/WebCore/Modules/applepay/paymentrequest/ApplePayModifier.h
    M Source/WebCore/Modules/applepay/paymentrequest/ApplePayModifier.idl
    M Source/WebCore/Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp
    M Source/WebCore/PAL/pal/cocoa/PassKitSoftLink.h
    M Source/WebCore/PAL/pal/cocoa/PassKitSoftLink.mm
    M Source/WebCore/PAL/pal/spi/cocoa/PassKitSPI.h
    M Source/WebCore/PlatformMac.cmake
    M Source/WebCore/SourcesCocoa.txt
    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/Platform/cocoa/PaymentAuthorizationPresenter.mm
    A Source/WebKit/Shared/ApplePay/DeferredPaymentRequest.h
    A Source/WebKit/Shared/ApplePay/cocoa/DeferredPaymentRequestCocoa.mm
    M Source/WebKit/Shared/ApplePay/cocoa/PaymentTokenContextCocoa.mm
    M Source/WebKit/Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm
    M Source/WebKit/Shared/Cocoa/WebCoreArgumentCodersCocoa.mm
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
    M Source/WebKit/SourcesCocoa.txt
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj

  Log Message:
  -----------
  Implement the Apple Pay JS API for deferred payment requests
https://bugs.webkit.org/show_bug.cgi?id=253219
rdar://104562407

Reviewed by Aditya Keerthi and Dean Jackson.

The new Apple Pay JS API ApplePayDeferredPaymentRequest corresponds to PKDeferredPaymentRequest https://developer.apple.com/documentation/passkit/pkdeferredpaymentrequest

Payment requests now accept an optional property 'deferredPaymentRequest', which may contain an item with a deferred payment timing, and optionally a free cancellation date. This may be used for e.g.: pre-orders.

* LayoutTests/http/tests/paymentrequest/ApplePayModifier-deferredPaymentRequest.https-expected.txt: Added.
* LayoutTests/http/tests/paymentrequest/ApplePayModifier-deferredPaymentRequest.https.html: Added.
* LayoutTests/platform/ios-wk2/TestExpectations:
* LayoutTests/platform/mac-wk2/TestExpectations:
* Source/WTF/wtf/PlatformEnableCocoa.h:
* Source/WTF/wtf/PlatformHave.h:
* Source/WebCore/DerivedSources-input.xcfilelist:
* Source/WebCore/DerivedSources-output.xcfilelist:
* Source/WebCore/DerivedSources.make:
* Source/WebCore/Modules/applepay/ApplePayDeferredPaymentRequest.h: Copied from Source/WebCore/Modules/applepay/ApplePayDetailsUpdateBase.idl.
* Source/WebCore/Modules/applepay/ApplePayDeferredPaymentRequest.idl: Copied from Source/WebCore/Modules/applepay/ApplePayDetailsUpdateBase.idl.
* Source/WebCore/Modules/applepay/ApplePayDetailsUpdateBase.h:
* Source/WebCore/Modules/applepay/ApplePayDetailsUpdateBase.idl:
* Source/WebCore/Modules/applepay/ApplePayFeature.h:
* Source/WebCore/Modules/applepay/ApplePayFeature.idl:
* Source/WebCore/Modules/applepay/ApplePayPaymentRequest.h:
* Source/WebCore/Modules/applepay/ApplePayPaymentRequest.idl:
* Source/WebCore/Modules/applepay/ApplePaySession.cpp:
(WebCore::convertAndValidate):
* Source/WebCore/Modules/applepay/ApplePaySessionPaymentRequest.h:
(WebCore::ApplePaySessionPaymentRequest::deferredPaymentRequest const):
(WebCore::ApplePaySessionPaymentRequest::setDeferredPaymentRequest):
* Source/WebCore/Modules/applepay/cocoa/PaymentAPIVersionCocoa.mm:
(WebCore::PaymentAPIVersion::current):
* Source/WebCore/Modules/applepay/paymentrequest/ApplePayModifier.h:
* Source/WebCore/Modules/applepay/paymentrequest/ApplePayModifier.idl:
* Source/WebCore/Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
(WebCore::ApplePayPaymentHandler::show):
(WebCore::validate):
(WebCore::ApplePayPaymentHandler::shippingAddressUpdated):
(WebCore::ApplePayPaymentHandler::shippingOptionUpdated):
(WebCore::ApplePayPaymentHandler::paymentMethodUpdated):
* Source/WebCore/PAL/pal/cocoa/PassKitSoftLink.h:
* Source/WebCore/PAL/pal/cocoa/PassKitSoftLink.mm:
* Source/WebCore/PAL/pal/spi/cocoa/PassKitSPI.h:
* Source/WebCore/PlatformMac.cmake:
* Source/WebCore/SourcesCocoa.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/testing/MockPaymentCoordinator.cpp:
(WebCore::MockPaymentCoordinator::showPaymentUI):
(WebCore::MockPaymentCoordinator::completeShippingMethodSelection):
(WebCore::MockPaymentCoordinator::completeShippingContactSelection):
(WebCore::MockPaymentCoordinator::completePaymentMethodSelection):
(WebCore::MockPaymentCoordinator::completeCouponCodeChange):
* Source/WebCore/testing/MockPaymentCoordinator.h:
* Source/WebCore/testing/MockPaymentCoordinator.idl:
* Source/WebKit/Platform/cocoa/PaymentAuthorizationPresenter.mm:
(WebKit::PaymentAuthorizationPresenter::completePaymentMethodSelection):
(WebKit::PaymentAuthorizationPresenter::completeShippingContactSelection):
(WebKit::PaymentAuthorizationPresenter::completeShippingMethodSelection):
(WebKit::PaymentAuthorizationPresenter::completeCouponCodeChange):
* Source/WebKit/Shared/ApplePay/DeferredPaymentRequest.h: Copied from Source/WebCore/Modules/applepay/ApplePayDetailsUpdateBase.idl.
* Source/WebKit/Shared/ApplePay/cocoa/DeferredPaymentRequestCocoa.mm: Added.
(WebKit::platformDeferredPaymentRequest):
* Source/WebKit/Shared/ApplePay/cocoa/PaymentTokenContextCocoa.mm:
(WebKit::toDecimalNumber): Deleted.
* Source/WebKit/Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::WebPaymentCoordinatorProxy::platformPaymentRequest):
* Source/WebKit/Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
(IPC::ArgumentCoder<WebCore::ApplePaySessionPaymentRequest>::encode):
(IPC::ArgumentCoder<WebCore::ApplePaySessionPaymentRequest>::decode):
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Source/WebKit/SourcesCocoa.txt:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:

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




More information about the webkit-changes mailing list