Changeset 282464 in webkit
- Timestamp:
- Sep 15, 2021, 11:37:12 AM (5 years ago)
- Location:
- trunk/Source
- Files:
-
- 14 edited
-
WebCore/ChangeLog (modified) (1 diff)
-
WebCore/Modules/applepay/ApplePayRequestBase.cpp (modified) (2 diffs)
-
WebCore/Modules/applepay/ApplePayRequestBase.h (modified) (2 diffs)
-
WebCore/Modules/applepay/ApplePaySession.cpp (modified) (2 diffs)
-
WebCore/Modules/applepay/PaymentSummaryItems.h (modified) (2 diffs)
-
WebCore/Modules/applepay/cocoa/PaymentSummaryItemsCocoa.mm (modified) (6 diffs)
-
WebCore/Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp (modified) (2 diffs)
-
WebCore/PAL/ChangeLog (modified) (1 diff)
-
WebCore/PAL/pal/spi/cocoa/PassKitSPI.h (modified) (1 diff)
-
WebCore/testing/MockPaymentCoordinator.cpp (modified) (6 diffs)
-
WebCore/testing/MockPaymentCoordinator.h (modified) (2 diffs)
-
WebKit/ChangeLog (modified) (1 diff)
-
WebKit/Platform/cocoa/PaymentAuthorizationPresenter.mm (modified) (5 diffs)
-
WebKit/Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r282463 r282464 1 2021-09-15 Devin Rousso <drousso@apple.com> 2 3 [Payment Request] Clean up some WKA hooks 4 https://bugs.webkit.org/show_bug.cgi?id=230182 5 <rdar://problem/78824639> 6 7 Reviewed by Tim Horton. 8 9 * Modules/applepay/ApplePaySession.cpp: 10 (WebCore::convertAndValidate): 11 (WebCore::merge): 12 * Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp: 13 (WebCore::convertAndValidate): 14 * testing/MockPaymentCoordinator.h: 15 * testing/MockPaymentCoordinator.cpp: 16 (WebCore::MockPaymentCoordinator::showPaymentUI): 17 (WebCore::MockPaymentCoordinator::completeShippingMethodSelection): 18 (WebCore::MockPaymentCoordinator::completeShippingContactSelection): 19 (WebCore::MockPaymentCoordinator::completePaymentMethodSelection): 20 (WebCore::MockPaymentCoordinator::completeCouponCodeChange): 21 (WebCore::MockPaymentCoordinator::merge): 22 Instead of using `#define`, create actual functions so that the code in WKA is cleaner. 23 24 * Modules/applepay/ApplePayRequestBase.h: 25 * Modules/applepay/ApplePayRequestBase.cpp: 26 (WebCore::convertAndValidate): 27 Remove unnecessary WKA hooks. 28 29 * Modules/applepay/PaymentSummaryItems.h: 30 * Modules/applepay/cocoa/PaymentSummaryItemsCocoa.mm: 31 (WebCore::platformRecurringSummaryItem): Added. 32 (WebCore::platformDeferredSummaryItem): Added. 33 (WebCore::platformSummaryItem): Added. 34 (WebCore::toPKPaymentSummaryItem): Deleted. 35 Expose functions that convert `ApplePayLineItem` to `PKPaymentSummaryItem` (and subclasses). 36 1 37 2021-09-15 Ziran Sun <zsun@igalia.com> 2 38 -
trunk/Source/WebCore/Modules/applepay/ApplePayRequestBase.cpp
r278630 r282464 31 31 #include "PaymentCoordinator.h" 32 32 #include <wtf/text/StringConcatenateNumbers.h> 33 34 #if USE(APPLE_INTERNAL_SDK)35 #include <WebKitAdditions/ApplePayRequestBaseAdditions.cpp>36 #endif37 33 38 34 namespace WebCore { … … 128 124 #endif 129 125 130 #if defined(ApplePayRequestBaseAdditions_convertAndValidate_request)131 ApplePayRequestBaseAdditions_convertAndValidate_request132 #endif133 134 126 return WTFMove(result); 135 127 } -
trunk/Source/WebCore/Modules/applepay/ApplePayRequestBase.h
r278630 r282464 34 34 #include "ApplePayShippingContactEditingMode.h" 35 35 36 #if USE(APPLE_INTERNAL_SDK)37 #include <WebKitAdditions/ApplePayRequestBaseAdditions.h>38 #endif39 40 36 namespace WebCore { 41 37 … … 69 65 std::optional<ApplePayShippingContactEditingMode> shippingContactEditingMode; 70 66 #endif 71 72 #if defined(ApplePayRequestBaseAdditions_members)73 ApplePayRequestBaseAdditions_members74 #endif75 67 }; 76 68 -
trunk/Source/WebCore/Modules/applepay/ApplePaySession.cpp
r278630 r282464 143 143 } 144 144 145 #if !USE(APPLE_INTERNAL_SDK) 146 static ExceptionOr<void> merge(ApplePaySessionPaymentRequest&, ApplePayPaymentRequest&) { return { }; } 147 #endif 148 145 149 static ExceptionOr<ApplePaySessionPaymentRequest> convertAndValidate(Document& document, unsigned version, ApplePayPaymentRequest&& paymentRequest, const PaymentCoordinator& paymentCoordinator) 146 150 { … … 172 176 } 173 177 174 #if defined(ApplePaySessionAdditions_convertAndValidate_request) 175 ApplePaySessionAdditions_convertAndValidate_request 176 #endif 178 if (auto mergeResult = merge(result, paymentRequest); mergeResult.hasException()) 179 return mergeResult.releaseException(); 177 180 178 181 // FIXME: Merge this validation into the validation we are doing above. -
trunk/Source/WebCore/Modules/applepay/PaymentSummaryItems.h
r273143 r282464 29 29 30 30 OBJC_CLASS NSArray; 31 OBJC_CLASS PKDeferredPaymentSummaryItem; 32 OBJC_CLASS PKPaymentSummaryItem; 33 OBJC_CLASS PKRecurringPaymentSummaryItem; 31 34 32 35 namespace WebCore { … … 34 37 struct ApplePayLineItem; 35 38 39 #if HAVE(PASSKIT_RECURRING_SUMMARY_ITEM) 40 WEBCORE_EXPORT PKRecurringPaymentSummaryItem *platformRecurringSummaryItem(const ApplePayLineItem&); 41 #endif 42 43 #if HAVE(PASSKIT_DEFERRED_SUMMARY_ITEM) 44 WEBCORE_EXPORT PKDeferredPaymentSummaryItem *platformDeferredSummaryItem(const ApplePayLineItem&); 45 #endif 46 47 WEBCORE_EXPORT PKPaymentSummaryItem *platformSummaryItem(const ApplePayLineItem&); 36 48 WEBCORE_EXPORT NSArray *platformSummaryItems(const ApplePayLineItem& total, const Vector<ApplePayLineItem>&); 37 49 -
trunk/Source/WebCore/Modules/applepay/cocoa/PaymentSummaryItemsCocoa.mm
r278630 r282464 51 51 } 52 52 53 #if HAVE(PASSKIT_RECURRING_ LINE_ITEM) || HAVE(PASSKIT_DEFERRED_LINE_ITEM)53 #if HAVE(PASSKIT_RECURRING_SUMMARY_ITEM) || HAVE(PASSKIT_DEFERRED_SUMMARY_ITEM) 54 54 55 55 static NSDate *toDate(double date) … … 58 58 } 59 59 60 #endif // HAVE(PASSKIT_RECURRING_ LINE_ITEM) || HAVE(PASSKIT_DEFERRED_LINE_ITEM)60 #endif // HAVE(PASSKIT_RECURRING_SUMMARY_ITEM) || HAVE(PASSKIT_DEFERRED_SUMMARY_ITEM) 61 61 62 #if HAVE(PASSKIT_RECURRING_ LINE_ITEM)62 #if HAVE(PASSKIT_RECURRING_SUMMARY_ITEM) 63 63 64 64 static NSCalendarUnit toCalendarUnit(ApplePayRecurringPaymentDateUnit unit) … … 82 82 } 83 83 84 #endif // HAVE(PASSKIT_RECURRING_LINE_ITEM) 84 PKRecurringPaymentSummaryItem *platformRecurringSummaryItem(const ApplePayLineItem& lineItem) 85 { 86 ASSERT(lineItem.paymentTiming == ApplePayPaymentTiming::Recurring); 87 PKRecurringPaymentSummaryItem *summaryItem = [PAL::getPKRecurringPaymentSummaryItemClass() summaryItemWithLabel:lineItem.label amount:toDecimalNumber(lineItem.amount) type:toPKPaymentSummaryItemType(lineItem.type)]; 88 if (!std::isnan(lineItem.recurringPaymentStartDate)) 89 summaryItem.startDate = toDate(lineItem.recurringPaymentStartDate); 90 summaryItem.intervalUnit = toCalendarUnit(lineItem.recurringPaymentIntervalUnit); 91 summaryItem.intervalCount = lineItem.recurringPaymentIntervalCount; 92 if (!std::isnan(lineItem.recurringPaymentEndDate)) 93 summaryItem.endDate = toDate(lineItem.recurringPaymentEndDate); 94 return summaryItem; 95 } 85 96 86 static PKPaymentSummaryItem *toPKPaymentSummaryItem(const ApplePayLineItem& lineItem) 97 #endif // HAVE(PASSKIT_RECURRING_SUMMARY_ITEM) 98 99 #if HAVE(PASSKIT_DEFERRED_SUMMARY_ITEM) 100 101 PKDeferredPaymentSummaryItem *platformDeferredSummaryItem(const ApplePayLineItem& lineItem) 87 102 { 88 #if HAVE(PASSKIT_RECURRING_LINE_ITEM) || HAVE(PASSKIT_DEFERRED_LINE_ITEM) 103 ASSERT(lineItem.paymentTiming == ApplePayPaymentTiming::Deferred); 104 PKDeferredPaymentSummaryItem *summaryItem = [PAL::getPKDeferredPaymentSummaryItemClass() summaryItemWithLabel:lineItem.label amount:toDecimalNumber(lineItem.amount) type:toPKPaymentSummaryItemType(lineItem.type)]; 105 if (!std::isnan(lineItem.deferredPaymentDate)) 106 summaryItem.deferredDate = toDate(lineItem.deferredPaymentDate); 107 return summaryItem; 108 } 109 110 #endif // HAVE(PASSKIT_DEFERRED_SUMMARY_ITEM) 111 112 PKPaymentSummaryItem *platformSummaryItem(const ApplePayLineItem& lineItem) 113 { 114 #if HAVE(PASSKIT_RECURRING_SUMMARY_ITEM) || HAVE(PASSKIT_DEFERRED_SUMMARY_ITEM) 89 115 switch (lineItem.paymentTiming) { 90 116 case ApplePayPaymentTiming::Immediate: … … 92 118 93 119 case ApplePayPaymentTiming::Recurring: 94 #if HAVE(PASSKIT_RECURRING_LINE_ITEM) 95 { 96 PKRecurringPaymentSummaryItem *summaryItem = [PAL::getPKRecurringPaymentSummaryItemClass() summaryItemWithLabel:lineItem.label amount:toDecimalNumber(lineItem.amount) type:toPKPaymentSummaryItemType(lineItem.type)]; 97 if (!std::isnan(lineItem.recurringPaymentStartDate)) 98 summaryItem.startDate = toDate(lineItem.recurringPaymentStartDate); 99 summaryItem.intervalUnit = toCalendarUnit(lineItem.recurringPaymentIntervalUnit); 100 summaryItem.intervalCount = lineItem.recurringPaymentIntervalCount; 101 if (!std::isnan(lineItem.recurringPaymentEndDate)) 102 summaryItem.endDate = toDate(lineItem.recurringPaymentEndDate); 103 return summaryItem; 104 } 120 #if HAVE(PASSKIT_RECURRING_SUMMARY_ITEM) 121 return platformRecurringSummaryItem(lineItem); 105 122 #else 106 123 break; … … 108 125 109 126 case ApplePayPaymentTiming::Deferred: 110 #if HAVE(PASSKIT_DEFERRED_LINE_ITEM) 111 { 112 PKDeferredPaymentSummaryItem *summaryItem = [PAL::getPKDeferredPaymentSummaryItemClass() summaryItemWithLabel:lineItem.label amount:toDecimalNumber(lineItem.amount) type:toPKPaymentSummaryItemType(lineItem.type)]; 113 if (!std::isnan(lineItem.deferredPaymentDate)) 114 summaryItem.deferredDate = toDate(lineItem.deferredPaymentDate); 115 return summaryItem; 116 } 127 #if HAVE(PASSKIT_DEFERRED_SUMMARY_ITEM) 128 return platformDeferredSummaryItem(lineItem); 117 129 #else 118 130 break; … … 128 140 NSMutableArray *paymentSummaryItems = [NSMutableArray arrayWithCapacity:lineItems.size() + 1]; 129 141 for (auto& lineItem : lineItems) { 130 if (PKPaymentSummaryItem *summaryItem = toPKPaymentSummaryItem(lineItem))142 if (PKPaymentSummaryItem *summaryItem = platformSummaryItem(lineItem)) 131 143 [paymentSummaryItems addObject:summaryItem]; 132 144 } 133 145 134 if (PKPaymentSummaryItem *totalItem = toPKPaymentSummaryItem(total))146 if (PKPaymentSummaryItem *totalItem = platformSummaryItem(total)) 135 147 [paymentSummaryItems addObject:totalItem]; 136 148 -
trunk/Source/WebCore/Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp
r280459 r282464 228 228 } 229 229 230 #if ! ENABLE(APPLE_PAY_PAYMENT_DETAILS_DATA)230 #if !USE(APPLE_INTERNAL_SDK) 231 231 static void merge(ApplePaySessionPaymentRequest&, ApplePayModifier&&) { } 232 #endif // !ENABLE(APPLE_PAY_PAYMENT_DETAILS_DATA)232 #endif 233 233 234 234 ExceptionOr<void> ApplePayPaymentHandler::show(Document& document) … … 538 538 } 539 539 540 #if ! ENABLE(APPLE_PAY_PAYMENT_DETAILS_DATA)540 #if !USE(APPLE_INTERNAL_SDK) 541 541 static void merge(ApplePayDetailsUpdateBase&, ApplePayModifier&&) { } 542 #endif // !ENABLE(APPLE_PAY_PAYMENT_DETAILS_DATA)542 #endif 543 543 544 544 ExceptionOr<void> ApplePayPaymentHandler::shippingAddressUpdated(Vector<RefPtr<ApplePayError>>&& errors) -
trunk/Source/WebCore/PAL/ChangeLog
r282398 r282464 1 2021-09-15 Devin Rousso <drousso@apple.com> 2 3 [Payment Request] Clean up some WKA hooks 4 https://bugs.webkit.org/show_bug.cgi?id=230182 5 <rdar://problem/78824639> 6 7 Reviewed by Tim Horton. 8 9 * pal/spi/cocoa/PassKitSPI.h: 10 1 11 2021-09-14 Myles C. Maxfield <mmaxfield@apple.com> 2 12 -
trunk/Source/WebCore/PAL/pal/spi/cocoa/PassKitSPI.h
r280459 r282464 72 72 #endif 73 73 74 #import <WebKitAdditions/PassKitSPIAdditions.h> 75 74 76 #else 75 77 -
trunk/Source/WebCore/testing/MockPaymentCoordinator.cpp
r280459 r282464 122 122 m_shippingContactEditingMode = request.shippingContactEditingMode(); 123 123 #endif 124 #if defined(MockPaymentCoordinatorAdditions_showPaymentUI) 125 MockPaymentCoordinatorAdditions_showPaymentUI 126 #endif 124 merge(request); 127 125 128 126 ASSERT(showCount == hideCount); … … 151 149 m_shippingMethods = WTFMove(shippingMethodUpdate->newShippingMethods); 152 150 #endif 153 #if defined(MockPaymentCoordinatorAdditions_completeShippingMethodSelection) 154 MockPaymentCoordinatorAdditions_completeShippingMethodSelection 155 #endif 151 merge(*shippingMethodUpdate); 156 152 } 157 153 … … 175 171 m_shippingMethods = WTFMove(shippingContactUpdate->newShippingMethods); 176 172 m_errors = convert(WTFMove(shippingContactUpdate->errors)); 177 #if defined(MockPaymentCoordinatorAdditions_completeShippingContactSelection) 178 MockPaymentCoordinatorAdditions_completeShippingContactSelection 179 #endif 173 merge(*shippingContactUpdate); 180 174 } 181 175 … … 191 185 m_errors = convert(WTFMove(paymentMethodUpdate->errors)); 192 186 #endif 193 #if defined(MockPaymentCoordinatorAdditions_completePaymentMethodSelection) 194 MockPaymentCoordinatorAdditions_completePaymentMethodSelection 195 #endif 187 merge(*paymentMethodUpdate); 196 188 } 197 189 … … 207 199 m_shippingMethods = WTFMove(couponCodeUpdate->newShippingMethods); 208 200 m_errors = convert(WTFMove(couponCodeUpdate->errors)); 209 #if defined(MockPaymentCoordinatorAdditions_completeCouponCodeChange) 210 MockPaymentCoordinatorAdditions_completeCouponCodeChange 211 #endif 201 merge(*couponCodeUpdate); 212 202 } 213 203 … … 307 297 } 308 298 299 #if !USE(APPLE_INTERNAL_SDK) 300 void MockPaymentCoordinator::merge(const ApplePaySessionPaymentRequest&) { } 301 void MockPaymentCoordinator::merge(ApplePayDetailsUpdateBase&) { } 302 #endif 303 309 304 } // namespace WebCore 310 305 -
trunk/Source/WebCore/testing/MockPaymentCoordinator.h
r279635 r282464 46 46 namespace WebCore { 47 47 48 class ApplePaySessionPaymentRequest; 48 49 class Page; 50 struct ApplePayDetailsUpdateBase; 49 51 struct ApplePayPaymentMethod; 50 52 … … 118 120 void dispatchIfShowing(Function<void()>&&); 119 121 122 void merge(const ApplePaySessionPaymentRequest&); 123 void merge(ApplePayDetailsUpdateBase&); 124 120 125 Page& m_page; 121 126 bool m_canMakePayments { true }; -
trunk/Source/WebKit/ChangeLog
r282456 r282464 1 2021-09-15 Devin Rousso <drousso@apple.com> 2 3 [Payment Request] Clean up some WKA hooks 4 https://bugs.webkit.org/show_bug.cgi?id=230182 5 <rdar://problem/78824639> 6 7 Reviewed by Tim Horton. 8 9 * Platform/cocoa/PaymentAuthorizationPresenter.mm: 10 (WebKit::merge): 11 (WebKit::PaymentAuthorizationPresenter::completePaymentMethodSelection): 12 (WebKit::PaymentAuthorizationPresenter::completeShippingContactSelection): 13 (WebKit::PaymentAuthorizationPresenter::completeShippingMethodSelection): 14 (WebKit::PaymentAuthorizationPresenter::completeCouponCodeChange): 15 * Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: 16 (WebKit::merge): 17 (WebKit::WebPaymentCoordinatorProxy::platformPaymentRequest): 18 Instead of using `#define`, create actual functions so that the code in WKA is cleaner. 19 1 20 2021-09-15 Michael Catanzaro <mcatanzaro@gnome.org> 2 21 -
trunk/Source/WebKit/Platform/cocoa/PaymentAuthorizationPresenter.mm
r280459 r282464 209 209 } 210 210 211 #if !USE(APPLE_INTERNAL_SDK) 212 static void merge(PKPaymentRequestUpdate *, WebCore::ApplePayDetailsUpdateBase&) { } 213 #endif 214 211 215 void PaymentAuthorizationPresenter::completePaymentMethodSelection(std::optional<WebCore::ApplePayPaymentMethodUpdate>&& update) 212 216 { … … 225 229 [paymentMethodUpdate setInstallmentGroupIdentifier:WTFMove(update->installmentGroupIdentifier)]; 226 230 #endif // HAVE(PASSKIT_INSTALLMENTS) && ENABLE(APPLE_PAY_INSTALLMENTS) 227 #if defined(PaymentAuthorizationPresenterAdditions_completePaymentMethodSelection) 228 PaymentAuthorizationPresenterAdditions_completePaymentMethodSelection 229 #endif 231 merge(paymentMethodUpdate.get(), *update); 230 232 [platformDelegate() completePaymentMethodSelection:paymentMethodUpdate.get()]; 231 233 } … … 250 252 paymentSummaryItems:WebCore::platformSummaryItems(WTFMove(update->newTotal), WTFMove(update->newLineItems)) 251 253 shippingMethods:toPKShippingMethods(WTFMove(update->newShippingMethods)).get()]); 252 #if defined(PaymentAuthorizationPresenterAdditions_completeShippingContactSelection) 253 PaymentAuthorizationPresenterAdditions_completeShippingContactSelection 254 #endif 254 merge(shippingContactUpdate.get(), *update); 255 255 [platformDelegate() completeShippingContactSelection:shippingContactUpdate.get()]; 256 256 } … … 268 268 [shippingMethodUpdate setShippingMethods:toPKShippingMethods(WTFMove(update->newShippingMethods)).get()]; 269 269 #endif 270 #if defined(PaymentAuthorizationPresenterAdditions_completeShippingMethodSelection) 271 PaymentAuthorizationPresenterAdditions_completeShippingMethodSelection 272 #endif 270 merge(shippingMethodUpdate.get(), *update); 273 271 [platformDelegate() completeShippingMethodSelection:shippingMethodUpdate.get()]; 274 272 } … … 285 283 286 284 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()]); 287 #if defined(PaymentAuthorizationPresenterAdditions_completeCouponCodeChange) 288 PaymentAuthorizationPresenterAdditions_completeCouponCodeChange 289 #endif 285 merge(couponCodeUpdate.get(), *update); 290 286 [platformDelegate() completeCouponCodeChange:couponCodeUpdate.get()]; 291 287 } -
trunk/Source/WebKit/Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm
r278630 r282464 242 242 } 243 243 244 #if !USE(APPLE_INTERNAL_SDK) 245 static void merge(PKPaymentRequest *, const WebCore::ApplePaySessionPaymentRequest&) { } 246 #endif 247 244 248 RetainPtr<PKPaymentRequest> WebPaymentCoordinatorProxy::platformPaymentRequest(const URL& originatingURL, const Vector<URL>& linkIconURLs, const WebCore::ApplePaySessionPaymentRequest& paymentRequest) 245 249 { … … 322 326 #endif 323 327 324 #if defined(WebPaymentCoordinatorProxyCocoaAdditions_platformPaymentRequest) 325 WebPaymentCoordinatorProxyCocoaAdditions_platformPaymentRequest 326 #endif 328 merge(result.get(), paymentRequest); 327 329 328 330 return result;
Note:
See TracChangeset
for help on using the changeset viewer.