Title: [278437] trunk/Source/WebCore
- Revision
- 278437
- Author
- drou...@apple.com
- Date
- 2021-06-03 17:35:06 -0700 (Thu, 03 Jun 2021)
Log Message
[Payment Request] allow additional line items and/or an override total to be specified in `ApplePayModifier`
https://bugs.webkit.org/show_bug.cgi?id=226597
<rdar://problem/78835065>
Reviewed by Wenson Hsieh.
Instead of merging properties of the first applicable `PaymentDetailsModifier` (or more
specifically the related `ApplePayModifier` with only the `total` line item, add `total`
and `additionalLineItems` properties to `ApplePayModifier` that are `ApplePayLineItem`.
* Modules/applepay/paymentrequest/ApplePayModifier.idl:
* Modules/applepay/paymentrequest/ApplePayModifier.h:
Drive-by: Rename `additionalShippingOptions` to `additionalShippingMethods` to emphasize
that the values are `ApplePayShippingMethod` instead of `PaymentShippingOption`.
* Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
(WebCore::ApplePayPaymentHandler::computeShippingMethods const):
(WebCore::ApplePayPaymentHandler::computeTotalAndLineItems const):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (278436 => 278437)
--- trunk/Source/WebCore/ChangeLog 2021-06-04 00:31:45 UTC (rev 278436)
+++ trunk/Source/WebCore/ChangeLog 2021-06-04 00:35:06 UTC (rev 278437)
@@ -1,3 +1,24 @@
+2021-06-03 Devin Rousso <drou...@apple.com>
+
+ [Payment Request] allow additional line items and/or an override total to be specified in `ApplePayModifier`
+ https://bugs.webkit.org/show_bug.cgi?id=226597
+ <rdar://problem/78835065>
+
+ Reviewed by Wenson Hsieh.
+
+ Instead of merging properties of the first applicable `PaymentDetailsModifier` (or more
+ specifically the related `ApplePayModifier` with only the `total` line item, add `total`
+ and `additionalLineItems` properties to `ApplePayModifier` that are `ApplePayLineItem`.
+
+ * Modules/applepay/paymentrequest/ApplePayModifier.idl:
+ * Modules/applepay/paymentrequest/ApplePayModifier.h:
+ Drive-by: Rename `additionalShippingOptions` to `additionalShippingMethods` to emphasize
+ that the values are `ApplePayShippingMethod` instead of `PaymentShippingOption`.
+
+ * Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
+ (WebCore::ApplePayPaymentHandler::computeShippingMethods const):
+ (WebCore::ApplePayPaymentHandler::computeTotalAndLineItems const):
+
2021-06-03 Chris Lord <cl...@igalia.com>
[WPE] position:sticky content is not correctly offset on async scrolled overflow layers with an RTL vertical scrollbar
Modified: trunk/Source/WebCore/Modules/applepay/paymentrequest/ApplePayModifier.h (278436 => 278437)
--- trunk/Source/WebCore/Modules/applepay/paymentrequest/ApplePayModifier.h 2021-06-04 00:31:45 UTC (rev 278436)
+++ trunk/Source/WebCore/Modules/applepay/paymentrequest/ApplePayModifier.h 2021-06-04 00:35:06 UTC (rev 278437)
@@ -27,6 +27,7 @@
#if ENABLE(APPLE_PAY) && ENABLE(PAYMENT_REQUEST)
+#include "ApplePayLineItem.h"
#include "ApplePayPaymentMethodType.h"
#include "ApplePayShippingMethod.h"
@@ -38,7 +39,9 @@
struct ApplePayModifier {
std::optional<ApplePayPaymentMethodType> paymentMethodType;
- Vector<ApplePayShippingMethod> additionalShippingOptions;
+ std::optional<ApplePayLineItem> total;
+ Vector<ApplePayLineItem> additionalLineItems;
+ Vector<ApplePayShippingMethod> additionalShippingMethods;
#if defined(ApplePayModifierAdditions_members)
ApplePayModifierAdditions_members
Modified: trunk/Source/WebCore/Modules/applepay/paymentrequest/ApplePayModifier.idl (278436 => 278437)
--- trunk/Source/WebCore/Modules/applepay/paymentrequest/ApplePayModifier.idl 2021-06-04 00:31:45 UTC (rev 278436)
+++ trunk/Source/WebCore/Modules/applepay/paymentrequest/ApplePayModifier.idl 2021-06-04 00:35:06 UTC (rev 278437)
@@ -27,5 +27,7 @@
Conditional=APPLE_PAY&PAYMENT_REQUEST,
] dictionary ApplePayModifier {
ApplePayPaymentMethodType paymentMethodType;
- sequence<ApplePayShippingMethod> additionalShippingOptions;
+ ApplePayLineItem total;
+ sequence<ApplePayLineItem> additionalLineItems;
+ sequence<ApplePayShippingMethod> additionalShippingMethods;
};
Modified: trunk/Source/WebCore/Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp (278436 => 278437)
--- trunk/Source/WebCore/Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp 2021-06-04 00:31:45 UTC (rev 278436)
+++ trunk/Source/WebCore/Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp 2021-06-04 00:35:06 UTC (rev 278437)
@@ -311,16 +311,11 @@
if (modifierException.hasException())
return modifierException.releaseException();
if (auto modifierData = modifierException.releaseReturnValue())
- shippingOptions.appendVector(WTFMove(std::get<1>(*modifierData).additionalShippingOptions));
+ shippingOptions.appendVector(WTFMove(std::get<1>(*modifierData).additionalShippingMethods));
return WTFMove(shippingOptions);
}
-
-#if !ENABLE(APPLE_PAY_LINE_ITEM_DATA)
-static void merge(ApplePayLineItem&, ApplePayModifier&&) { }
-#endif // !ENABLE(APPLE_PAY_LINE_ITEM_DATA)
-
ExceptionOr<std::tuple<ApplePayLineItem, Vector<ApplePayLineItem>>> ApplePayPaymentHandler::computeTotalAndLineItems() const
{
auto& details = m_paymentRequest->paymentDetails();
@@ -357,7 +352,10 @@
return additionalDisplayItems.releaseException();
lineItems.appendVector(additionalDisplayItems.releaseReturnValue());
- merge(total, WTFMove(applePayModifier));
+ if (applePayModifier.total)
+ total = *applePayModifier.total;
+
+ lineItems.appendVector(applePayModifier.additionalLineItems);
}
return {{ WTFMove(total), WTFMove(lineItems) }};
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes