Title: [217035] branches/safari-604.1.21-branch/Source/WebCore
- Revision
- 217035
- Author
- [email protected]
- Date
- 2017-05-17 22:36:01 -0700 (Wed, 17 May 2017)
Log Message
Cherry-pick r217022. rdar://problem/32258020
Modified Paths
Diff
Modified: branches/safari-604.1.21-branch/Source/WebCore/ChangeLog (217034 => 217035)
--- branches/safari-604.1.21-branch/Source/WebCore/ChangeLog 2017-05-18 05:35:59 UTC (rev 217034)
+++ branches/safari-604.1.21-branch/Source/WebCore/ChangeLog 2017-05-18 05:36:01 UTC (rev 217035)
@@ -1,5 +1,26 @@
2017-05-17 Jason Marcell <[email protected]>
+ Cherry-pick r217022. rdar://problem/32258020
+
+ 2017-05-17 Andy Estes <[email protected]>
+
+ [Cocoa] errors are not propagated to PassKit when calling ApplePaySession.completePayment()
+ https://bugs.webkit.org/show_bug.cgi?id=172253
+ <rdar://problem/32258020>
+
+ Reviewed by Dan Bernstein.
+
+ In ApplePaySession::completePayment(), releaseReturnValue() was being called twice on the
+ same convertedResult. Since the first call moved the errors vector out of convertedResult,
+ the vector is empty in the second call. It's the second call that sends the result to the
+ UI process, so we end up with an empty arary when we call PassKit's delegate completion
+ handler.
+
+ * Modules/applepay/ApplePaySession.cpp:
+ (WebCore::ApplePaySession::completePayment):
+
+2017-05-17 Jason Marcell <[email protected]>
+
Cherry-pick r216954. rdar://problem/32233799
2017-05-16 Eric Carlson <[email protected]>
Modified: branches/safari-604.1.21-branch/Source/WebCore/Modules/applepay/ApplePaySession.cpp (217034 => 217035)
--- branches/safari-604.1.21-branch/Source/WebCore/Modules/applepay/ApplePaySession.cpp 2017-05-18 05:35:59 UTC (rev 217034)
+++ branches/safari-604.1.21-branch/Source/WebCore/Modules/applepay/ApplePaySession.cpp 2017-05-18 05:36:01 UTC (rev 217035)
@@ -783,13 +783,14 @@
if (!canCompletePayment())
return Exception { INVALID_ACCESS_ERR };
- auto convertedResult = convertAndValidate(WTFMove(result));
- if (convertedResult.hasException())
- return convertedResult.releaseException();
+ auto convertedResultOrException = convertAndValidate(WTFMove(result));
+ if (convertedResultOrException.hasException())
+ return convertedResultOrException.releaseException();
- bool isFinalState = isFinalStateResult(convertedResult.releaseReturnValue());
+ auto&& convertedResult = convertedResultOrException.releaseReturnValue();
+ bool isFinalState = isFinalStateResult(convertedResult);
- paymentCoordinator().completePaymentSession(convertedResult.releaseReturnValue());
+ paymentCoordinator().completePaymentSession(WTFMove(convertedResult));
if (!isFinalState) {
m_state = State::Active;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes