Title: [282464] trunk/Source
Revision
282464
Author
[email protected]
Date
2021-09-15 11:37:12 -0700 (Wed, 15 Sep 2021)

Log Message

[Payment Request] Clean up some WKA hooks
https://bugs.webkit.org/show_bug.cgi?id=230182
<rdar://problem/78824639>

Reviewed by Tim Horton.

Source/WebCore:

* Modules/applepay/ApplePaySession.cpp:
(WebCore::convertAndValidate):
(WebCore::merge):
* Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
(WebCore::convertAndValidate):
* testing/MockPaymentCoordinator.h:
* testing/MockPaymentCoordinator.cpp:
(WebCore::MockPaymentCoordinator::showPaymentUI):
(WebCore::MockPaymentCoordinator::completeShippingMethodSelection):
(WebCore::MockPaymentCoordinator::completeShippingContactSelection):
(WebCore::MockPaymentCoordinator::completePaymentMethodSelection):
(WebCore::MockPaymentCoordinator::completeCouponCodeChange):
(WebCore::MockPaymentCoordinator::merge):
Instead of using `#define`, create actual functions so that the code in WKA is cleaner.

* Modules/applepay/ApplePayRequestBase.h:
* Modules/applepay/ApplePayRequestBase.cpp:
(WebCore::convertAndValidate):
Remove unnecessary WKA hooks.

* Modules/applepay/PaymentSummaryItems.h:
* Modules/applepay/cocoa/PaymentSummaryItemsCocoa.mm:
(WebCore::platformRecurringSummaryItem): Added.
(WebCore::platformDeferredSummaryItem): Added.
(WebCore::platformSummaryItem): Added.
(WebCore::toPKPaymentSummaryItem): Deleted.
Expose functions that convert `ApplePayLineItem` to `PKPaymentSummaryItem` (and subclasses).

Source/WebCore/PAL:

* pal/spi/cocoa/PassKitSPI.h:

Source/WebKit:

* Platform/cocoa/PaymentAuthorizationPresenter.mm:
(WebKit::merge):
(WebKit::PaymentAuthorizationPresenter::completePaymentMethodSelection):
(WebKit::PaymentAuthorizationPresenter::completeShippingContactSelection):
(WebKit::PaymentAuthorizationPresenter::completeShippingMethodSelection):
(WebKit::PaymentAuthorizationPresenter::completeCouponCodeChange):
* Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::merge):
(WebKit::WebPaymentCoordinatorProxy::platformPaymentRequest):
Instead of using `#define`, create actual functions so that the code in WKA is cleaner.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (282463 => 282464)


--- trunk/Source/WebCore/ChangeLog	2021-09-15 18:06:47 UTC (rev 282463)
+++ trunk/Source/WebCore/ChangeLog	2021-09-15 18:37:12 UTC (rev 282464)
@@ -1,3 +1,39 @@
+2021-09-15  Devin Rousso  <[email protected]>
+
+        [Payment Request] Clean up some WKA hooks
+        https://bugs.webkit.org/show_bug.cgi?id=230182
+        <rdar://problem/78824639>
+
+        Reviewed by Tim Horton.
+
+        * Modules/applepay/ApplePaySession.cpp:
+        (WebCore::convertAndValidate):
+        (WebCore::merge):
+        * Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
+        (WebCore::convertAndValidate):
+        * testing/MockPaymentCoordinator.h:
+        * testing/MockPaymentCoordinator.cpp:
+        (WebCore::MockPaymentCoordinator::showPaymentUI):
+        (WebCore::MockPaymentCoordinator::completeShippingMethodSelection):
+        (WebCore::MockPaymentCoordinator::completeShippingContactSelection):
+        (WebCore::MockPaymentCoordinator::completePaymentMethodSelection):
+        (WebCore::MockPaymentCoordinator::completeCouponCodeChange):
+        (WebCore::MockPaymentCoordinator::merge):
+        Instead of using `#define`, create actual functions so that the code in WKA is cleaner.
+
+        * Modules/applepay/ApplePayRequestBase.h:
+        * Modules/applepay/ApplePayRequestBase.cpp:
+        (WebCore::convertAndValidate):
+        Remove unnecessary WKA hooks.
+
+        * Modules/applepay/PaymentSummaryItems.h:
+        * Modules/applepay/cocoa/PaymentSummaryItemsCocoa.mm:
+        (WebCore::platformRecurringSummaryItem): Added.
+        (WebCore::platformDeferredSummaryItem): Added.
+        (WebCore::platformSummaryItem): Added.
+        (WebCore::toPKPaymentSummaryItem): Deleted.
+        Expose functions that convert `ApplePayLineItem` to `PKPaymentSummaryItem` (and subclasses).
+
 2021-09-15  Ziran Sun  <[email protected]>
 
         [css-grid] Overflow should be computed with the actual logical bottom

