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

Reply via email to