Title: [215639] trunk/Source
Revision
215639
Author
[email protected]
Date
2017-04-21 14:28:22 -0700 (Fri, 21 Apr 2017)

Log Message

Stop using deprecated APIs, part 5
https://bugs.webkit.org/show_bug.cgi?id=171134
rdar://problem/31589635

Reviewed by Tim Horton.

Source/WebCore:

* Modules/applepay/ApplePaySession.cpp:
(WebCore::convertAndValidate):
Stop using the toPaymentAuthorizationStatus. Convert the passed in status results to the remaining
PaymentAuthorizationStatus values, and add errors if needed.

(WebCore::toPaymentAuthorizationStatus):
This function is no longer used.

* Modules/applepay/PaymentAuthorizationStatus.h:
Remove deprecated status values. We can achieve the same results with errors now.

* Modules/applepay/PaymentRequest.cpp:
(WebCore::isFinalStateResult):
Remove deprecated status values.

* Modules/applepay/PaymentRequest.h:
Remove deprecated status values.

Source/WebKit2:

* UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::toPKPaymentAuthorizationStatus):
Remove this and add a new version that doesn't use any deprecated values.

(WebKit::toPKPaymentAuthorizationStatus):
New function that takes a WebCore::PaymentAuthorizationResult and converts it to a status, for older OSes.

(WebKit::WebPaymentCoordinatorProxy::platformCompletePaymentSession):
Use the new toPKPaymentAuthorizationStatus versions.

(WebKit::WebPaymentCoordinatorProxy::platformCompleteShippingContactSelection):
Ditto.

(WebKit::status): Deleted.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (215638 => 215639)


--- trunk/Source/WebCore/ChangeLog	2017-04-21 21:28:17 UTC (rev 215638)
+++ trunk/Source/WebCore/ChangeLog	2017-04-21 21:28:22 UTC (rev 215639)
@@ -1,3 +1,29 @@
+2017-04-21  Anders Carlsson  <[email protected]>
+
+        Stop using deprecated APIs, part 5
+        https://bugs.webkit.org/show_bug.cgi?id=171134
+        rdar://problem/31589635
+
+        Reviewed by Tim Horton.
+
+        * Modules/applepay/ApplePaySession.cpp:
+        (WebCore::convertAndValidate):
+        Stop using the toPaymentAuthorizationStatus. Convert the passed in status results to the remaining
+        PaymentAuthorizationStatus values, and add errors if needed.
+
+        (WebCore::toPaymentAuthorizationStatus):
+        This function is no longer used.
+
+        * Modules/applepay/PaymentAuthorizationStatus.h:
+        Remove deprecated status values. We can achieve the same results with errors now.
+
+        * Modules/applepay/PaymentRequest.cpp:
+        (WebCore::isFinalStateResult):
+        Remove deprecated status values.
+
+        * Modules/applepay/PaymentRequest.h:
+        Remove deprecated status values.
+
 2017-04-21  Per Arne Vollan  <[email protected]>
 
         Validate vImage arguments

Modified: trunk/Source/WebCore/Modules/applepay/ApplePaySession.cpp (215638 => 215639)


--- trunk/Source/WebCore/Modules/applepay/ApplePaySession.cpp	2017-04-21 21:28:17 UTC (rev 215638)
+++ trunk/Source/WebCore/Modules/applepay/ApplePaySession.cpp	2017-04-21 21:28:22 UTC (rev 215639)
@@ -378,38 +378,6 @@
 }
 
 