Modified: trunk/Source/WebCore/Modules/applepay/ApplePayRequestBase.cpp (282463 => 282464)


--- trunk/Source/WebCore/Modules/applepay/ApplePayRequestBase.cpp	2021-09-15 18:06:47 UTC (rev 282463)
+++ trunk/Source/WebCore/Modules/applepay/ApplePayRequestBase.cpp	2021-09-15 18:37:12 UTC (rev 282464)
@@ -31,10 +31,6 @@
 #include "PaymentCoordinator.h"
 #include <wtf/text/StringConcatenateNumbers.h>
 
-#if USE(APPLE_INTERNAL_SDK)
-#include <WebKitAdditions/ApplePayRequestBaseAdditions.cpp>
-#endif
-
 namespace WebCore {
 
 static bool requiresSupportedNetworks(unsigned version, const ApplePayRequestBase& request)
@@ -127,10 +123,6 @@
     result.setShippingContactEditingMode(request.shippingContactEditingMode);
 #endif
 
-#if defined(ApplePayRequestBaseAdditions_convertAndValidate_request)
-    ApplePayRequestBaseAdditions_convertAndValidate_request
-#endif
-
     return WTFMove(result);
 }
 

Modified: trunk/Source/WebCore/Modules/applepay/ApplePayRequestBase.h (282463 => 282464)


--- trunk/Source/WebCore/Modules/applepay/ApplePayRequestBase.h	2021-09-15 18:06:47 UTC (rev 282463)
+++ trunk/Source/WebCore/Modules/applepay/ApplePayRequestBase.h	2021-09-15 18:37:12 UTC (rev 282464)
@@ -33,10 +33,6 @@
 #include "ApplePayPaymentContact.h"
 #include "ApplePayShippingContactEditingMode.h"
 
-#if USE(APPLE_INTERNAL_SDK)
-#include <WebKitAdditions/ApplePayRequestBaseAdditions.h>
-#endif
-
 namespace WebCore {
 
 class Document;
@@ -68,10 +64,6 @@
 #if ENABLE(APPLE_PAY_SHIPPING_CONTACT_EDITING_MODE)
     std::optional<ApplePayShippingContactEditingMode> shippingContactEditingMode;
 #endif
-
-#if defined(ApplePayRequestBaseAdditions_members)
-    ApplePayRequestBaseAdditions_members
-#endif
 };
 
 ExceptionOr<ApplePaySessionPaymentRequest> convertAndValidate(Document&, unsigned version, ApplePayRequestBase&, const PaymentCoordinator&);

Modified: trunk/Source/WebCore/Modules/applepay/ApplePaySession.cpp (282463 => 282464)


--- trunk/Source/WebCore/Modules/applepay/ApplePaySession.cpp	2021-09-15 18:06:47 UTC (rev 282463)
+++ trunk/Source/WebCore/Modules/applepay/ApplePaySession.cpp	2021-09-15 18:37:12 UTC (rev 282464)
@@ -142,6 +142,10 @@
     return WTFMove(result);
 }
 
+#if !USE(APPLE_INTERNAL_SDK)
+static ExceptionOr<void> merge(ApplePaySessionPaymentRequest&, ApplePayPaymentRequest&) { return { }; }
+#endif
+
 static ExceptionOr<ApplePaySessionPaymentRequest> convertAndValidate(Document& document, unsigned version, ApplePayPaymentRequest&& paymentRequest, const PaymentCoordinator& paymentCoordinator)
 {
     auto convertedRequest = convertAndValidate(document, version, paymentRequest, paymentCoordinator);
@@ -171,9 +175,8 @@
         result.setShippingMethods(shippingMethods.releaseReturnValue());
     }
 
-#if defined(ApplePaySessionAdditions_convertAndValidate_request)
-    ApplePaySessionAdditions_convertAndValidate_request
-#endif
+    if (auto mergeResult = merge(result, paymentRequest); mergeResult.hasException())
+        return mergeResult.releaseException();
 
     // FIXME: Merge this validation into the validation we are doing above.
     auto validatedPaymentRequest = PaymentRequestValidator::validate(result);

Modified: trunk/Source/WebCore/Modules/applepay/PaymentSummaryItems.h (282463 => 282464)


--- trunk/Source/WebCore/Modules/applepay/PaymentSummaryItems.h	2021-09-15 18:06:47 UTC (rev 282463)
+++ trunk/Source/WebCore/Modules/applepay/PaymentSummaryItems.h	2021-09-15 18:37:12 UTC (rev 282464)
@@ -28,11 +28,23 @@
 #if ENABLE(APPLE_PAY)
 
 OBJC_CLASS NSArray;
+OBJC_CLASS PKDeferredPaymentSummaryItem;
+OBJC_CLASS PKPaymentSummaryItem;
+OBJC_CLASS PKRecurringPaymentSummaryItem;
 
 namespace WebCore {
 
 struct ApplePayLineItem;
 
+#if HAVE(PASSKIT_RECURRING_SUMMARY_ITEM)
+WEBCORE_EXPORT PKRecurringPaymentSummaryItem *platformRecurringSummaryItem(const ApplePayLineItem&);
+#endif
+
+#if HAVE(PASSKIT_DEFERRED_SUMMARY_ITEM)
+WEBCORE_EXPORT PKDeferredPaymentSummaryItem *platformDeferredSummaryItem(const ApplePayLineItem&);
+#endif
+
+WEBCORE_EXPORT PKPaymentSummaryItem *platformSummaryItem(const ApplePayLineItem&);
 WEBCORE_EXPORT NSArray *platformSummaryItems(const ApplePayLineItem& total, const Vector<ApplePayLineItem>&);
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/Modules/applepay/cocoa/PaymentSummaryItemsCocoa.mm (282463 => 282464)


--- trunk/Source/WebCore/Modules/applepay/cocoa/PaymentSummaryItemsCocoa.mm	2021-09-15 18:06:47 UTC (rev 282463)
+++ trunk/Source/WebCore/Modules/applepay/cocoa/PaymentSummaryItemsCocoa.mm	2021-09-15 18:37:12 UTC (rev 282464)
@@ -50,7 +50,7 @@
     }
 }
 
-#if HAVE(PASSKIT_RECURRING_LINE_ITEM) || HAVE(PASSKIT_DEFERRED_LINE_ITEM)
+#if HAVE(PASSKIT_RECURRING_SUMMARY_ITEM) || HAVE(PASSKIT_DEFERRED_SUMMARY_ITEM)
 
 static NSDate *toDate(double date)
 {
@@ -57,9 +57,9 @@
     return [NSDate dateWithTimeIntervalSince1970:date];
 }
 
-#endif // HAVE(PASSKIT_RECURRING_LINE_ITEM) || HAVE(PASSKIT_DEFERRED_LINE_ITEM)
+#endif // HAVE(PASSKIT_RECURRING_SUMMARY_ITEM) || HAVE(PASSKIT_DEFERRED_SUMMARY_ITEM)
 
-#if HAVE(PASSKIT_RECURRING_LINE_ITEM)
+#if HAVE(PASSKIT_RECURRING_SUMMARY_ITEM)
 
 static NSCalendarUnit toCalendarUnit(ApplePayRecurringPaymentDateUnit unit)
 {
@@ -81,39 +81,51 @@
     }
 }
 
