- 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;
}