- Revision
- 213385
- Author
- wei...@apple.com
- Date
- 2017-03-03 14:19:06 -0800 (Fri, 03 Mar 2017)
Log Message
REGRESSION (r209760): Apple Pay doesn't work on casper.com, shopspring.com, maybe other sites
<rdar://problem/30313445>
https://bugs.webkit.org/show_bug.cgi?id=169149
Reviewed by Simon Fraser.
Source/WebCore:
Relax restriction that the ApplePayShippingMethod sequence must not be empty. This
was incorrect.
* Modules/applepay/ApplePaySession.cpp:
(WebCore::convertAndValidate):
LayoutTests:
* http/tests/ssl/applepay/ApplePaySession-expected.txt:
* http/tests/ssl/applepay/ApplePaySession.html:
Update test for relaxed ApplePayShippingMethod sequence requirements.
Modified Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (213384 => 213385)
--- trunk/LayoutTests/ChangeLog 2017-03-03 21:50:07 UTC (rev 213384)
+++ trunk/LayoutTests/ChangeLog 2017-03-03 22:19:06 UTC (rev 213385)
@@ -1,3 +1,15 @@
+2017-03-03 Sam Weinig <s...@webkit.org>
+
+ REGRESSION (r209760): Apple Pay doesn't work on casper.com, shopspring.com, maybe other sites
+ <rdar://problem/30313445>
+ https://bugs.webkit.org/show_bug.cgi?id=169149
+
+ Reviewed by Simon Fraser.
+
+ * http/tests/ssl/applepay/ApplePaySession-expected.txt:
+ * http/tests/ssl/applepay/ApplePaySession.html:
+ Update test for relaxed ApplePayShippingMethod sequence requirements.
+
2017-03-03 Alex Christensen <achristen...@webkit.org>
[URLParser] Fix file: as a relative file URL
Modified: trunk/LayoutTests/http/tests/ssl/applepay/ApplePaySession-expected.txt (213384 => 213385)
--- trunk/LayoutTests/http/tests/ssl/applepay/ApplePaySession-expected.txt 2017-03-03 21:50:07 UTC (rev 213384)
+++ trunk/LayoutTests/http/tests/ssl/applepay/ApplePaySession-expected.txt 2017-03-03 22:19:06 UTC (rev 213385)
@@ -349,6 +349,9 @@
SETUP: request = validRequest(); request.shippingMethods = undefined;
PASS new ApplePaySession(2, request) did not throw exception.
+SETUP: request = validRequest(); request.shippingMethods = [];
+PASS new ApplePaySession(2, request) did not throw exception.
+
SETUP: request = validRequest(); request.shippingMethods = '';
PASS new ApplePaySession(2, request) threw exception TypeError: Value is not a sequence.
@@ -364,9 +367,6 @@
SETUP: request = validRequest(); request.shippingMethods = { };
PASS new ApplePaySession(2, request) threw exception TypeError: Type error.
-SETUP: request = validRequest(); request.shippingMethods = [];
-PASS new ApplePaySession(2, request) threw exception TypeError: At least one shipping method must be provided..
-
SETUP: request = validRequest(); request.shippingMethods = [{ }];
PASS new ApplePaySession(2, request) threw exception TypeError: Member ApplePayShippingMethod.amount is required and must be an instance of DOMString.
Modified: trunk/LayoutTests/http/tests/ssl/applepay/ApplePaySession.html (213384 => 213385)
--- trunk/LayoutTests/http/tests/ssl/applepay/ApplePaySession.html 2017-03-03 21:50:07 UTC (rev 213384)
+++ trunk/LayoutTests/http/tests/ssl/applepay/ApplePaySession.html 2017-03-03 22:19:06 UTC (rev 213385)
@@ -188,12 +188,12 @@
debug("Testing PaymentRequest.shippingMethods")
debug("");
logAndShouldNotThrow("request = validRequest(); request.shippingMethods = undefined;", "new ApplePaySession(2, request)")
+ logAndShouldNotThrow("request = validRequest(); request.shippingMethods = [];", "new ApplePaySession(2, request)")
logAndShouldThrow("request = validRequest(); request.shippingMethods = '';", "new ApplePaySession(2, request)")
logAndShouldThrow("request = validRequest(); request.shippingMethods = 'invalid';", "new ApplePaySession(2, request)")
logAndShouldThrow("request = validRequest(); request.shippingMethods = null;", "new ApplePaySession(2, request)")
logAndShouldThrow("request = validRequest(); request.shippingMethods = 7;", "new ApplePaySession(2, request)")
logAndShouldThrow("request = validRequest(); request.shippingMethods = { };", "new ApplePaySession(2, request)")
- logAndShouldThrow("request = validRequest(); request.shippingMethods = [];", "new ApplePaySession(2, request)")
logAndShouldThrow("request = validRequest(); request.shippingMethods = [{ }];", "new ApplePaySession(2, request)")
logAndShouldThrow("request = validRequest(); request.shippingMethods = [{ amount: '', }];", "new ApplePaySession(2, request)")
logAndShouldThrow("request = validRequest(); request.shippingMethods = [{ amount: '', detail: '' }];", "new ApplePaySession(2, request)")
Modified: trunk/Source/WebCore/ChangeLog (213384 => 213385)
--- trunk/Source/WebCore/ChangeLog 2017-03-03 21:50:07 UTC (rev 213384)
+++ trunk/Source/WebCore/ChangeLog 2017-03-03 22:19:06 UTC (rev 213385)
@@ -1,3 +1,17 @@
+2017-03-03 Sam Weinig <s...@webkit.org>
+
+ REGRESSION (r209760): Apple Pay doesn't work on casper.com, shopspring.com, maybe other sites
+ <rdar://problem/30313445>
+ https://bugs.webkit.org/show_bug.cgi?id=169149
+
+ Reviewed by Simon Fraser.
+
+ Relax restriction that the ApplePayShippingMethod sequence must not be empty. This
+ was incorrect.
+
+ * Modules/applepay/ApplePaySession.cpp:
+ (WebCore::convertAndValidate):
+
2017-03-03 Alex Christensen <achristen...@webkit.org>
[URLParser] Fix file: as a relative file URL
Modified: trunk/Source/WebCore/Modules/applepay/ApplePaySession.cpp (213384 => 213385)
--- trunk/Source/WebCore/Modules/applepay/ApplePaySession.cpp 2017-03-03 21:50:07 UTC (rev 213384)
+++ trunk/Source/WebCore/Modules/applepay/ApplePaySession.cpp 2017-03-03 22:19:06 UTC (rev 213385)
@@ -297,9 +297,6 @@
static ExceptionOr<Vector<PaymentRequest::ShippingMethod>> convertAndValidate(Vector<ApplePayShippingMethod>&& shippingMethods)
{
- if (shippingMethods.isEmpty())
- return Exception { TypeError, "At least one shipping method must be provided." };
-
Vector<PaymentRequest::ShippingMethod> result;
result.reserveInitialCapacity(shippingMethods.size());