-static std::optional<PaymentAuthorizationStatus> toPaymentAuthorizationStatus(unsigned short status)
-{
-    switch (status) {
-    case ApplePaySession::STATUS_SUCCESS:
-        return PaymentAuthorizationStatus::Success;
-
-    case ApplePaySession::STATUS_FAILURE:
-        return PaymentAuthorizationStatus::Failure;
-
-    case ApplePaySession::STATUS_INVALID_BILLING_POSTAL_ADDRESS:
-        return PaymentAuthorizationStatus::InvalidBillingPostalAddress;
-
-    case ApplePaySession::STATUS_INVALID_SHIPPING_POSTAL_ADDRESS:
-        return PaymentAuthorizationStatus::InvalidShippingPostalAddress;
-
-    case ApplePaySession::STATUS_INVALID_SHIPPING_CONTACT:
-        return PaymentAuthorizationStatus::InvalidShippingContact;
-
-    case ApplePaySession::STATUS_PIN_REQUIRED:
-        return PaymentAuthorizationStatus::PINRequired;
-
-    case ApplePaySession::STATUS_PIN_INCORRECT:
-        return PaymentAuthorizationStatus::PINIncorrect;
-
-    case ApplePaySession::STATUS_PIN_LOCKOUT:
-        return PaymentAuthorizationStatus::PINLockout;
-
-    default:
-        return std::nullopt;
-    }
-}
-
 static Vector<PaymentError> convert(const Vector<RefPtr<ApplePayError>>& errors)
 {
     Vector<PaymentError> convertedErrors;
@@ -431,12 +399,51 @@
 {
     PaymentAuthorizationResult convertedResult;
 
-    auto authorizationStatus = toPaymentAuthorizationStatus(result.status);
-    if (!authorizationStatus)
+    std::optional<ApplePayError::Code> errorCode;
+    std::optional<ApplePayError::ContactField> contactField;
+
+    switch (result.status) {
+    case ApplePaySession::STATUS_SUCCESS:
+        convertedResult.status = PaymentAuthorizationStatus::Success;
+        break;
+
+    case ApplePaySession::STATUS_FAILURE:
+        convertedResult.status = PaymentAuthorizationStatus::Failure;
+        break;
+
+    case ApplePaySession::STATUS_INVALID_BILLING_POSTAL_ADDRESS:
+        convertedResult.status = PaymentAuthorizationStatus::Failure;
+        convertedResult.errors.append({ PaymentError::Code::BillingContactInvalid, { }, std::nullopt });
+        break;
+
+    case ApplePaySession::STATUS_INVALID_SHIPPING_POSTAL_ADDRESS:
+        convertedResult.status = PaymentAuthorizationStatus::Failure;
+        convertedResult.errors.append({ PaymentError::Code::ShippingContactInvalid, { }, PaymentError::ContactField::PostalAddress });
+        break;
+
+    case ApplePaySession::STATUS_INVALID_SHIPPING_CONTACT:
+        convertedResult.status = PaymentAuthorizationStatus::Failure;
+        convertedResult.errors.append({ PaymentError::Code::ShippingContactInvalid, { }, std::nullopt });
+        break;
+
+    case ApplePaySession::STATUS_PIN_REQUIRED:
+        convertedResult.status = PaymentAuthorizationStatus::PINRequired;
+        break;
+
+    case ApplePaySession::STATUS_PIN_INCORRECT:
+        convertedResult.status = PaymentAuthorizationStatus::PINIncorrect;
+        break;
+
+    case ApplePaySession::STATUS_PIN_LOCKOUT:
+        convertedResult.status = PaymentAuthorizationStatus::PINLockout;
+        break;
+
+    default:
         return Exception { INVALID_ACCESS_ERR };
-    convertedResult.status = *authorizationStatus;
-    convertedResult.errors = convert(result.errors);
+    }
 
+    convertedResult.errors.appendVector(convert(result.errors));
+
     return WTFMove(convertedResult);
 }
 
@@ -802,6 +809,7 @@
     switch (status) {
     case ApplePaySession::STATUS_SUCCESS:
         break;
+
     case ApplePaySession::STATUS_FAILURE:
     case ApplePaySession::STATUS_INVALID_BILLING_POSTAL_ADDRESS:
     case ApplePaySession::STATUS_INVALID_SHIPPING_POSTAL_ADDRESS:

Modified: trunk/Source/WebCore/Modules/applepay/PaymentAuthorizationStatus.h (215638 => 215639)


--- trunk/Source/WebCore/Modules/applepay/PaymentAuthorizationStatus.h	2017-04-21 21:28:17 UTC (rev 215638)
+++ trunk/Source/WebCore/Modules/applepay/PaymentAuthorizationStatus.h	2017-04-21 21:28:22 UTC (rev 215639)
@@ -34,9 +34,6 @@
 enum class PaymentAuthorizationStatus {
     Success,
     Failure,
-    InvalidBillingPostalAddress,
-    InvalidShippingPostalAddress,
-    InvalidShippingContact,
     PINRequired,
     PINIncorrect,
     PINLockout,
@@ -50,9 +47,6 @@
         WebCore::PaymentAuthorizationStatus,
         WebCore::PaymentAuthorizationStatus::Success,
         WebCore::PaymentAuthorizationStatus::Failure,
-        WebCore::PaymentAuthorizationStatus::InvalidBillingPostalAddress,
-        WebCore::PaymentAuthorizationStatus::InvalidShippingPostalAddress,
-        WebCore::PaymentAuthorizationStatus::InvalidShippingContact,
         WebCore::PaymentAuthorizationStatus::PINRequired,
         WebCore::PaymentAuthorizationStatus::PINIncorrect,
         WebCore::PaymentAuthorizationStatus::PINLockout

Modified: trunk/Source/WebCore/Modules/applepay/PaymentRequest.cpp (215638 => 215639)


--- trunk/Source/WebCore/Modules/applepay/PaymentRequest.cpp	2017-04-21 21:28:17 UTC (rev 215638)
+++ trunk/Source/WebCore/Modules/applepay/PaymentRequest.cpp	2017-04-21 21:28:22 UTC (rev 215639)
@@ -79,9 +79,6 @@
     case PaymentAuthorizationStatus::Success:
         return true;
 
-    case PaymentAuthorizationStatus::InvalidBillingPostalAddress:
-    case PaymentAuthorizationStatus::InvalidShippingPostalAddress:
-    case PaymentAuthorizationStatus::InvalidShippingContact:
     case PaymentAuthorizationStatus::PINRequired:
     case PaymentAuthorizationStatus::PINIncorrect:
     case PaymentAuthorizationStatus::PINLockout:

Modified: trunk/Source/WebKit2/ChangeLog (215638 => 215639)


--- trunk/Source/WebKit2/ChangeLog	2017-04-21 21:28:17 UTC (rev 215638)
+++ trunk/Source/WebKit2/ChangeLog	2017-04-21 21:28:22 UTC (rev 215639)
@@ -1,3 +1,26 @@
+2017-04-21  Anders Carlsson  <[email protected]>
+
+        Stop using deprecated APIs, part 5
+        https://bugs.webkit.org/show_bug.cgi?id=171134
+        rdar://problem/31589635
+
+        Reviewed by Tim Horton.
+
+        * UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
+        (WebKit::toPKPaymentAuthorizationStatus):
+        Remove this and add a new version that doesn't use any deprecated values.
+
+        (WebKit::toPKPaymentAuthorizationStatus):
+        New function that takes a WebCore::PaymentAuthorizationResult and converts it to a status, for older OSes.
+
+        (WebKit::WebPaymentCoordinatorProxy::platformCompletePaymentSession):
+        Use the new toPKPaymentAuthorizationStatus versions.
+
+        (WebKit::WebPaymentCoordinatorProxy::platformCompleteShippingContactSelection):
+        Ditto.
+
+        (WebKit::status): Deleted.
+
 2017-04-21  David Kilzer  <[email protected]>
 
         Switch from -std=gnu++11 to -std=gnu++14 for consistency in DerivedSources.make

Modified: trunk/Source/WebKit2/UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm (215638 => 215639)


--- trunk/Source/WebKit2/UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm	2017-04-21 21:28:17 UTC (rev 215638)
+++ trunk/Source/WebKit2/UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm	2017-04-21 21:28:22 UTC (rev 215639)
@@ -415,31 +415,6 @@
     return result;
 }
 
-static PKPaymentAuthorizationStatus toPKPaymentAuthorizationStatus(WebCore::PaymentAuthorizationStatus status)
-{
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-    switch (status) {
-    case WebCore::PaymentAuthorizationStatus::Success:
-        return PKPaymentAuthorizationStatusSuccess;
-    case WebCore::PaymentAuthorizationStatus::Failure:
-        return PKPaymentAuthorizationStatusFailure;
-    case WebCore::PaymentAuthorizationStatus::InvalidBillingPostalAddress:
-        return PKPaymentAuthorizationStatusInvalidBillingPostalAddress;
-    case WebCore::PaymentAuthorizationStatus::InvalidShippingPostalAddress:
-        return PKPaymentAuthorizationStatusInvalidShippingPostalAddress;
-    case WebCore::PaymentAuthorizationStatus::InvalidShippingContact:
-        return PKPaymentAuthorizationStatusInvalidShippingContact;
-    case WebCore::PaymentAuthorizationStatus::PINRequired:
-        return PKPaymentAuthorizationStatusPINRequired;
-    case WebCore::PaymentAuthorizationStatus::PINIncorrect:
-        return PKPaymentAuthorizationStatusPINIncorrect;
-    case WebCore::PaymentAuthorizationStatus::PINLockout:
-        return PKPaymentAuthorizationStatusPINLockout;
-    }
-#pragma clang diagnostic pop
-}
-
 #if USE(APPLE_INTERNAL_SDK) && __has_include(<WebKitAdditions/WebPaymentCoordinatorProxyCocoaAdditions.mm>)
 #import <WebKitAdditions/WebPaymentCoordinatorProxyCocoaAdditions.mm>
 #else
@@ -580,6 +555,22 @@
 }
 
 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101300) || (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 110000)