-#endif // HAVE(PASSKIT_RECURRING_LINE_ITEM)
+PKRecurringPaymentSummaryItem *platformRecurringSummaryItem(const ApplePayLineItem& lineItem)
+{
+    ASSERT(lineItem.paymentTiming == ApplePayPaymentTiming::Recurring);
+    PKRecurringPaymentSummaryItem *summaryItem = [PAL::getPKRecurringPaymentSummaryItemClass() summaryItemWithLabel:lineItem.label amount:toDecimalNumber(lineItem.amount) type:toPKPaymentSummaryItemType(lineItem.type)];
+    if (!std::isnan(lineItem.recurringPaymentStartDate))
+        summaryItem.startDate = toDate(lineItem.recurringPaymentStartDate);
+    summaryItem.intervalUnit = toCalendarUnit(lineItem.recurringPaymentIntervalUnit);
+    summaryItem.intervalCount = lineItem.recurringPaymentIntervalCount;
+    if (!std::isnan(lineItem.recurringPaymentEndDate))
+        summaryItem.endDate = toDate(lineItem.recurringPaymentEndDate);
+    return summaryItem;
+}
 
-static PKPaymentSummaryItem *toPKPaymentSummaryItem(const ApplePayLineItem& lineItem)
+#endif // HAVE(PASSKIT_RECURRING_SUMMARY_ITEM)
+
+#if HAVE(PASSKIT_DEFERRED_SUMMARY_ITEM)
+
+PKDeferredPaymentSummaryItem *platformDeferredSummaryItem(const ApplePayLineItem& lineItem)
 {
-#if HAVE(PASSKIT_RECURRING_LINE_ITEM) || HAVE(PASSKIT_DEFERRED_LINE_ITEM)
+    ASSERT(lineItem.paymentTiming == ApplePayPaymentTiming::Deferred);
+    PKDeferredPaymentSummaryItem *summaryItem = [PAL::getPKDeferredPaymentSummaryItemClass() summaryItemWithLabel:lineItem.label amount:toDecimalNumber(lineItem.amount) type:toPKPaymentSummaryItemType(lineItem.type)];
+    if (!std::isnan(lineItem.deferredPaymentDate))
+        summaryItem.deferredDate = toDate(lineItem.deferredPaymentDate);
+    return summaryItem;
+}
+
+#endif // HAVE(PASSKIT_DEFERRED_SUMMARY_ITEM)
+
+PKPaymentSummaryItem *platformSummaryItem(const ApplePayLineItem& lineItem)
+{
+#if HAVE(PASSKIT_RECURRING_SUMMARY_ITEM) || HAVE(PASSKIT_DEFERRED_SUMMARY_ITEM)
     switch (lineItem.paymentTiming) {
     case ApplePayPaymentTiming::Immediate:
         break;
 
     case ApplePayPaymentTiming::Recurring:
-#if HAVE(PASSKIT_RECURRING_LINE_ITEM)
-    {
-        PKRecurringPaymentSummaryItem *summaryItem = [PAL::getPKRecurringPaymentSummaryItemClass() summaryItemWithLabel:lineItem.label amount:toDecimalNumber(lineItem.amount) type:toPKPaymentSummaryItemType(lineItem.type)];
-        if (!std::isnan(lineItem.recurringPaymentStartDate))
-            summaryItem.startDate = toDate(lineItem.recurringPaymentStartDate);
-        summaryItem.intervalUnit = toCalendarUnit(lineItem.recurringPaymentIntervalUnit);
-        summaryItem.intervalCount = lineItem.recurringPaymentIntervalCount;
-        if (!std::isnan(lineItem.recurringPaymentEndDate))
-            summaryItem.endDate = toDate(lineItem.recurringPaymentEndDate);
-        return summaryItem;
-    }
+#if HAVE(PASSKIT_RECURRING_SUMMARY_ITEM)
+        return platformRecurringSummaryItem(lineItem);
 #else
         break;
 #endif
 
     case ApplePayPaymentTiming::Deferred:
-#if HAVE(PASSKIT_DEFERRED_LINE_ITEM)
-    {
-        PKDeferredPaymentSummaryItem *summaryItem = [PAL::getPKDeferredPaymentSummaryItemClass() summaryItemWithLabel:lineItem.label amount:toDecimalNumber(lineItem.amount) type:toPKPaymentSummaryItemType(lineItem.type)];
-        if (!std::isnan(lineItem.deferredPaymentDate))
-            summaryItem.deferredDate = toDate(lineItem.deferredPaymentDate);
-        return summaryItem;
-    }
+#if HAVE(PASSKIT_DEFERRED_SUMMARY_ITEM)
+        return platformDeferredSummaryItem(lineItem);
 #else
         break;
 #endif
@@ -127,11 +139,11 @@
 {
     NSMutableArray *paymentSummaryItems = [NSMutableArray arrayWithCapacity:lineItems.size() + 1];
     for (auto& lineItem : lineItems) {
-        if (PKPaymentSummaryItem *summaryItem = toPKPaymentSummaryItem(lineItem))
+        if (PKPaymentSummaryItem *summaryItem = platformSummaryItem(lineItem))
             [paymentSummaryItems addObject:summaryItem];
     }
 
-    if (PKPaymentSummaryItem *totalItem = toPKPaymentSummaryItem(total))
+    if (PKPaymentSummaryItem *totalItem = platformSummaryItem(total))
         [paymentSummaryItems addObject:totalItem];
 
     return adoptNS([paymentSummaryItems copy]).autorelease();

Modified: trunk/Source/WebCore/Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp (282463 => 282464)


--- trunk/Source/WebCore/Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp	2021-09-15 18:06:47 UTC (rev 282463)
+++ trunk/Source/WebCore/Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp	2021-09-15 18:37:12 UTC (rev 282464)
@@ -227,9 +227,9 @@
         request.setShippingType(convert(options.shippingType));
 }
 
-#if !ENABLE(APPLE_PAY_PAYMENT_DETAILS_DATA)
+#if !USE(APPLE_INTERNAL_SDK)
 static void merge(ApplePaySessionPaymentRequest&, ApplePayModifier&&) { }
-#endif // !ENABLE(APPLE_PAY_PAYMENT_DETAILS_DATA)
+#endif
 
 ExceptionOr<void> ApplePayPaymentHandler::show(Document& document)
 {
@@ -537,9 +537,9 @@
     return { };
 }
 
-#if !ENABLE(APPLE_PAY_PAYMENT_DETAILS_DATA)
+#if !USE(APPLE_INTERNAL_SDK)
 static void merge(ApplePayDetailsUpdateBase&, ApplePayModifier&&) { }
-#endif // !ENABLE(APPLE_PAY_PAYMENT_DETAILS_DATA)
+#endif
 
 ExceptionOr<void> ApplePayPaymentHandler::shippingAddressUpdated(Vector<RefPtr<ApplePayError>>&& errors)
 {

Modified: trunk/Source/WebCore/PAL/ChangeLog (282463 => 282464)


--- trunk/Source/WebCore/PAL/ChangeLog	2021-09-15 18:06:47 UTC (rev 282463)
+++ trunk/Source/WebCore/PAL/ChangeLog	2021-09-15 18:37:12 UTC (rev 282464)
@@ -1,3 +1,13 @@
+2021-09-15  Devin Rousso  <[email protected]>
+
+        [Payment Request] Clean up some WKA hooks
+        https://bugs.webkit.org/show_bug.cgi?id=230182
+        <rdar://problem/78824639>
+
+        Reviewed by Tim Horton.
+
+        * pal/spi/cocoa/PassKitSPI.h:
+
 2021-09-14  Myles C. Maxfield  <[email protected]>
 
         [Cocoa] Migrate to CTFontHasTable() from CTFontCopyAvailableTables()

Modified: trunk/Source/WebCore/PAL/pal/spi/cocoa/PassKitSPI.h (282463 => 282464)


--- trunk/Source/WebCore/PAL/pal/spi/cocoa/PassKitSPI.h	2021-09-15 18:06:47 UTC (rev 282463)
+++ trunk/Source/WebCore/PAL/pal/spi/cocoa/PassKitSPI.h	2021-09-15 18:37:12 UTC (rev 282464)
@@ -71,6 +71,8 @@
 #import <PassKitCore/PKDateComponentsRange.h>
 #endif
 
+#import <WebKitAdditions/PassKitSPIAdditions.h>
+
 #else
 
 #import <Foundation/Foundation.h>

Modified: trunk/Source/WebCore/testing/MockPaymentCoordinator.cpp (282463 => 282464)


--- trunk/Source/WebCore/testing/MockPaymentCoordinator.cpp	2021-09-15 18:06:47 UTC (rev 282463)
+++ trunk/Source/WebCore/testing/MockPaymentCoordinator.cpp	2021-09-15 18:37:12 UTC (rev 282464)
@@ -121,9 +121,7 @@
 #if ENABLE(APPLE_PAY_SHIPPING_CONTACT_EDITING_MODE)
     m_shippingContactEditingMode = request.shippingContactEditingMode();
 #endif
-#if defined(MockPaymentCoordinatorAdditions_showPaymentUI)
-    MockPaymentCoordinatorAdditions_showPaymentUI
-#endif
+    merge(request);
 
     ASSERT(showCount == hideCount);
     ++showCount;
@@ -150,9 +148,7 @@
 #if ENABLE(APPLE_PAY_UPDATE_SHIPPING_METHODS_WHEN_CHANGING_LINE_ITEMS)
     m_shippingMethods = WTFMove(shippingMethodUpdate->newShippingMethods);
 #endif
-#if defined(MockPaymentCoordinatorAdditions_completeShippingMethodSelection)
-    MockPaymentCoordinatorAdditions_completeShippingMethodSelection
-#endif
+    merge(*shippingMethodUpdate);
 }
 
 static Vector<MockPaymentError> convert(Vector<RefPtr<ApplePayError>>&& errors)
@@ -174,9 +170,7 @@
     m_lineItems = WTFMove(shippingContactUpdate->newLineItems);
     m_shippingMethods = WTFMove(shippingContactUpdate->newShippingMethods);
     m_errors = convert(WTFMove(shippingContactUpdate->errors));
-#if defined(MockPaymentCoordinatorAdditions_completeShippingContactSelection)
-    MockPaymentCoordinatorAdditions_completeShippingContactSelection
-#endif
+    merge(*shippingContactUpdate);
 }
 
 void MockPaymentCoordinator::completePaymentMethodSelection(std::optional<ApplePayPaymentMethodUpdate>&& paymentMethodUpdate)
@@ -190,9 +184,7 @@
     m_shippingMethods = WTFMove(paymentMethodUpdate->newShippingMethods);
     m_errors = convert(WTFMove(paymentMethodUpdate->errors));
 #endif
-#if defined(MockPaymentCoordinatorAdditions_completePaymentMethodSelection)
-    MockPaymentCoordinatorAdditions_completePaymentMethodSelection
-#endif
+    merge(*paymentMethodUpdate);
 }
 
 #if ENABLE(APPLE_PAY_COUPON_CODE)
