Title: [215576] trunk/Source
Revision
215576
Author
ander...@apple.com
Date
2017-04-20 13:52:02 -0700 (Thu, 20 Apr 2017)

Log Message

Replace isFinalStateStatus with isFinalStateResult
https://bugs.webkit.org/show_bug.cgi?id=171072
rdar://problem/31589635

Reviewed by Tim Horton.

Source/WebCore:

This will let us get rid of some of the status enum declarations.

* Modules/applepay/ApplePaySession.cpp:
(WebCore::ApplePaySession::completePayment):
* Modules/applepay/PaymentAuthorizationStatus.h:
(WebCore::isFinalStateStatus): Deleted.
* Modules/applepay/PaymentCoordinator.cpp:
(WebCore::PaymentCoordinator::completePaymentSession):
* Modules/applepay/PaymentRequest.cpp:
(WebCore::isFinalStateResult):
* Modules/applepay/PaymentRequest.h:

Source/WebKit2:

* UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp:
(WebKit::WebPaymentCoordinatorProxy::completePaymentSession):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (215575 => 215576)


--- trunk/Source/WebCore/ChangeLog	2017-04-20 20:14:55 UTC (rev 215575)
+++ trunk/Source/WebCore/ChangeLog	2017-04-20 20:52:02 UTC (rev 215576)
@@ -1,3 +1,23 @@
+2017-04-20  Anders Carlsson  <ander...@apple.com>
+
+        Replace isFinalStateStatus with isFinalStateResult
+        https://bugs.webkit.org/show_bug.cgi?id=171072
+        rdar://problem/31589635
+
+        Reviewed by Tim Horton.
+
+        This will let us get rid of some of the status enum declarations.
+
+        * Modules/applepay/ApplePaySession.cpp:
+        (WebCore::ApplePaySession::completePayment):
+        * Modules/applepay/PaymentAuthorizationStatus.h:
+        (WebCore::isFinalStateStatus): Deleted.
+        * Modules/applepay/PaymentCoordinator.cpp:
+        (WebCore::PaymentCoordinator::completePaymentSession):
+        * Modules/applepay/PaymentRequest.cpp:
+        (WebCore::isFinalStateResult):
+        * Modules/applepay/PaymentRequest.h:
+
 2017-04-20  Brent Fulgham  <bfulg...@apple.com>
 
         [Win] REGRESSION(r215486): Windows Release build is broken

Modified: trunk/Source/WebCore/Modules/applepay/ApplePaySession.cpp (215575 => 215576)


--- trunk/Source/WebCore/Modules/applepay/ApplePaySession.cpp	2017-04-20 20:14:55 UTC (rev 215575)
+++ trunk/Source/WebCore/Modules/applepay/ApplePaySession.cpp	2017-04-20 20:52:02 UTC (rev 215576)
@@ -780,11 +780,11 @@
     if (convertedResult.hasException())
         return convertedResult.releaseException();
 
-    auto authorizationStatus = convertedResult.releaseReturnValue().status;
+    bool isFinalState = isFinalStateResult(convertedResult.releaseReturnValue());
 
     paymentCoordinator().completePaymentSession(convertedResult.releaseReturnValue());
 
-    if (!isFinalStateStatus(authorizationStatus)) {
+    if (!isFinalState) {
         m_state = State::Active;
         return { };
     }

Modified: trunk/Source/WebCore/Modules/applepay/PaymentAuthorizationStatus.h (215575 => 215576)


--- trunk/Source/WebCore/Modules/applepay/PaymentAuthorizationStatus.h	2017-04-20 20:14:55 UTC (rev 215575)
+++ trunk/Source/WebCore/Modules/applepay/PaymentAuthorizationStatus.h	2017-04-20 20:52:02 UTC (rev 215576)
@@ -42,25 +42,8 @@
     PINLockout,
 };
 
-static inline bool isFinalStateStatus(PaymentAuthorizationStatus status)
-{
-    switch (status) {
-    case PaymentAuthorizationStatus::Success:
-    case PaymentAuthorizationStatus::Failure:
-        return true;
-
-    case PaymentAuthorizationStatus::InvalidBillingPostalAddress:
-    case PaymentAuthorizationStatus::InvalidShippingPostalAddress:
-    case PaymentAuthorizationStatus::InvalidShippingContact:
-    case PaymentAuthorizationStatus::PINRequired:
-    case PaymentAuthorizationStatus::PINIncorrect:
-    case PaymentAuthorizationStatus::PINLockout:
-        return false;
-    }
 }
 