+static PKPaymentAuthorizationStatus toPKPaymentAuthorizationStatus(WebCore::PaymentAuthorizationStatus status)
+{
+    switch (status) {
+    case WebCore::PaymentAuthorizationStatus::Success:
+        return PKPaymentAuthorizationStatusSuccess;
+    case WebCore::PaymentAuthorizationStatus::Failure:
+        return PKPaymentAuthorizationStatusFailure;
+    case WebCore::PaymentAuthorizationStatus::PINRequired:
+        return PKPaymentAuthorizationStatusPINRequired;
+    case WebCore::PaymentAuthorizationStatus::PINIncorrect:
+        return PKPaymentAuthorizationStatusPINIncorrect;
+    case WebCore::PaymentAuthorizationStatus::PINLockout:
+        return PKPaymentAuthorizationStatusPINLockout;
+    }
+}
+
 static PKPaymentErrorCode toPKPaymentErrorCode(WebCore::PaymentError::Code code)
 {
     switch (code) {
@@ -665,6 +656,45 @@
 
     return result;
 }
+#else
+static PKPaymentAuthorizationStatus toPKPaymentAuthorizationStatus(const std::optional<WebCore::PaymentAuthorizationResult>& result)
+{
+    if (!result)
+        return PKPaymentAuthorizationStatusSuccess;
+
+    if (result->errors.size() == 1) {
+        auto& error = result->errors[0];
+        switch (error.code) {
+        case WebCore::PaymentError::Code::Unknown:
+        case WebCore::PaymentError::Code::AddressUnservicable:
+            return PKPaymentAuthorizationStatusFailure;
+
+        case WebCore::PaymentError::Code::BillingContactInvalid:
+            return PKPaymentAuthorizationStatusInvalidBillingPostalAddress;
+
+        case WebCore::PaymentError::Code::ShippingContactInvalid:
+            if (error.contactField && error.contactField == WebCore::PaymentError::ContactField::PostalAddress)
+                return PKPaymentAuthorizationStatusInvalidShippingPostalAddress;
+
+            return PKPaymentAuthorizationStatusInvalidShippingContact;
+        }
+    }
+
+    switch (result->status) {
+    case WebCore::PaymentAuthorizationStatus::Success:
+        return PKPaymentAuthorizationStatusSuccess;
+    case WebCore::PaymentAuthorizationStatus::Failure:
+        return PKPaymentAuthorizationStatusFailure;
+    case WebCore::PaymentAuthorizationStatus::PINRequired:
+        return PKPaymentAuthorizationStatusPINRequired;
+    case WebCore::PaymentAuthorizationStatus::PINIncorrect:
+        return PKPaymentAuthorizationStatusPINIncorrect;
+    case WebCore::PaymentAuthorizationStatus::PINLockout:
+        return PKPaymentAuthorizationStatusPINLockout;
+    }
+
+    return PKPaymentAuthorizationStatusFailure;
+}
 #endif
 
 void WebPaymentCoordinatorProxy::platformCompletePaymentSession(const std::optional<WebCore::PaymentAuthorizationResult>& result)
@@ -672,14 +702,14 @@
     ASSERT(m_paymentAuthorizationViewController);
     ASSERT(m_paymentAuthorizationViewControllerDelegate);
 
-    auto status = result ? result->status : WebCore::PaymentAuthorizationStatus::Success;
     m_paymentAuthorizationViewControllerDelegate->_didReachFinalState = WebCore::isFinalStateResult(result);
 
 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101300) || (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 110000)