@@ -206,9 +198,7 @@
     m_lineItems = WTFMove(couponCodeUpdate->newLineItems);
     m_shippingMethods = WTFMove(couponCodeUpdate->newShippingMethods);
     m_errors = convert(WTFMove(couponCodeUpdate->errors));
-#if defined(MockPaymentCoordinatorAdditions_completeCouponCodeChange)
-    MockPaymentCoordinatorAdditions_completeCouponCodeChange
-#endif
+    merge(*couponCodeUpdate);
 }
 
 #endif // ENABLE(APPLE_PAY_COUPON_CODE)
@@ -306,6 +296,11 @@
     completionHandler(true);
 }
 
+#if !USE(APPLE_INTERNAL_SDK)
+void MockPaymentCoordinator::merge(const ApplePaySessionPaymentRequest&) { }
+void MockPaymentCoordinator::merge(ApplePayDetailsUpdateBase&) { }
+#endif
+
 } // namespace WebCore
 
 #endif // ENABLE(APPLE_PAY)

Modified: trunk/Source/WebCore/testing/MockPaymentCoordinator.h (282463 => 282464)


--- trunk/Source/WebCore/testing/MockPaymentCoordinator.h	2021-09-15 18:06:47 UTC (rev 282463)
+++ trunk/Source/WebCore/testing/MockPaymentCoordinator.h	2021-09-15 18:37:12 UTC (rev 282464)
@@ -45,7 +45,9 @@
 
 namespace WebCore {
 
+class ApplePaySessionPaymentRequest;
 class Page;
+struct ApplePayDetailsUpdateBase;
 struct ApplePayPaymentMethod;
 
 class MockPaymentCoordinator final : public PaymentCoordinatorClient {
@@ -117,6 +119,9 @@
 
     void dispatchIfShowing(Function<void()>&&);
 
+    void merge(const ApplePaySessionPaymentRequest&);
+    void merge(ApplePayDetailsUpdateBase&);
+
     Page& m_page;
     bool m_canMakePayments { true };
     bool m_canMakePaymentsWithActiveCard { true };

Modified: trunk/Source/WebKit/ChangeLog (282463 => 282464)


--- trunk/Source/WebKit/ChangeLog	2021-09-15 18:06:47 UTC (rev 282463)
+++ trunk/Source/WebKit/ChangeLog	2021-09-15 18:37:12 UTC (rev 282464)
@@ -1,3 +1,22 @@
+2021-09-15  Devin Rousso  <[email protected]>
+
+        [Payment Request] Clean up some WKA hooks
+        https://bugs.webkit.org/show_bug.cgi?id=230182
+        <rdar://problem/78824639>
+
+        Reviewed by Tim Horton.
+
+        * Platform/cocoa/PaymentAuthorizationPresenter.mm:
+        (WebKit::merge):
+        (WebKit::PaymentAuthorizationPresenter::completePaymentMethodSelection):
+        (WebKit::PaymentAuthorizationPresenter::completeShippingContactSelection):
+        (WebKit::PaymentAuthorizationPresenter::completeShippingMethodSelection):
+        (WebKit::PaymentAuthorizationPresenter::completeCouponCodeChange):
+        * Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
+        (WebKit::merge):
+        (WebKit::WebPaymentCoordinatorProxy::platformPaymentRequest):
+        Instead of using `#define`, create actual functions so that the code in WKA is cleaner.
+
 2021-09-15  Michael Catanzaro  <[email protected]>
 
         [WPE][GTK] Silence -Wswitch warning enumeration value ‘ExceededProcessCountLimit’ not handled in switch

Modified: trunk/Source/WebKit/Platform/cocoa/PaymentAuthorizationPresenter.mm (282463 => 282464)


--- trunk/Source/WebKit/Platform/cocoa/PaymentAuthorizationPresenter.mm	2021-09-15 18:06:47 UTC (rev 282463)
+++ trunk/Source/WebKit/Platform/cocoa/PaymentAuthorizationPresenter.mm	2021-09-15 18:37:12 UTC (rev 282464)
@@ -208,6 +208,10 @@
     [platformDelegate() completeMerchantValidation:merchantSession.pkPaymentMerchantSession() error:nil];
 }
 
+#if !USE(APPLE_INTERNAL_SDK)
+static void merge(PKPaymentRequestUpdate *, WebCore::ApplePayDetailsUpdateBase&) { }
+#endif
+
 void PaymentAuthorizationPresenter::completePaymentMethodSelection(std::optional<WebCore::ApplePayPaymentMethodUpdate>&& update)
 {
     ASSERT(platformDelegate());
@@ -224,9 +228,7 @@
 #if HAVE(PASSKIT_INSTALLMENTS) && ENABLE(APPLE_PAY_INSTALLMENTS)
     [paymentMethodUpdate setInstallmentGroupIdentifier:WTFMove(update->installmentGroupIdentifier)];
 #endif // HAVE(PASSKIT_INSTALLMENTS) && ENABLE(APPLE_PAY_INSTALLMENTS)
-#if defined(PaymentAuthorizationPresenterAdditions_completePaymentMethodSelection)
-    PaymentAuthorizationPresenterAdditions_completePaymentMethodSelection
-#endif
+    merge(paymentMethodUpdate.get(), *update);
     [platformDelegate() completePaymentMethodSelection:paymentMethodUpdate.get()];
 }
 
@@ -249,9 +251,7 @@
     auto shippingContactUpdate = adoptNS([PAL::allocPKPaymentRequestShippingContactUpdateInstance() initWithErrors:toNSErrors(WTFMove(update->errors)).get()
         paymentSummaryItems:WebCore::platformSummaryItems(WTFMove(update->newTotal), WTFMove(update->newLineItems))
         shippingMethods:toPKShippingMethods(WTFMove(update->newShippingMethods)).get()]);
-#if defined(PaymentAuthorizationPresenterAdditions_completeShippingContactSelection)
-    PaymentAuthorizationPresenterAdditions_completeShippingContactSelection
-#endif
+    merge(shippingContactUpdate.get(), *update);
     [platformDelegate() completeShippingContactSelection:shippingContactUpdate.get()];
 }
 