-}
-
 namespace WTF {
 template<> struct EnumTraits<WebCore::PaymentAuthorizationStatus> {
     using values = EnumValues<

Modified: trunk/Source/WebCore/Modules/applepay/PaymentCoordinator.cpp (215575 => 215576)


--- trunk/Source/WebCore/Modules/applepay/PaymentCoordinator.cpp	2017-04-20 20:14:55 UTC (rev 215575)
+++ trunk/Source/WebCore/Modules/applepay/PaymentCoordinator.cpp	2017-04-20 20:52:02 UTC (rev 215576)
@@ -108,11 +108,11 @@
 {
     ASSERT(m_activeSession);
 
-    auto status = result ? result->status : PaymentAuthorizationStatus::Success;
+    bool isFinalState = isFinalStateResult(result);
 
     m_client.completePaymentSession(WTFMove(result));
 
-    if (!isFinalStateStatus(status))
+    if (!isFinalState)
         return;
 
     m_activeSession = nullptr;

Modified: trunk/Source/WebCore/Modules/applepay/PaymentRequest.cpp (215575 => 215576)


--- trunk/Source/WebCore/Modules/applepay/PaymentRequest.cpp	2017-04-20 20:14:55 UTC (rev 215575)
+++ trunk/Source/WebCore/Modules/applepay/PaymentRequest.cpp	2017-04-20 20:52:02 UTC (rev 215576)
@@ -28,6 +28,7 @@
 
 #if ENABLE(APPLE_PAY)
 
+#include "PaymentAuthorizationStatus.h"
 #include "SoftLinking.h"
 
 namespace WebCore {
@@ -69,6 +70,35 @@
     return isAdditionalValidSupportedNetwork(version, supportedNetwork);
 }
 
+bool isFinalStateResult(const std::optional<PaymentAuthorizationResult>& result)
+{
+    if (!result)
+        return true;
+
+    switch (result->status) {
+    case PaymentAuthorizationStatus::Success:
+        return true;
+
+    case PaymentAuthorizationStatus::InvalidBillingPostalAddress:
+    case PaymentAuthorizationStatus::InvalidShippingPostalAddress:
+    case PaymentAuthorizationStatus::InvalidShippingContact:
+    case PaymentAuthorizationStatus::PINRequired:
+    case PaymentAuthorizationStatus::PINIncorrect:
+    case PaymentAuthorizationStatus::PINLockout:
+        return false;
+
+    case PaymentAuthorizationStatus::Failure:
+        if (result->errors.isEmpty())
+            return true;
+
+        for (auto& error : result->errors) {
+            if (error.code == PaymentError::Code::Unknown)
+                return true;
+        }
+        return false;
+    }
 }
 
+}
+
 #endif

Modified: trunk/Source/WebCore/Modules/applepay/PaymentRequest.h (215575 => 215576)


--- trunk/Source/WebCore/Modules/applepay/PaymentRequest.h	2017-04-20 20:14:55 UTC (rev 215575)
+++ trunk/Source/WebCore/Modules/applepay/PaymentRequest.h	2017-04-20 20:52:02 UTC (rev 215576)
@@ -195,6 +195,8 @@
     PaymentRequest::TotalAndLineItems newTotalAndLineItems;
 };
 
+WEBCORE_EXPORT bool isFinalStateResult(const std::optional<PaymentAuthorizationResult>&);
+
 }
 
 namespace WTF {

Modified: trunk/Source/WebKit2/ChangeLog (215575 => 215576)


--- trunk/Source/WebKit2/ChangeLog	2017-04-20 20:14:55 UTC (rev 215575)
+++ trunk/Source/WebKit2/ChangeLog	2017-04-20 20:52:02 UTC (rev 215576)
@@ -1,3 +1,14 @@
+2017-04-20  Anders Carlsson  <ander...@apple.com>
+
+        Replace isFinalStateStatus with isFinalStateResult
+        https://bugs.webkit.org/show_bug.cgi?id=171072
+        rdar://problem/31589635
+
+        Reviewed by Tim Horton.
+
+        * UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp:
+        (WebKit::WebPaymentCoordinatorProxy::completePaymentSession):
+
 2017-04-20  Wenson Hsieh  <wenson_hs...@apple.com>
 
         [WK2] -[WKContentView doAfterPositionInformationUpdate:atPosition:] should be robust against synchronous reentrancy

Modified: trunk/Source/WebKit2/UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp (215575 => 215576)


--- trunk/Source/WebKit2/UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp	2017-04-20 20:14:55 UTC (rev 215575)
+++ trunk/Source/WebKit2/UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp	2017-04-20 20:52:02 UTC (rev 215576)
@@ -179,9 +179,11 @@
     if (!canCompletePayment())
         return;
 
+    bool isFinalStateResult = WebCore::isFinalStateResult(result);
+
     platformCompletePaymentSession(result);
 
-    if (!WebCore::isFinalStateStatus(result ? result->status : WebCore::PaymentAuthorizationStatus::Success)) {
+    if (!isFinalStateResult) {
         m_state = State::Active;
         return;
     }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to