+    auto status = result ? result->status : WebCore::PaymentAuthorizationStatus::Success;
     auto pkPaymentAuthorizationResult = adoptNS([allocPKPaymentAuthorizationResultInstance() initWithStatus:toPKPaymentAuthorizationStatus(status) errors:result ? toNSErrors(result->errors).get() : @[ ]]);
     m_paymentAuthorizationViewControllerDelegate->_paymentAuthorizedCompletion(pkPaymentAuthorizationResult.get());
 #else
-    m_paymentAuthorizationViewControllerDelegate->_paymentAuthorizedCompletion(toPKPaymentAuthorizationStatus(status));
+    m_paymentAuthorizationViewControllerDelegate->_paymentAuthorizedCompletion(toPKPaymentAuthorizationStatus(result));
 #endif
     m_paymentAuthorizationViewControllerDelegate->_paymentAuthorizedCompletion = nullptr;
 }
@@ -711,7 +741,7 @@
 }
 
 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED < 101300) || (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED < 110000)
-static PKPaymentAuthorizationStatus status(const std::optional<WebCore::ShippingContactUpdate>& update)
+static PKPaymentAuthorizationStatus toPKPaymentAuthorizationStatus(const std::optional<WebCore::ShippingContactUpdate>& update)
 {
     if (!update)
         return PKPaymentAuthorizationStatusSuccess;
@@ -759,7 +789,7 @@
         [pkShippingContactUpdate setStatus:PKPaymentAuthorizationStatusFailure];
     m_paymentAuthorizationViewControllerDelegate->_didSelectShippingContactCompletion(pkShippingContactUpdate.get());
 #else
-    m_paymentAuthorizationViewControllerDelegate->_didSelectShippingContactCompletion(status(update), m_paymentAuthorizationViewControllerDelegate->_shippingMethods.get(), m_paymentAuthorizationViewControllerDelegate->_paymentSummaryItems.get());
+    m_paymentAuthorizationViewControllerDelegate->_didSelectShippingContactCompletion(toPKPaymentAuthorizationStatus(update), m_paymentAuthorizationViewControllerDelegate->_shippingMethods.get(), m_paymentAuthorizationViewControllerDelegate->_paymentSummaryItems.get());
 #endif
     m_paymentAuthorizationViewControllerDelegate->_didSelectShippingContactCompletion = nullptr;
 }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to