@@ -267,9 +267,7 @@
 #if HAVE(PASSKIT_UPDATE_SHIPPING_METHODS_WHEN_CHANGING_SUMMARY_ITEMS)
     [shippingMethodUpdate setShippingMethods:toPKShippingMethods(WTFMove(update->newShippingMethods)).get()];
 #endif
-#if defined(PaymentAuthorizationPresenterAdditions_completeShippingMethodSelection)
-    PaymentAuthorizationPresenterAdditions_completeShippingMethodSelection
-#endif
+    merge(shippingMethodUpdate.get(), *update);
     [platformDelegate() completeShippingMethodSelection:shippingMethodUpdate.get()];
 }
 
@@ -284,9 +282,7 @@
     }
 
     auto couponCodeUpdate = adoptNS([PAL::allocPKPaymentRequestCouponCodeUpdateInstance() initWithErrors:toNSErrors(WTFMove(update->errors)).get() paymentSummaryItems:WebCore::platformSummaryItems(WTFMove(update->newTotal), WTFMove(update->newLineItems)) shippingMethods:toPKShippingMethods(WTFMove(update->newShippingMethods)).get()]);
-#if defined(PaymentAuthorizationPresenterAdditions_completeCouponCodeChange)
-    PaymentAuthorizationPresenterAdditions_completeCouponCodeChange
-#endif
+    merge(couponCodeUpdate.get(), *update);
     [platformDelegate() completeCouponCodeChange:couponCodeUpdate.get()];
 }
 

Modified: trunk/Source/WebKit/Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm (282463 => 282464)


--- trunk/Source/WebKit/Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm	2021-09-15 18:06:47 UTC (rev 282463)
+++ trunk/Source/WebKit/Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm	2021-09-15 18:37:12 UTC (rev 282464)
@@ -241,6 +241,10 @@
     }
 }
 
+#if !USE(APPLE_INTERNAL_SDK)
+static void merge(PKPaymentRequest *, const WebCore::ApplePaySessionPaymentRequest&) { }
+#endif
+
 RetainPtr<PKPaymentRequest> WebPaymentCoordinatorProxy::platformPaymentRequest(const URL& originatingURL, const Vector<URL>& linkIconURLs, const WebCore::ApplePaySessionPaymentRequest& paymentRequest)
 {
     auto result = adoptNS([PAL::allocPKPaymentRequestInstance() init]);
@@ -321,9 +325,7 @@
         [result setShippingContactEditingMode:toPKShippingContactEditingMode(*shippingContactEditingMode)];
 #endif
 
-#if defined(WebPaymentCoordinatorProxyCocoaAdditions_platformPaymentRequest)
-    WebPaymentCoordinatorProxyCocoaAdditions_platformPaymentRequest
-#endif
+    merge(result.get(), paymentRequest);
 
     return result;
 }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to