Changeset 225849 in webkit
- Timestamp:
- Dec 13, 2017 10:02:28 AM (6 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 4 deleted
- 17 edited
- 3 copied
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r225848 r225849 1 2017-12-13 Andy Estes <aestes@apple.com> 2 3 [Payment Request] Remove ApplePayPaymentMethodUpdateEvent and use PaymentDetailsModifiers instead 4 https://bugs.webkit.org/show_bug.cgi?id=180737 5 <rdar://problem/36013152> 6 7 Reviewed by Brady Eidson. 8 9 * http/tests/ssl/applepay/ApplePayPaymentDetailsModifier.https-expected.txt: Added. 10 * http/tests/ssl/applepay/ApplePayPaymentDetailsModifier.https.html: Added. 11 * http/tests/ssl/applepay/ApplePayPaymentMethodUpdateEvent.https-expected.txt: Removed. 12 * http/tests/ssl/applepay/ApplePayPaymentMethodUpdateEvent.https.html: Removed. 13 1 14 2017-12-13 Matt Lewis <jlewis3@apple.com> 2 15 -
trunk/Source/WebCore/ChangeLog
r225837 r225849 1 2017-12-13 Andy Estes <aestes@apple.com> 2 3 [Payment Request] Remove ApplePayPaymentMethodUpdateEvent and use PaymentDetailsModifiers instead 4 https://bugs.webkit.org/show_bug.cgi?id=180737 5 <rdar://problem/36013152> 6 7 Reviewed by Brady Eidson. 8 9 Instead of firing a non-standard "applepaypaymentmethodupdate" event when the payment method 10 changes, use the PaymentDetailsModifier mechanism to allow the merchant to specify override 11 totals and additional display items per payment method type. 12 13 Test: http/tests/ssl/applepay/ApplePayPaymentDetailsModifier.https.html 14 15 * DerivedSources.make: 16 * Modules/applepay/ApplePayLineItem.idl: 17 * Modules/applepay/ApplePayPaymentMethod.h: 18 * Modules/applepay/ApplePayPaymentMethod.idl: 19 * Modules/applepay/ApplePayPaymentMethodType.h: Added. 20 * Modules/applepay/ApplePayPaymentMethodType.idl: Added. 21 * Modules/applepay/cocoa/PaymentMethodCocoa.mm: 22 * Modules/applepay/paymentrequest/ApplePayModifier.h: Added. 23 * Modules/applepay/paymentrequest/ApplePayModifier.idl: Added. 24 * Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp: 25 (WebCore::ApplePayPaymentHandler::show): 26 (WebCore::ApplePayPaymentHandler::computeTotalAndLineItems): 27 (WebCore::ApplePayPaymentHandler::detailsUpdated): 28 (WebCore::ApplePayPaymentHandler::shippingAddressUpdated): 29 (WebCore::ApplePayPaymentHandler::shippingOptionUpdated): 30 (WebCore::ApplePayPaymentHandler::paymentMethodUpdated): 31 (WebCore::ApplePayPaymentHandler::didSelectPaymentMethod): 32 * Modules/applepay/paymentrequest/ApplePayPaymentHandler.h: 33 * Modules/applepay/paymentrequest/ApplePayPaymentMethodUpdateEvent.cpp: Removed. 34 * Modules/applepay/paymentrequest/ApplePayPaymentMethodUpdateEvent.h: Removed. 35 * Modules/paymentrequest/PaymentRequest.h: 36 * Modules/paymentrequest/PaymentRequest.idl: 37 * WebCore.xcodeproj/project.pbxproj: 38 * dom/EventNames.h: 39 * dom/EventNames.in: 40 * testing/MockPaymentCoordinator.cpp: 41 (WebCore::convert): 42 (WebCore::MockPaymentCoordinator::updateTotalAndLineItems): 43 (WebCore::MockPaymentCoordinator::completeShippingMethodSelection): 44 (WebCore::MockPaymentCoordinator::completeShippingContactSelection): 45 (WebCore::MockPaymentCoordinator::completePaymentMethodSelection): 46 * testing/MockPaymentCoordinator.h: 47 * testing/MockPaymentCoordinator.idl: 48 1 49 2017-12-12 Zalan Bujtas <zalan@apple.com> 2 50 -
trunk/Source/WebCore/DerivedSources.make
r225816 r225849 98 98 $(WebCore)/Modules/applepay/ApplePayPaymentMethod.idl \ 99 99 $(WebCore)/Modules/applepay/ApplePayPaymentMethodSelectedEvent.idl \ 100 $(WebCore)/Modules/applepay/ApplePayPaymentMethodType.idl \ 100 101 $(WebCore)/Modules/applepay/ApplePayPaymentMethodUpdate.idl \ 101 102 $(WebCore)/Modules/applepay/ApplePayPaymentPass.idl \ … … 110 111 $(WebCore)/Modules/applepay/ApplePayValidateMerchantEvent.idl \ 111 112 $(WebCore)/Modules/applepay/paymentrequest/ApplePayMerchantValidationEvent.idl \ 112 $(WebCore)/Modules/applepay/paymentrequest/ApplePay PaymentMethodUpdateEvent.idl \113 $(WebCore)/Modules/applepay/paymentrequest/ApplePayModifier.idl \ 113 114 $(WebCore)/Modules/applepay/paymentrequest/ApplePayRequest.idl \ 114 115 $(WebCore)/Modules/beacon/NavigatorBeacon.idl \ -
trunk/Source/WebCore/Modules/applepay/ApplePayLineItem.idl
r209927 r225849 33 33 [ 34 34 Conditional=APPLE_PAY, 35 ExportMacro=WEBCORE_EXPORT, 36 JSGenerateToJSObject, 35 37 ] dictionary ApplePayLineItem { 36 38 ApplePayLineItemType type = "final"; -
trunk/Source/WebCore/Modules/applepay/ApplePayPaymentMethod.h
r209927 r225849 33 33 namespace WebCore { 34 34 35 enum class ApplePayPaymentMethodType { Debit, Credit, Prepaid, Store };35 enum class ApplePayPaymentMethodType; 36 36 37 37 struct ApplePayPaymentMethod { -
trunk/Source/WebCore/Modules/applepay/ApplePayPaymentMethod.idl
r223945 r225849 26 26 [ 27 27 Conditional=APPLE_PAY, 28 ] enum ApplePayPaymentMethodType {29 "debit",30 "credit",31 "prepaid",32 "store"33 };34 35 [36 Conditional=APPLE_PAY,37 28 ExportMacro=WEBCORE_EXPORT, 38 29 JSGenerateToJSObject -
trunk/Source/WebCore/Modules/applepay/ApplePayPaymentMethodType.h
r225848 r225849 24 24 */ 25 25 26 [ 27 Conditional=APPLE_PAY&PAYMENT_REQUEST, 28 NoInterfaceObject, 29 ] interface ApplePayPaymentMethodUpdateEvent : PaymentRequestUpdateEvent { 30 [CachedAttribute] readonly attribute ApplePayPaymentMethod paymentMethod; 26 #pragma once 27 28 #if ENABLE(APPLE_PAY) 29 30 namespace WebCore { 31 32 enum class ApplePayPaymentMethodType { 33 Debit, 34 Credit, 35 Prepaid, 36 Store, 31 37 }; 38 39 } // namespace WebCore 40 41 #endif // ENABLE(APPLE_PAY) -
trunk/Source/WebCore/Modules/applepay/ApplePayPaymentMethodType.idl
r225848 r225849 25 25 26 26 [ 27 Conditional=APPLE_PAY&PAYMENT_REQUEST, 28 NoInterfaceObject, 29 ] interface ApplePayPaymentMethodUpdateEvent : PaymentRequestUpdateEvent { 30 [CachedAttribute] readonly attribute ApplePayPaymentMethod paymentMethod; 27 Conditional=APPLE_PAY, 28 ] enum ApplePayPaymentMethodType { 29 "debit", 30 "credit", 31 "prepaid", 32 "store" 31 33 }; -
trunk/Source/WebCore/Modules/applepay/cocoa/PaymentMethodCocoa.mm
r220506 r225849 30 30 31 31 #import "ApplePayPaymentMethod.h" 32 #import "ApplePayPaymentMethodType.h" 32 33 #import <pal/spi/cocoa/PassKitSPI.h> 33 34 -
trunk/Source/WebCore/Modules/applepay/paymentrequest/ApplePayModifier.h
r225848 r225849 24 24 */ 25 25 26 [ 27 Conditional=APPLE_PAY&PAYMENT_REQUEST, 28 NoInterfaceObject, 29 ] interface ApplePayPaymentMethodUpdateEvent : PaymentRequestUpdateEvent { 30 [CachedAttribute] readonly attribute ApplePayPaymentMethod paymentMethod; 26 #pragma once 27 28 #if ENABLE(APPLE_PAY) && ENABLE(PAYMENT_REQUEST) 29 30 #include "ApplePayPaymentMethodType.h" 31 32 namespace WebCore { 33 34 struct ApplePayModifier { 35 ApplePayPaymentMethodType paymentMethodType; 31 36 }; 37 38 } // namespace WebCore 39 40 #endif // ENABLE(APPLE_PAY) && ENABLE(PAYMENT_REQUEST) -
trunk/Source/WebCore/Modules/applepay/paymentrequest/ApplePayModifier.idl
r225848 r225849 26 26 [ 27 27 Conditional=APPLE_PAY&PAYMENT_REQUEST, 28 NoInterfaceObject, 29 ] interface ApplePayPaymentMethodUpdateEvent : PaymentRequestUpdateEvent { 30 [CachedAttribute] readonly attribute ApplePayPaymentMethod paymentMethod; 28 ] dictionary ApplePayModifier { 29 required ApplePayPaymentMethodType paymentMethodType; 31 30 }; -
trunk/Source/WebCore/Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp
r223962 r225849 32 32 #include "ApplePayMerchantCapability.h" 33 33 #include "ApplePayMerchantValidationEvent.h" 34 #include "ApplePayModifier.h" 34 35 #include "ApplePayPayment.h" 35 #include "ApplePayPaymentMethodUpdateEvent.h"36 36 #include "ApplePaySessionPaymentRequest.h" 37 37 #include "Document.h" … … 191 191 if (convertedLineItems.hasException()) 192 192 return convertedLineItems.releaseException(); 193 194 auto lineItems = convertedLineItems.releaseReturnValue(); 195 for (auto& modifier : m_paymentRequest->paymentDetails().modifiers) { 196 auto convertedIdentifier = convertAndValidatePaymentMethodIdentifier(modifier.supportedMethods); 197 if (!convertedIdentifier || !handlesIdentifier(*convertedIdentifier)) 198 continue; 199 200 auto additionalDisplayItems = convertAndValidate(modifier.additionalDisplayItems, expectedCurrency); 201 if (additionalDisplayItems.hasException()) 202 return additionalDisplayItems.releaseException(); 203 204 lineItems.appendVector(additionalDisplayItems.releaseReturnValue()); 205 } 206 request.setLineItems(lineItems); 193 request.setLineItems(convertedLineItems.releaseReturnValue()); 207 194 208 195 request.setRequiredShippingContactFields(convert(m_paymentRequest->paymentOptions())); … … 256 243 } 257 244 258 static ExceptionOr<ApplePaySessionPaymentRequest::TotalAndLineItems> convertAndValidate(const PaymentDetailsInit& details) 259 { 245 ExceptionOr<ApplePaySessionPaymentRequest::TotalAndLineItems> ApplePayPaymentHandler::computeTotalAndLineItems() 246 { 247 auto& details = m_paymentRequest->paymentDetails(); 260 248 String currency = details.total.amount.currency; 261 auto total = convertAndValidate(details.total, currency); 262 if (total.hasException()) 263 return total.releaseException(); 264 265 auto lineItems = convertAndValidate(details.displayItems, currency); 266 if (lineItems.hasException()) 267 return lineItems.releaseException(); 268 269 return ApplePaySessionPaymentRequest::TotalAndLineItems { total.releaseReturnValue(), lineItems.releaseReturnValue() }; 249 250 auto convertedTotal = convertAndValidate(details.total, currency); 251 if (convertedTotal.hasException()) 252 return convertedTotal.releaseException(); 253 auto total = convertedTotal.releaseReturnValue(); 254 255 auto convertedLineItems = convertAndValidate(details.displayItems, currency); 256 if (convertedLineItems.hasException()) 257 return convertedLineItems.releaseException(); 258 auto lineItems = convertedLineItems.releaseReturnValue(); 259 260 if (!m_selectedPaymentMethodType) 261 return ApplePaySessionPaymentRequest::TotalAndLineItems { WTFMove(total), WTFMove(lineItems) }; 262 263 auto& modifiers = details.modifiers; 264 auto& serializedModifierData = m_paymentRequest->serializedModifierData(); 265 ASSERT(modifiers.size() == serializedModifierData.size()); 266 for (size_t i = 0; i < modifiers.size(); ++i) { 267 auto convertedIdentifier = convertAndValidatePaymentMethodIdentifier(modifiers[i].supportedMethods); 268 if (!convertedIdentifier || !handlesIdentifier(*convertedIdentifier)) 269 continue; 270 271 if (serializedModifierData[i].isEmpty()) 272 continue; 273 274 auto& execState = *document().execState(); 275 auto scope = DECLARE_THROW_SCOPE(execState.vm()); 276 JSC::JSValue data; 277 { 278 auto lock = JSC::JSLockHolder { &execState }; 279 data = JSONParse(&execState, serializedModifierData[i]); 280 if (scope.exception()) 281 return Exception { ExistingExceptionError }; 282 } 283 284 auto applePayModifier = convertDictionary<ApplePayModifier>(execState, WTFMove(data)); 285 if (scope.exception()) 286 return Exception { ExistingExceptionError }; 287 288 if (applePayModifier.paymentMethodType != *m_selectedPaymentMethodType) 289 continue; 290 291 if (modifiers[i].total) { 292 auto totalOverride = convertAndValidate(*modifiers[i].total, currency); 293 if (totalOverride.hasException()) 294 return totalOverride.releaseException(); 295 total = totalOverride.releaseReturnValue(); 296 } 297 298 auto additionalDisplayItems = convertAndValidate(modifiers[i].additionalDisplayItems, currency); 299 if (additionalDisplayItems.hasException()) 300 return additionalDisplayItems.releaseException(); 301 lineItems.appendVector(additionalDisplayItems.releaseReturnValue()); 302 break; 303 } 304 305 return ApplePaySessionPaymentRequest::TotalAndLineItems { WTFMove(total), WTFMove(lineItems) }; 270 306 } 271 307 … … 277 313 if (eventType == eventNames().shippingoptionchangeEvent) 278 314 return shippingOptionUpdated(); 279 280 if (eventType == eventNames().applepaypaymentmethodchangedEvent)281 return paymentMethodUpdated();282 315 283 316 ASSERT_NOT_REACHED(); … … 296 329 } 297 330 298 auto newTotalAndLineItems = co nvertAndValidate(m_paymentRequest->paymentDetails());331 auto newTotalAndLineItems = computeTotalAndLineItems(); 299 332 if (newTotalAndLineItems.hasException()) 300 333 return newTotalAndLineItems.releaseException(); … … 309 342 ShippingMethodUpdate update; 310 343 311 auto newTotalAndLineItems = co nvertAndValidate(m_paymentRequest->paymentDetails());344 auto newTotalAndLineItems = computeTotalAndLineItems(); 312 345 if (newTotalAndLineItems.hasException()) 313 346 return newTotalAndLineItems.releaseException(); … … 322 355 PaymentMethodUpdate update; 323 356 324 auto newTotalAndLineItems = co nvertAndValidate(m_paymentRequest->paymentDetails());357 auto newTotalAndLineItems = computeTotalAndLineItems(); 325 358 if (newTotalAndLineItems.hasException()) 326 359 return newTotalAndLineItems.releaseException(); … … 386 419 void ApplePayPaymentHandler::didSelectPaymentMethod(const PaymentMethod& paymentMethod) 387 420 { 388 auto event = ApplePayPaymentMethodUpdateEvent::create(eventNames().applepaypaymentmethodchangedEvent, paymentMethod.toApplePayPaymentMethod(), m_paymentRequest.get());389 m_paymentRequest->dispatchEvent(event.get());421 m_selectedPaymentMethodType = paymentMethod.toApplePayPaymentMethod().type; 422 paymentMethodUpdated(); 390 423 } 391 424 -
trunk/Source/WebCore/Modules/applepay/paymentrequest/ApplePayPaymentHandler.h
r223962 r225849 28 28 #if ENABLE(APPLE_PAY) && ENABLE(PAYMENT_REQUEST) 29 29 30 #include "ApplePayPaymentMethodType.h" 30 31 #include "ApplePayRequest.h" 31 32 #include "ContextDestructionObserver.h" … … 52 53 PaymentCoordinator& paymentCoordinator(); 53 54 55 ExceptionOr<ApplePaySessionPaymentRequest::TotalAndLineItems> computeTotalAndLineItems(); 56 54 57 ExceptionOr<void> shippingAddressUpdated(const String& error); 55 58 ExceptionOr<void> shippingOptionUpdated(); … … 75 78 Ref<PaymentRequest> m_paymentRequest; 76 79 std::optional<ApplePayRequest> m_applePayRequest; 80 std::optional<ApplePayPaymentMethodType> m_selectedPaymentMethodType; 77 81 }; 78 82 -
trunk/Source/WebCore/Modules/paymentrequest/PaymentRequest.h
r224606 r225849 76 76 const PaymentOptions& paymentOptions() const { return m_options; } 77 77 const PaymentDetailsInit& paymentDetails() const { return m_details; } 78 const Vector<String>& serializedModifierData() const { return m_serializedModifierData; } 78 79 79 80 void shippingAddressChanged(Ref<PaymentAddress>&&); -
trunk/Source/WebCore/Modules/paymentrequest/PaymentRequest.idl
r223945 r225849 46 46 47 47 [Conditional=APPLE_PAY] attribute EventHandler onapplepayvalidatemerchant; 48 [Conditional=APPLE_PAY] attribute EventHandler onapplepaypaymentmethodchanged;49 48 }; -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r225836 r225849 2731 2731 A1C1507A1E3F2B3E0032C98C /* PreviewConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = A1C150781E3F2B3E0032C98C /* PreviewConverter.h */; }; 2732 2732 A1C2C5761FA2851600BA46FA /* PaymentSession.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1C2C5751FA2851600BA46FA /* PaymentSession.cpp */; }; 2733 A1CBEF531F9EEE750028DE7C /* ApplePayPaymentMethodUpdateEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = A1CBEF501F9EEE750028DE7C /* ApplePayPaymentMethodUpdateEvent.h */; };2734 A1CBEF541F9EEE750028DE7C /* ApplePayPaymentMethodUpdateEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1CBEF511F9EEE750028DE7C /* ApplePayPaymentMethodUpdateEvent.cpp */; };2735 A1CBEF611F9F09040028DE7C /* JSApplePayPaymentMethodUpdateEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1CBEF5F1F9F09020028DE7C /* JSApplePayPaymentMethodUpdateEvent.cpp */; };2736 A1CBEF621F9F09040028DE7C /* JSApplePayPaymentMethodUpdateEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = A1CBEF601F9F09020028DE7C /* JSApplePayPaymentMethodUpdateEvent.h */; };2737 2733 A1CBEF641F9F11290028DE7C /* MockPaymentMethod.h in Headers */ = {isa = PBXBuildFile; fileRef = A1CBEF631F9F11290028DE7C /* MockPaymentMethod.h */; }; 2738 2734 A1CC56671F46147A00A4555B /* JSPaymentAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = A1CC56651F46146800A4555B /* JSPaymentAddress.h */; }; … … 2767 2763 A1F600581F4765050077E83F /* JSPaymentRequestUpdateEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = A1F600521F4765010077E83F /* JSPaymentRequestUpdateEvent.h */; }; 2768 2764 A1F6005A1F4765050077E83F /* JSPaymentDetailsUpdate.h in Headers */ = {isa = PBXBuildFile; fileRef = A1F600541F4765040077E83F /* JSPaymentDetailsUpdate.h */; }; 2765 A1F6CFFF1FE096210018078C /* ApplePayModifier.h in Headers */ = {isa = PBXBuildFile; fileRef = A1F6CFFC1FE096210018078C /* ApplePayModifier.h */; }; 2766 A1F6D0061FE096F60018078C /* ApplePayPaymentMethodType.h in Headers */ = {isa = PBXBuildFile; fileRef = A1F6D0031FE096F60018078C /* ApplePayPaymentMethodType.h */; }; 2767 A1F6D00F1FE099940018078C /* JSApplePayPaymentMethodType.h in Headers */ = {isa = PBXBuildFile; fileRef = A1F6D00E1FE099640018078C /* JSApplePayPaymentMethodType.h */; }; 2768 A1F6D0101FE099960018078C /* JSApplePayPaymentMethodType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F6D00D1FE099640018078C /* JSApplePayPaymentMethodType.cpp */; }; 2769 A1F6D0111FE099B20018078C /* JSApplePayModifier.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F6D00A1FE099210018078C /* JSApplePayModifier.cpp */; }; 2770 A1F6D0121FE099B40018078C /* JSApplePayModifier.h in Headers */ = {isa = PBXBuildFile; fileRef = A1F6D00C1FE099220018078C /* JSApplePayModifier.h */; }; 2769 2771 A1F76B131F44C2450014C318 /* PaymentRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A1F76B101F44C2450014C318 /* PaymentRequest.h */; }; 2770 2772 A1F76B191F44C3900014C318 /* PaymentMethodData.h in Headers */ = {isa = PBXBuildFile; fileRef = A1F76B161F44C3900014C318 /* PaymentMethodData.h */; }; … … 10555 10557 A1C2C5751FA2851600BA46FA /* PaymentSession.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = PaymentSession.cpp; sourceTree = "<group>"; }; 10556 10558 A1C7FAA1133A5D3500D6732D /* JSXPathResultCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSXPathResultCustom.cpp; sourceTree = "<group>"; }; 10557 A1CBEF501F9EEE750028DE7C /* ApplePayPaymentMethodUpdateEvent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ApplePayPaymentMethodUpdateEvent.h; sourceTree = "<group>"; };10558 A1CBEF511F9EEE750028DE7C /* ApplePayPaymentMethodUpdateEvent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ApplePayPaymentMethodUpdateEvent.cpp; sourceTree = "<group>"; };10559 A1CBEF521F9EEE750028DE7C /* ApplePayPaymentMethodUpdateEvent.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = ApplePayPaymentMethodUpdateEvent.idl; sourceTree = "<group>"; };10560 A1CBEF5F1F9F09020028DE7C /* JSApplePayPaymentMethodUpdateEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSApplePayPaymentMethodUpdateEvent.cpp; sourceTree = "<group>"; };10561 A1CBEF601F9F09020028DE7C /* JSApplePayPaymentMethodUpdateEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSApplePayPaymentMethodUpdateEvent.h; sourceTree = "<group>"; };10562 10559 A1CBEF631F9F11290028DE7C /* MockPaymentMethod.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MockPaymentMethod.h; sourceTree = "<group>"; }; 10563 10560 A1CC11621E493D0100EFA69C /* FileSystemMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FileSystemMac.mm; sourceTree = "<group>"; }; … … 10633 10630 A1F600531F4765020077E83F /* JSPaymentRequestUpdateEventInit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSPaymentRequestUpdateEventInit.cpp; sourceTree = "<group>"; }; 10634 10631 A1F600541F4765040077E83F /* JSPaymentDetailsUpdate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSPaymentDetailsUpdate.h; sourceTree = "<group>"; }; 10632 A1F6CFFC1FE096210018078C /* ApplePayModifier.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ApplePayModifier.h; sourceTree = "<group>"; }; 10633 A1F6CFFE1FE096210018078C /* ApplePayModifier.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = ApplePayModifier.idl; sourceTree = "<group>"; }; 10634 A1F6D0031FE096F60018078C /* ApplePayPaymentMethodType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ApplePayPaymentMethodType.h; sourceTree = "<group>"; }; 10635 A1F6D0051FE096F60018078C /* ApplePayPaymentMethodType.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = ApplePayPaymentMethodType.idl; sourceTree = "<group>"; }; 10636 A1F6D00A1FE099210018078C /* JSApplePayModifier.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSApplePayModifier.cpp; sourceTree = "<group>"; }; 10637 A1F6D00C1FE099220018078C /* JSApplePayModifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSApplePayModifier.h; sourceTree = "<group>"; }; 10638 A1F6D00D1FE099640018078C /* JSApplePayPaymentMethodType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSApplePayPaymentMethodType.cpp; sourceTree = "<group>"; }; 10639 A1F6D00E1FE099640018078C /* JSApplePayPaymentMethodType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSApplePayPaymentMethodType.h; sourceTree = "<group>"; }; 10635 10640 A1F76B101F44C2450014C318 /* PaymentRequest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PaymentRequest.h; sourceTree = "<group>"; }; 10636 10641 A1F76B111F44C2450014C318 /* PaymentRequest.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = PaymentRequest.cpp; sourceTree = "<group>"; }; … … 15354 15359 1A8A64421D19FCFB00D0E00F /* ApplePayPaymentMethodSelectedEvent.h */, 15355 15360 1A8A64431D19FCFB00D0E00F /* ApplePayPaymentMethodSelectedEvent.idl */, 15361 A1F6D0031FE096F60018078C /* ApplePayPaymentMethodType.h */, 15362 A1F6D0051FE096F60018078C /* ApplePayPaymentMethodType.idl */, 15356 15363 1ADFDFDA1E71D8DF008F5D34 /* ApplePayPaymentMethodUpdate.h */, 15357 15364 1ADFDFDB1E71D8DF008F5D34 /* ApplePayPaymentMethodUpdate.idl */, … … 15510 15517 A1F9296D1F8D9F5A00523AF3 /* JSApplePayMerchantValidationEvent.cpp */, 15511 15518 A1F9296E1F8D9F5B00523AF3 /* JSApplePayMerchantValidationEvent.h */, 15519 A1F6D00A1FE099210018078C /* JSApplePayModifier.cpp */, 15520 A1F6D00C1FE099220018078C /* JSApplePayModifier.h */, 15512 15521 7C65231D1E018B5A00677F22 /* JSApplePayPayment.cpp */, 15513 15522 7C65230A1E00DBB400677F22 /* JSApplePayPayment.h */, … … 15522 15531 1AE96A7C1D1A0A8000B86768 /* JSApplePayPaymentMethodSelectedEvent.cpp */, 15523 15532 1AE96A7D1D1A0A8000B86768 /* JSApplePayPaymentMethodSelectedEvent.h */, 15533 A1F6D00D1FE099640018078C /* JSApplePayPaymentMethodType.cpp */, 15534 A1F6D00E1FE099640018078C /* JSApplePayPaymentMethodType.h */, 15524 15535 1ADFDFE51E71DCA0008F5D34 /* JSApplePayPaymentMethodUpdate.cpp */, 15525 15536 1ADFDFE61E71DCA0008F5D34 /* JSApplePayPaymentMethodUpdate.h */, 15526 A1CBEF5F1F9F09020028DE7C /* JSApplePayPaymentMethodUpdateEvent.cpp */,15527 A1CBEF601F9F09020028DE7C /* JSApplePayPaymentMethodUpdateEvent.h */,15528 15537 7C65230F1E00DBB400677F22 /* JSApplePayPaymentPass.cpp */, 15529 15538 7C6523101E00DBB400677F22 /* JSApplePayPaymentPass.h */, … … 20460 20469 A1F929661F8D9CDB00523AF3 /* ApplePayMerchantValidationEvent.h */, 20461 20470 A1F929681F8D9CDB00523AF3 /* ApplePayMerchantValidationEvent.idl */, 20471 A1F6CFFC1FE096210018078C /* ApplePayModifier.h */, 20472 A1F6CFFE1FE096210018078C /* ApplePayModifier.idl */, 20462 20473 A1DF5AA11F7EE1130058A477 /* ApplePayPaymentHandler.cpp */, 20463 20474 A1DF5AA01F7EE1130058A477 /* ApplePayPaymentHandler.h */, 20464 A1CBEF511F9EEE750028DE7C /* ApplePayPaymentMethodUpdateEvent.cpp */,20465 A1CBEF501F9EEE750028DE7C /* ApplePayPaymentMethodUpdateEvent.h */,20466 A1CBEF521F9EEE750028DE7C /* ApplePayPaymentMethodUpdateEvent.idl */,20467 20475 A1DF5A7C1F7EBD0B0058A477 /* ApplePayRequest.h */, 20468 20476 A1DF5A7E1F7EBD0B0058A477 /* ApplePayRequest.idl */, … … 26079 26087 A1DF5A861F7EBDF20058A477 /* ApplePayMerchantCapability.h in Headers */, 26080 26088 A1F929691F8D9CDB00523AF3 /* ApplePayMerchantValidationEvent.h in Headers */, 26089 A1F6CFFF1FE096210018078C /* ApplePayModifier.h in Headers */, 26081 26090 7C6523011E00D03400677F22 /* ApplePayPayment.h in Headers */, 26082 26091 1A8A64521D19FCFB00D0E00F /* ApplePayPaymentAuthorizedEvent.h in Headers */, … … 26085 26094 7C6522EF1E00A4C700677F22 /* ApplePayPaymentMethod.h in Headers */, 26086 26095 1A8A64561D19FCFC00D0E00F /* ApplePayPaymentMethodSelectedEvent.h in Headers */, 26087 A1 CBEF531F9EEE750028DE7C /* ApplePayPaymentMethodUpdateEvent.h in Headers */,26096 A1F6D0061FE096F60018078C /* ApplePayPaymentMethodType.h in Headers */, 26088 26097 7C6522F51E00A51700677F22 /* ApplePayPaymentPass.h in Headers */, 26089 26098 7C6579E01E0079F900E3A27A /* ApplePayPaymentRequest.h in Headers */, … … 27358 27367 A1DF5A8E1F7EC0020058A477 /* JSApplePayMerchantCapability.h in Headers */, 27359 27368 A1F929701F8D9F5B00523AF3 /* JSApplePayMerchantValidationEvent.h in Headers */, 27369 A1F6D0121FE099B40018078C /* JSApplePayModifier.h in Headers */, 27360 27370 7C6523141E00DBB400677F22 /* JSApplePayPayment.h in Headers */, 27361 27371 1AE96A8B1D1A0DDD00B86768 /* JSApplePayPaymentAuthorizedEvent.h in Headers */, … … 27363 27373 7C6523181E00DBB500677F22 /* JSApplePayPaymentMethod.h in Headers */, 27364 27374 1AE96A8D1D1A0DDD00B86768 /* JSApplePayPaymentMethodSelectedEvent.h in Headers */, 27365 A1 CBEF621F9F09040028DE7C /* JSApplePayPaymentMethodUpdateEvent.h in Headers */,27375 A1F6D00F1FE099940018078C /* JSApplePayPaymentMethodType.h in Headers */, 27366 27376 7C65231A1E00DBB500677F22 /* JSApplePayPaymentPass.h in Headers */, 27367 27377 7C6579F21E00856600E3A27A /* JSApplePayPaymentRequest.h in Headers */, … … 30290 30300 A9787CB41F5F5C6600C551C6 /* AccessibilityMediaObject.cpp in Sources */, 30291 30301 A1F9296A1F8D9CDB00523AF3 /* ApplePayMerchantValidationEvent.cpp in Sources */, 30292 A1CBEF541F9EEE750028DE7C /* ApplePayPaymentMethodUpdateEvent.cpp in Sources */,30293 30302 CD0EEE0E14743F39003EAFA2 /* AudioDestinationIOS.cpp in Sources */, 30294 30303 CD5596911475B678001D0BD0 /* AudioFileReaderIOS.cpp in Sources */, … … 30355 30364 6A72798C1F16C29C003F39B8 /* InspectorShaderProgram.cpp in Sources */, 30356 30365 A1F9296F1F8D9F5B00523AF3 /* JSApplePayMerchantValidationEvent.cpp in Sources */, 30357 A1CBEF611F9F09040028DE7C /* JSApplePayPaymentMethodUpdateEvent.cpp in Sources */, 30366 A1F6D0111FE099B20018078C /* JSApplePayModifier.cpp in Sources */, 30367 A1F6D0101FE099960018078C /* JSApplePayPaymentMethodType.cpp in Sources */, 30358 30368 538EC93E1F99BF5A004D22A8 /* JSQuickTimePluginReplacement.cpp in Sources */, 30359 30369 935C477009AC4D7300A6AAB4 /* KeyEventMac.mm in Sources */, -
trunk/Source/WebCore/dom/EventNames.h
r223945 r225849 54 54 macro(animationiteration) \ 55 55 macro(animationstart) \ 56 macro(applepaypaymentmethodchanged) \57 56 macro(applepayvalidatemerchant) \ 58 57 macro(audioend) \ -
trunk/Source/WebCore/dom/EventNames.in
r225745 r225849 43 43 ApplePayPaymentAuthorizedEvent conditional=APPLE_PAY 44 44 ApplePayPaymentMethodSelectedEvent conditional=APPLE_PAY 45 ApplePayPaymentMethodUpdateEvent conditional=APPLE_PAY46 45 ApplePayShippingContactSelectedEvent conditional=APPLE_PAY 47 46 ApplePayShippingMethodSelectedEvent conditional=APPLE_PAY -
trunk/Source/WebCore/testing/MockPaymentCoordinator.cpp
r223962 r225849 106 106 } 107 107 108 static ApplePayLineItem convert(const ApplePaySessionPaymentRequest::LineItem& lineItem) 109 { 110 ApplePayLineItem result; 111 result.type = lineItem.type; 112 result.label = lineItem.label; 113 result.amount = lineItem.amount; 114 return result; 115 } 116 117 void MockPaymentCoordinator::updateTotalAndLineItems(const ApplePaySessionPaymentRequest::TotalAndLineItems& totalAndLineItems) 118 { 119 m_total = convert(totalAndLineItems.total); 120 m_lineItems.clear(); 121 for (auto& lineItem : totalAndLineItems.lineItems) 122 m_lineItems.append(convert(lineItem)); 123 } 124 125 void MockPaymentCoordinator::completeShippingMethodSelection(std::optional<ShippingMethodUpdate>&& shippingMethodUpdate) 126 { 127 if (shippingMethodUpdate) 128 updateTotalAndLineItems(shippingMethodUpdate->newTotalAndLineItems); 129 } 130 131 void MockPaymentCoordinator::completeShippingContactSelection(std::optional<ShippingContactUpdate>&& shippingContactUpdate) 132 { 133 if (shippingContactUpdate) 134 updateTotalAndLineItems(shippingContactUpdate->newTotalAndLineItems); 135 } 136 137 void MockPaymentCoordinator::completePaymentMethodSelection(std::optional<PaymentMethodUpdate>&& paymentMethodUpdate) 138 { 139 if (paymentMethodUpdate) 140 updateTotalAndLineItems(paymentMethodUpdate->newTotalAndLineItems); 141 } 142 108 143 void MockPaymentCoordinator::changeShippingOption(String&& shippingOption) 109 144 { -
trunk/Source/WebCore/testing/MockPaymentCoordinator.h
r223962 r225849 28 28 #if ENABLE(APPLE_PAY) 29 29 30 #include "ApplePayLineItem.h" 30 31 #include "MockPaymentAddress.h" 31 32 #include "PaymentCoordinatorClient.h" … … 46 47 void cancelPayment(); 47 48 49 const ApplePayLineItem& total() const { return m_total; } 50 const Vector<ApplePayLineItem>& lineItems() const { return m_lineItems; } 51 48 52 void ref() const { } 49 53 void deref() const { } … … 56 60 bool showPaymentUI(const URL&, const Vector<URL>&, const ApplePaySessionPaymentRequest&) final; 57 61 void completeMerchantValidation(const PaymentMerchantSession&) final; 58 void completeShippingMethodSelection(std::optional<ShippingMethodUpdate>&&) final { }59 void completeShippingContactSelection(std::optional<ShippingContactUpdate>&&) final { }60 void completePaymentMethodSelection(std::optional<PaymentMethodUpdate>&&) final { }62 void completeShippingMethodSelection(std::optional<ShippingMethodUpdate>&&) final; 63 void completeShippingContactSelection(std::optional<ShippingContactUpdate>&&) final; 64 void completePaymentMethodSelection(std::optional<PaymentMethodUpdate>&&) final; 61 65 void completePaymentSession(std::optional<PaymentAuthorizationResult>&&) final; 62 66 void abortPaymentSession() final; … … 64 68 void paymentCoordinatorDestroyed() final; 65 69 70 void updateTotalAndLineItems(const ApplePaySessionPaymentRequest::TotalAndLineItems&); 71 66 72 MainFrame& m_mainFrame; 67 73 MockPaymentAddress m_shippingAddress; 74 ApplePayLineItem m_total; 75 Vector<ApplePayLineItem> m_lineItems; 68 76 }; 69 77 -
trunk/Source/WebCore/testing/MockPaymentCoordinator.idl
r223962 r225849 33 33 void acceptPayment(); 34 34 void cancelPayment(); 35 36 readonly attribute ApplePayLineItem total; 37 readonly attribute sequence<ApplePayLineItem> lineItems; 35 38 };
Note: See TracChangeset
for help on using the changeset viewer.