Diff
Modified: branches/safari-605-branch/LayoutTests/ChangeLog (227303 => 227304)
--- branches/safari-605-branch/LayoutTests/ChangeLog 2018-01-22 17:57:07 UTC (rev 227303)
+++ branches/safari-605-branch/LayoutTests/ChangeLog 2018-01-22 17:57:12 UTC (rev 227304)
@@ -1,5 +1,20 @@
2018-01-22 Jason Marcell <jmarc...@apple.com>
+ Cherry-pick r227140. rdar://problem/36722478
+
+ 2018-01-18 Andy Estes <aes...@apple.com>
+
+ [Payment Request] Support a default shipping address for Apple Pay
+ https://bugs.webkit.org/show_bug.cgi?id=181754
+ <rdar://problem/36009733>
+
+ Reviewed by Brady Eidson.
+
+ * http/tests/ssl/applepay/ApplePayRequestShippingContact.https-expected.txt: Added.
+ * http/tests/ssl/applepay/ApplePayRequestShippingContact.https.html: Added.
+
+2018-01-22 Jason Marcell <jmarc...@apple.com>
+
Cherry-pick r227082. rdar://problem/36722629
2018-01-17 Antti Koivisto <an...@apple.com>
Added: branches/safari-605-branch/LayoutTests/http/tests/ssl/applepay/ApplePayRequestShippingContact.https-expected.txt (0 => 227304)
--- branches/safari-605-branch/LayoutTests/http/tests/ssl/applepay/ApplePayRequestShippingContact.https-expected.txt (rev 0)
+++ branches/safari-605-branch/LayoutTests/http/tests/ssl/applepay/ApplePayRequestShippingContact.https-expected.txt 2018-01-22 17:57:12 UTC (rev 227304)
@@ -0,0 +1,62 @@
+Test ApplePayRequest.shippingContact.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+Test setting a default shipping contact in a version 2 request.
+PASS paymentResponse.details.shippingContact.phoneNumber is expectedPhoneNumber
+PASS paymentResponse.details.shippingContact.emailAddress is expectedEmailAddress
+PASS paymentResponse.details.shippingContact.givenName is expectedGivenName
+PASS paymentResponse.details.shippingContact.familyName is expectedFamilyName
+PASS paymentResponse.details.shippingContact.phoneticGivenName is undefined.
+PASS paymentResponse.details.shippingContact.phoneticFamilyName is undefined.
+PASS paymentResponse.details.shippingContact.addressLines is expectedAddressLines
+PASS paymentResponse.details.shippingContact.subLocality is expectedSubLocality
+PASS paymentResponse.details.shippingContact.locality is expectedLocality
+PASS paymentResponse.details.shippingContact.postalCode is expectedPostalCode
+PASS paymentResponse.details.shippingContact.subAdministrativeArea is expectedSubAdministrativeArea
+PASS paymentResponse.details.shippingContact.administrativeArea is expectedAdministrativeArea
+PASS paymentResponse.details.shippingContact.country is expectedCountry
+PASS paymentResponse.details.shippingContact.countryCode is expectedCountryCode
+PASS paymentResponse.shippingAddress.country is expectedCountryCode
+PASS paymentResponse.shippingAddress.addressLine is expectedAddressLines
+PASS paymentResponse.shippingAddress.region is expectedAdministrativeArea
+PASS paymentResponse.shippingAddress.city is expectedLocality
+PASS paymentResponse.shippingAddress.dependentLocality is expectedSubLocality
+PASS paymentResponse.shippingAddress.postalCode is expectedPostalCode
+PASS paymentResponse.shippingAddress.postalCode is expectedPostalCode
+PASS paymentResponse.shippingAddress.sortingCode is ''
+PASS paymentResponse.shippingAddress.languageCode is ''
+PASS paymentResponse.shippingAddress.organization is ''
+PASS paymentResponse.shippingAddress.recipient is expectedName
+PASS paymentResponse.shippingAddress.phone is expectedPhoneNumber
+PASS paymentResponse.payerName is expectedName
+PASS paymentResponse.payerEmail is expectedEmailAddress
+PASS paymentResponse.payerPhone is expectedPhoneNumber
+
+Test setting a default shipping contact in a version 3 request.
+PASS paymentResponse.details.shippingContact.phoneticGivenName is expectedGivenName
+PASS paymentResponse.details.shippingContact.phoneticFamilyName is expectedFamilyName
+
+Test setting a default shipping contact that only specifies an email address.
+PASS paymentResponse.shippingAddress is null
+PASS paymentResponse.payerName is null
+PASS paymentResponse.payerEmail is expectedEmailAddress
+PASS paymentResponse.payerPhone is null
+
+Test setting a default shipping contact that only specifies a phone number.
+PASS paymentResponse.shippingAddress is null
+PASS paymentResponse.payerName is null
+PASS paymentResponse.payerEmail is null
+PASS paymentResponse.payerPhone is expectedPhoneNumber
+
+Test setting a default shipping contact that only specifies a name.
+PASS paymentResponse.shippingAddress is null
+PASS paymentResponse.payerName is expectedName
+PASS paymentResponse.payerEmail is null
+PASS paymentResponse.payerPhone is null
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: branches/safari-605-branch/LayoutTests/http/tests/ssl/applepay/ApplePayRequestShippingContact.https.html (0 => 227304)
--- branches/safari-605-branch/LayoutTests/http/tests/ssl/applepay/ApplePayRequestShippingContact.https.html (rev 0)
+++ branches/safari-605-branch/LayoutTests/http/tests/ssl/applepay/ApplePayRequestShippingContact.https.html 2018-01-22 17:57:12 UTC (rev 227304)
@@ -0,0 +1,232 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<script src=""
+<script src=""
+<script src=""
+</head>
+<body>
+<script>
+
+description("Test ApplePayRequest.shippingContact.");
+
+window.jsTestIsAsync = true;
+
+const expectedGivenName = 'Web';
+const expectedFamilyName = 'Test';
+const expectedName = [expectedGivenName, expectedFamilyName].join(' ');
+const expectedEmailAddress = 'w...@w3.org';
+const expectedPhoneNumber = '+12345678910';
+const expectedAddressLines = ['1 wpt street'];
+const expectedSubLocality = 'AA';
+const expectedLocality = 'BB';
+const expectedPostalCode = '12345';
+const expectedSubAdministrativeArea = 'CC';
+const expectedAdministrativeArea = 'DD';
+const expectedCountry = 'United States';
+const expectedCountryCode = 'US';
+
+function validShippingContact() {
+ return {
+ phoneNumber: expectedPhoneNumber,
+ emailAddress: expectedEmailAddress,
+ givenName: expectedGivenName,
+ familyName: expectedFamilyName,
+ phoneticGivenName: expectedGivenName,
+ phoneticFamilyName: expectedFamilyName,
+ addressLines: expectedAddressLines,
+ subLocality: expectedSubLocality,
+ locality: expectedLocality,
+ postalCode: expectedPostalCode,
+ subAdministrativeArea: expectedSubAdministrativeArea,
+ administrativeArea: expectedAdministrativeArea,
+ country: expectedCountry,
+ countryCode: expectedCountryCode,
+ };
+}
+
+function validPaymentMethod(version, shippingContact) {
+ return {
+ supportedMethods: 'https://apple.com/apple-pay',
+ data: {
+ version,
+ merchantIdentifier: '',
+ countryCode: 'US',
+ supportedNetworks: ['visa', 'masterCard'],
+ merchantCapabilities: ['supports3DS'],
+ shippingContact,
+ },
+ }
+}
+
+function validPaymentDetails() {
+ return {
+ total: {
+ label: 'Total',
+ amount: {
+ currency: 'USD',
+ value: '10.00',
+ },
+ },
+ };
+}
+
+function validPaymentOptions() {
+ return {
+ requestPayerName: true,
+ requestPayerEmail: true,
+ requestPayerPhone: true,
+ requestShipping: true,
+ };
+}
+
+async function runTests() {
+ await new Promise((resolve, reject) => {
+ debug("Test setting a default shipping contact in a version 2 request.");
+
+ var paymentRequest = new PaymentRequest([validPaymentMethod(2, validShippingContact())], validPaymentDetails(), validPaymentOptions());
+
+ activateThen(() => {
+ paymentRequest.show().then((response) => {
+ window.paymentResponse = response;
+
+ shouldBe("paymentResponse.details.shippingContact.phoneNumber", "expectedPhoneNumber");
+ shouldBe("paymentResponse.details.shippingContact.emailAddress", "expectedEmailAddress");
+ shouldBe("paymentResponse.details.shippingContact.givenName", "expectedGivenName");
+ shouldBe("paymentResponse.details.shippingContact.familyName", "expectedFamilyName");
+ shouldBeUndefined("paymentResponse.details.shippingContact.phoneticGivenName");
+ shouldBeUndefined("paymentResponse.details.shippingContact.phoneticFamilyName");
+ shouldBe("paymentResponse.details.shippingContact.addressLines", "expectedAddressLines");
+ shouldBe("paymentResponse.details.shippingContact.subLocality", "expectedSubLocality");
+ shouldBe("paymentResponse.details.shippingContact.locality", "expectedLocality");
+ shouldBe("paymentResponse.details.shippingContact.postalCode", "expectedPostalCode");
+ shouldBe("paymentResponse.details.shippingContact.subAdministrativeArea", "expectedSubAdministrativeArea");
+ shouldBe("paymentResponse.details.shippingContact.administrativeArea", "expectedAdministrativeArea");
+ shouldBe("paymentResponse.details.shippingContact.country", "expectedCountry");
+ shouldBe("paymentResponse.details.shippingContact.countryCode", "expectedCountryCode");
+
+ shouldBe("paymentResponse.shippingAddress.country", "expectedCountryCode");
+ shouldBe("paymentResponse.shippingAddress.addressLine", "expectedAddressLines");
+ shouldBe("paymentResponse.shippingAddress.region", "expectedAdministrativeArea");
+ shouldBe("paymentResponse.shippingAddress.city", "expectedLocality");
+ shouldBe("paymentResponse.shippingAddress.dependentLocality", "expectedSubLocality");
+ shouldBe("paymentResponse.shippingAddress.postalCode", "expectedPostalCode");
+ shouldBe("paymentResponse.shippingAddress.postalCode", "expectedPostalCode");
+ shouldBe("paymentResponse.shippingAddress.sortingCode", "''");
+ shouldBe("paymentResponse.shippingAddress.languageCode", "''");
+ shouldBe("paymentResponse.shippingAddress.organization", "''");
+ shouldBe("paymentResponse.shippingAddress.recipient", "expectedName");
+ shouldBe("paymentResponse.shippingAddress.phone", "expectedPhoneNumber");
+
+ shouldBe("paymentResponse.payerName", "expectedName");
+ shouldBe("paymentResponse.payerEmail", "expectedEmailAddress");
+ shouldBe("paymentResponse.payerPhone", "expectedPhoneNumber");
+
+ response.complete("success");
+ resolve();
+ });
+
+ internals.mockPaymentCoordinator.acceptPayment();
+ });
+ });
+ debug("");
+
+ await new Promise((resolve, reject) => {
+ debug("Test setting a default shipping contact in a version 3 request.");
+
+ var paymentRequest = new PaymentRequest([validPaymentMethod(3, validShippingContact())], validPaymentDetails(), validPaymentOptions());
+
+ activateThen(() => {
+ paymentRequest.show().then((response) => {
+ window.paymentResponse = response;
+
+ shouldBe("paymentResponse.details.shippingContact.phoneticGivenName", "expectedGivenName");
+ shouldBe("paymentResponse.details.shippingContact.phoneticFamilyName", "expectedFamilyName");
+
+ response.complete("success");
+ resolve();
+ });
+
+ internals.mockPaymentCoordinator.acceptPayment();
+ });
+ });
+ debug("");
+
+ await new Promise((resolve, reject) => {
+ debug("Test setting a default shipping contact that only specifies an email address.");
+
+ var paymentRequest = new PaymentRequest([validPaymentMethod(3, { emailAddress: expectedEmailAddress })], validPaymentDetails(), { requestPayerEmail: true });
+
+ activateThen(() => {
+ paymentRequest.show().then((response) => {
+ window.paymentResponse = response;
+
+ shouldBeNull("paymentResponse.shippingAddress");
+ shouldBeNull("paymentResponse.payerName");
+ shouldBe("paymentResponse.payerEmail", "expectedEmailAddress");
+ shouldBeNull("paymentResponse.payerPhone");
+
+ response.complete("success");
+ resolve();
+ });
+
+ internals.mockPaymentCoordinator.acceptPayment();
+ });
+ });
+ debug("");
+
+ await new Promise((resolve, reject) => {
+ debug("Test setting a default shipping contact that only specifies a phone number.");
+
+ var paymentRequest = new PaymentRequest([validPaymentMethod(3, { phoneNumber: expectedPhoneNumber })], validPaymentDetails(), { requestPayerPhone: true });
+
+ activateThen(() => {
+ paymentRequest.show().then((response) => {
+ window.paymentResponse = response;
+
+ shouldBeNull("paymentResponse.shippingAddress");
+ shouldBeNull("paymentResponse.payerName");
+ shouldBeNull("paymentResponse.payerEmail");
+ shouldBe("paymentResponse.payerPhone", "expectedPhoneNumber");
+
+ response.complete("success");
+ resolve();
+ });
+
+ internals.mockPaymentCoordinator.acceptPayment();
+ });
+ });
+ debug("");
+
+ await new Promise((resolve, reject) => {
+ debug("Test setting a default shipping contact that only specifies a name.");
+
+ var paymentRequest = new PaymentRequest([validPaymentMethod(3, { givenName: expectedGivenName, familyName: expectedFamilyName })], validPaymentDetails(), { requestPayerName: true });
+
+ activateThen(() => {
+ paymentRequest.show().then((response) => {
+ window.paymentResponse = response;
+
+ shouldBeNull("paymentResponse.shippingAddress");
+ shouldBe("paymentResponse.payerName", "expectedName");
+ shouldBeNull("paymentResponse.payerEmail");
+ shouldBeNull("paymentResponse.payerPhone");
+
+ response.complete("success");
+ resolve();
+ });
+
+ internals.mockPaymentCoordinator.acceptPayment();
+ });
+ });
+ debug("");
+
+ finishJSTest();
+}
+
+runTests();
+</script>
+<script src=""
+</body>
+</html>
Modified: branches/safari-605-branch/Source/WebCore/ChangeLog (227303 => 227304)
--- branches/safari-605-branch/Source/WebCore/ChangeLog 2018-01-22 17:57:07 UTC (rev 227303)
+++ branches/safari-605-branch/Source/WebCore/ChangeLog 2018-01-22 17:57:12 UTC (rev 227304)
@@ -1,5 +1,45 @@
2018-01-22 Jason Marcell <jmarc...@apple.com>
+ Cherry-pick r227140. rdar://problem/36722478
+
+ 2018-01-18 Andy Estes <aes...@apple.com>
+
+ [Payment Request] Support a default shipping address for Apple Pay
+ https://bugs.webkit.org/show_bug.cgi?id=181754
+ <rdar://problem/36009733>
+
+ Reviewed by Brady Eidson.
+
+ Move shippingContact from ApplePayPaymentRequest to ApplePayRequestBase. This allows
+ merchants to specify a default shipping address when using Apple Pay with Payment Request.
+
+ This also fixes a bug found during testing where
+ +[NSPersonNameComponentsFormatter localizedStringFromPersonNameComponents:style:options:]
+ would throw an exception when passed a nil NSPersonNameComponents.
+
+ Test: http/tests/ssl/applepay/ApplePayRequestShippingContact.https.html
+
+ * Modules/applepay/ApplePayPaymentRequest.h:
+ * Modules/applepay/ApplePayPaymentRequest.idl:
+ * Modules/applepay/ApplePayRequestBase.cpp:
+ (WebCore::convertAndValidate):
+ * Modules/applepay/ApplePayRequestBase.h:
+ * Modules/applepay/ApplePayRequestBase.idl:
+ * Modules/applepay/ApplePaySession.cpp:
+ (WebCore::convertAndValidate):
+ * Modules/applepay/ApplePaySessionPaymentRequest.h:
+ (WebCore::ApplePaySessionPaymentRequest::version const):
+ (WebCore::ApplePaySessionPaymentRequest::setVersion):
+ * Modules/applepay/cocoa/PaymentContactCocoa.mm:
+ (WebCore::convert):
+ * Modules/applepay/paymentrequest/ApplePayRequest.idl:
+ * testing/MockPaymentCoordinator.cpp:
+ (WebCore::MockPaymentCoordinator::showPaymentUI):
+ (WebCore::MockPaymentCoordinator::completeMerchantValidation):
+ * testing/MockPaymentCoordinator.h:
+
+2018-01-22 Jason Marcell <jmarc...@apple.com>
+
Cherry-pick r227135. rdar://problem/36722512
2018-01-18 Wenson Hsieh <wenson_hs...@apple.com>
Modified: branches/safari-605-branch/Source/WebCore/Modules/applepay/ApplePayPaymentRequest.h (227303 => 227304)
--- branches/safari-605-branch/Source/WebCore/Modules/applepay/ApplePayPaymentRequest.h 2018-01-22 17:57:07 UTC (rev 227303)
+++ branches/safari-605-branch/Source/WebCore/Modules/applepay/ApplePayPaymentRequest.h 2018-01-22 17:57:12 UTC (rev 227304)
@@ -41,7 +41,6 @@
String currencyCode;
std::optional<Vector<ApplePayContactField>> requiredShippingContactFields;
- std::optional<ApplePayPaymentContact> shippingContact;
ShippingType shippingType { ShippingType::Shipping };
std::optional<Vector<ApplePayShippingMethod>> shippingMethods;
Modified: branches/safari-605-branch/Source/WebCore/Modules/applepay/ApplePayPaymentRequest.idl (227303 => 227304)
--- branches/safari-605-branch/Source/WebCore/Modules/applepay/ApplePayPaymentRequest.idl 2018-01-22 17:57:07 UTC (rev 227303)
+++ branches/safari-605-branch/Source/WebCore/Modules/applepay/ApplePayPaymentRequest.idl 2018-01-22 17:57:12 UTC (rev 227304)
@@ -41,7 +41,6 @@
required DOMString currencyCode;
sequence<ApplePayContactField> requiredShippingContactFields;
- ApplePayPaymentContact shippingContact;
ApplePayShippingType shippingType = "shipping";
sequence<ApplePayShippingMethod> shippingMethods;
Modified: branches/safari-605-branch/Source/WebCore/Modules/applepay/ApplePayRequestBase.cpp (227303 => 227304)
--- branches/safari-605-branch/Source/WebCore/Modules/applepay/ApplePayRequestBase.cpp 2018-01-22 17:57:07 UTC (rev 227303)
+++ branches/safari-605-branch/Source/WebCore/Modules/applepay/ApplePayRequestBase.cpp 2018-01-22 17:57:12 UTC (rev 227304)
@@ -52,6 +52,7 @@
ExceptionOr<ApplePaySessionPaymentRequest> convertAndValidate(unsigned version, ApplePayRequestBase& request, const PaymentCoordinator& paymentCoordinator)
{
ApplePaySessionPaymentRequest result;
+ result.setVersion(version);
result.setCountryCode(request.countryCode);
auto merchantCapabilities = convertAndValidate(request.merchantCapabilities);
@@ -74,6 +75,9 @@
if (request.billingContact)
result.setBillingContact(PaymentContact::fromApplePayPaymentContact(version, *request.billingContact));
+ if (request.shippingContact)
+ result.setShippingContact(PaymentContact::fromApplePayPaymentContact(version, *request.shippingContact));
+
result.setApplicationData(request.applicationData);
if (version >= 3)
Modified: branches/safari-605-branch/Source/WebCore/Modules/applepay/ApplePayRequestBase.h (227303 => 227304)
--- branches/safari-605-branch/Source/WebCore/Modules/applepay/ApplePayRequestBase.h 2018-01-22 17:57:07 UTC (rev 227303)
+++ branches/safari-605-branch/Source/WebCore/Modules/applepay/ApplePayRequestBase.h 2018-01-22 17:57:12 UTC (rev 227304)
@@ -43,6 +43,8 @@
std::optional<Vector<ApplePayContactField>> requiredBillingContactFields;
std::optional<ApplePayPaymentContact> billingContact;
+ std::optional<ApplePayPaymentContact> shippingContact;
+
String applicationData;
Vector<String> supportedCountries;
};
Modified: branches/safari-605-branch/Source/WebCore/Modules/applepay/ApplePayRequestBase.idl (227303 => 227304)
--- branches/safari-605-branch/Source/WebCore/Modules/applepay/ApplePayRequestBase.idl 2018-01-22 17:57:07 UTC (rev 227303)
+++ branches/safari-605-branch/Source/WebCore/Modules/applepay/ApplePayRequestBase.idl 2018-01-22 17:57:12 UTC (rev 227304)
@@ -33,6 +33,8 @@
sequence<ApplePayContactField> requiredBillingContactFields;
ApplePayPaymentContact billingContact;
+ ApplePayPaymentContact shippingContact;
+
DOMString applicationData;
[Conditional=APPLE_PAY_SESSION_V3] sequence<DOMString> supportedCountries;
};
Modified: branches/safari-605-branch/Source/WebCore/Modules/applepay/ApplePaySession.cpp (227303 => 227304)
--- branches/safari-605-branch/Source/WebCore/Modules/applepay/ApplePaySession.cpp 2018-01-22 17:57:07 UTC (rev 227303)
+++ branches/safari-605-branch/Source/WebCore/Modules/applepay/ApplePaySession.cpp 2018-01-22 17:57:12 UTC (rev 227304)
@@ -234,9 +234,6 @@
result.setRequiredShippingContactFields(requiredShippingContactFields.releaseReturnValue());
}
- if (paymentRequest.shippingContact)
- result.setShippingContact(PaymentContact::fromApplePayPaymentContact(version, paymentRequest.shippingContact.value()));
-
result.setShippingType(paymentRequest.shippingType);
if (paymentRequest.shippingMethods) {
Modified: branches/safari-605-branch/Source/WebCore/Modules/applepay/ApplePaySessionPaymentRequest.h (227303 => 227304)
--- branches/safari-605-branch/Source/WebCore/Modules/applepay/ApplePaySessionPaymentRequest.h 2018-01-22 17:57:07 UTC (rev 227303)
+++ branches/safari-605-branch/Source/WebCore/Modules/applepay/ApplePaySessionPaymentRequest.h 2018-01-22 17:57:12 UTC (rev 227304)
@@ -42,6 +42,9 @@
WEBCORE_EXPORT ApplePaySessionPaymentRequest();
WEBCORE_EXPORT ~ApplePaySessionPaymentRequest();
+ unsigned version() const { return m_version; }
+ void setVersion(unsigned version) { m_version = version; }
+
const String& countryCode() const { return m_countryCode; }
void setCountryCode(const String& countryCode) { m_countryCode = countryCode; }
@@ -136,6 +139,8 @@
void setRequester(Requester requester) { m_requester = requester; }
private:
+ unsigned m_version { 0 };
+
String m_countryCode;
String m_currencyCode;
Modified: branches/safari-605-branch/Source/WebCore/Modules/applepay/cocoa/PaymentContactCocoa.mm (227303 => 227304)
--- branches/safari-605-branch/Source/WebCore/Modules/applepay/cocoa/PaymentContactCocoa.mm 2018-01-22 17:57:07 UTC (rev 227303)
+++ branches/safari-605-branch/Source/WebCore/Modules/applepay/cocoa/PaymentContactCocoa.mm 2018-01-22 17:57:12 UTC (rev 227304)
@@ -189,13 +189,15 @@
NSPersonNameComponents *name = contact.name;
result.givenName = name.givenName;
result.familyName = name.familyName;
- result.localizedName = [NSPersonNameComponentsFormatter localizedStringFromPersonNameComponents:name style:NSPersonNameComponentsFormatterStyleDefault options:0];
+ if (name)
+ result.localizedName = [NSPersonNameComponentsFormatter localizedStringFromPersonNameComponents:name style:NSPersonNameComponentsFormatterStyleDefault options:0];
if (version >= 3) {
NSPersonNameComponents *phoneticName = name.phoneticRepresentation;
result.phoneticGivenName = phoneticName.givenName;
result.phoneticFamilyName = phoneticName.familyName;
- result.localizedPhoneticName = [NSPersonNameComponentsFormatter localizedStringFromPersonNameComponents:name style:NSPersonNameComponentsFormatterStyleDefault options:NSPersonNameComponentsFormatterPhonetic];
+ if (phoneticName)
+ result.localizedPhoneticName = [NSPersonNameComponentsFormatter localizedStringFromPersonNameComponents:name style:NSPersonNameComponentsFormatterStyleDefault options:NSPersonNameComponentsFormatterPhonetic];
}
CNPostalAddress *postalAddress = contact.postalAddress;
Modified: branches/safari-605-branch/Source/WebCore/Modules/applepay/paymentrequest/ApplePayRequest.idl (227303 => 227304)
--- branches/safari-605-branch/Source/WebCore/Modules/applepay/paymentrequest/ApplePayRequest.idl 2018-01-22 17:57:07 UTC (rev 227303)
+++ branches/safari-605-branch/Source/WebCore/Modules/applepay/paymentrequest/ApplePayRequest.idl 2018-01-22 17:57:12 UTC (rev 227304)
@@ -29,4 +29,3 @@
required unsigned long version;
required DOMString merchantIdentifier;
};
-
Modified: branches/safari-605-branch/Source/WebCore/testing/MockPaymentCoordinator.cpp (227303 => 227304)
--- branches/safari-605-branch/Source/WebCore/testing/MockPaymentCoordinator.cpp 2018-01-22 17:57:07 UTC (rev 227303)
+++ branches/safari-605-branch/Source/WebCore/testing/MockPaymentCoordinator.cpp 2018-01-22 17:57:12 UTC (rev 227304)
@@ -96,8 +96,11 @@
});
}
-bool MockPaymentCoordinator::showPaymentUI(const URL&, const Vector<URL>&, const ApplePaySessionPaymentRequest&)
+bool MockPaymentCoordinator::showPaymentUI(const URL&, const Vector<URL>&, const ApplePaySessionPaymentRequest& request)
{
+ if (request.shippingContact().pkContact())
+ m_shippingAddress = request.shippingContact().toApplePayPaymentContact(request.version());
+
ASSERT(showCount == hideCount);
++showCount;
dispatchIfShowing([mainFrame = makeRef(m_mainFrame)]() {
@@ -108,9 +111,8 @@
void MockPaymentCoordinator::completeMerchantValidation(const PaymentMerchantSession&)
{
- dispatchIfShowing([mainFrame = makeRef(m_mainFrame), shippingAddress = m_shippingAddress]() {
- ApplePayPaymentContact contact = shippingAddress;
- mainFrame->paymentCoordinator().didSelectShippingContact(MockPaymentContact { WTFMove(contact) });
+ dispatchIfShowing([mainFrame = makeRef(m_mainFrame), shippingAddress = m_shippingAddress]() mutable {
+ mainFrame->paymentCoordinator().didSelectShippingContact(MockPaymentContact { WTFMove(shippingAddress) });
});
}
Modified: branches/safari-605-branch/Source/WebCore/testing/MockPaymentCoordinator.h (227303 => 227304)
--- branches/safari-605-branch/Source/WebCore/testing/MockPaymentCoordinator.h 2018-01-22 17:57:07 UTC (rev 227303)
+++ branches/safari-605-branch/Source/WebCore/testing/MockPaymentCoordinator.h 2018-01-22 17:57:12 UTC (rev 227304)
@@ -71,7 +71,7 @@
void updateTotalAndLineItems(const ApplePaySessionPaymentRequest::TotalAndLineItems&);
MainFrame& m_mainFrame;
- MockPaymentAddress m_shippingAddress;
+ ApplePayPaymentContact m_shippingAddress;
ApplePayLineItem m_total;
Vector<ApplePayLineItem> m_lineItems;
Vector<String> m_availablePaymentNetworks;