Commit 12451de2 authored by Jinho Bang's avatar Jinho Bang Committed by Commit Bot

PaymentRequest: retry()'s errorFields should be optional per WebIDL

Related spec change:
  https://github.com/w3c/payment-request/pull/805

Bug: 861704
Change-Id: Ic15a8cd0b66c52277abecbd6b976c5e4af2f9022
Reviewed-on: https://chromium-review.googlesource.com/c/1312144
Commit-Queue: Jinho Bang <jinho.bang@samsung.com>
Reviewed-by: default avatarRouslan Solomakhin <rouslan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#605173}
parent b31a306d
...@@ -153,7 +153,7 @@ interface PaymentResponse : EventTarget { ...@@ -153,7 +153,7 @@ interface PaymentResponse : EventTarget {
[NewObject] [NewObject]
Promise<void> complete(optional PaymentComplete result = "unknown"); Promise<void> complete(optional PaymentComplete result = "unknown");
[NewObject] [NewObject]
Promise<void> retry(PaymentValidationErrors errorFields); Promise<void> retry(optional PaymentValidationErrors errorFields);
attribute EventHandler onpayerdetailchange; attribute EventHandler onpayerdetailchange;
}; };
......
...@@ -28,7 +28,7 @@ function checkCompletedCantRetry(button) { ...@@ -28,7 +28,7 @@ function checkCompletedCantRetry(button) {
return promise_rejects( return promise_rejects(
t, t,
"InvalidStateError", "InvalidStateError",
response.retry({}), response.retry(),
"response.[[complete]] is true, so rejects with InvalidStateError." "response.[[complete]] is true, so rejects with InvalidStateError."
); );
}, button.textContent.trim()); }, button.textContent.trim());
...@@ -38,11 +38,11 @@ function repeatedCallsToRetry(button) { ...@@ -38,11 +38,11 @@ function repeatedCallsToRetry(button) {
button.disabled = true; button.disabled = true;
promise_test(async t => { promise_test(async t => {
const { response } = await getPaymentRequestResponse(); const { response } = await getPaymentRequestResponse();
const retryPromise = response.retry({}); const retryPromise = response.retry();
await promise_rejects( await promise_rejects(
t, t,
"InvalidStateError", "InvalidStateError",
response.retry({}), response.retry(),
"Calling retry() again rejects with an InvalidStateError" "Calling retry() again rejects with an InvalidStateError"
); );
await retryPromise; await retryPromise;
...@@ -54,7 +54,7 @@ function callCompleteWhileRetrying(button) { ...@@ -54,7 +54,7 @@ function callCompleteWhileRetrying(button) {
button.disabled = true; button.disabled = true;
promise_test(async t => { promise_test(async t => {
const { response } = await getPaymentRequestResponse(); const { response } = await getPaymentRequestResponse();
const retryPromise = response.retry({}); const retryPromise = response.retry();
await promise_rejects( await promise_rejects(
t, t,
"InvalidStateError", "InvalidStateError",
...@@ -70,7 +70,7 @@ function callingRequestAbortMustNotAbort(button) { ...@@ -70,7 +70,7 @@ function callingRequestAbortMustNotAbort(button) {
button.disabled = true; button.disabled = true;
promise_test(async t => { promise_test(async t => {
const { response, request } = await getPaymentRequestResponse(); const { response, request } = await getPaymentRequestResponse();
const retryPromise = response.retry({}); const retryPromise = response.retry();
await promise_rejects( await promise_rejects(
t, t,
"InvalidStateError", "InvalidStateError",
...@@ -87,12 +87,12 @@ function canRetryMultipleTimes(button) { ...@@ -87,12 +87,12 @@ function canRetryMultipleTimes(button) {
promise_test(async t => { promise_test(async t => {
const { response } = await getPaymentRequestResponse(); const { response } = await getPaymentRequestResponse();
assert_equals( assert_equals(
await response.retry({}), await response.retry(),
undefined, undefined,
"Expected undefined as the resolve value" "Expected undefined as the resolve value"
); );
assert_equals( assert_equals(
await response.retry({}), await response.retry(),
undefined, undefined,
"Expected undefined as the resolve value" "Expected undefined as the resolve value"
); );
...@@ -100,7 +100,7 @@ function canRetryMultipleTimes(button) { ...@@ -100,7 +100,7 @@ function canRetryMultipleTimes(button) {
await promise_rejects( await promise_rejects(
t, t,
"InvalidStateError", "InvalidStateError",
response.retry({}), response.retry(),
"Calling retry() after complete() rejects with a InvalidStateError" "Calling retry() after complete() rejects with a InvalidStateError"
); );
}, button.textContent.trim()); }, button.textContent.trim());
...@@ -113,13 +113,13 @@ function userCanAbortARetry(button) { ...@@ -113,13 +113,13 @@ function userCanAbortARetry(button) {
await promise_rejects( await promise_rejects(
t, t,
"AbortError", "AbortError",
response.retry({}), response.retry(),
"The user aborting a retry rejects with a AbortError" "The user aborting a retry rejects with a AbortError"
); );
await promise_rejects( await promise_rejects(
t, t,
"InvalidStateError", "InvalidStateError",
response.retry({}), response.retry(),
"After the user aborts, response [[complete]] is true so retry() must reject with InvalidStateError" "After the user aborts, response [[complete]] is true so retry() must reject with InvalidStateError"
); );
await promise_rejects( await promise_rejects(
...@@ -154,7 +154,7 @@ function abortTheUpdate(button) { ...@@ -154,7 +154,7 @@ function abortTheUpdate(button) {
resolve(); resolve();
}; };
}); });
const retryPromise = response.retry({}); const retryPromise = response.retry();
await shippingChangedPromise; await shippingChangedPromise;
await promise_rejects( await promise_rejects(
t, t,
...@@ -175,11 +175,11 @@ function callingRetryReturnsUniquePromise(button){ ...@@ -175,11 +175,11 @@ function callingRetryReturnsUniquePromise(button){
button.disabled = true; button.disabled = true;
promise_test(async t => { promise_test(async t => {
const { response } = await getPaymentRequestResponse(); const { response } = await getPaymentRequestResponse();
const retryPromise = response.retry({}); const retryPromise = response.retry();
const promises = new Set([ const promises = new Set([
retryPromise, retryPromise,
response.retry({}), response.retry(),
response.retry({}), response.retry(),
]); ]);
assert_equals(promises.size, 3, "Must have three unique objects"); assert_equals(promises.size, 3, "Must have three unique objects");
await retryPromise; await retryPromise;
......
...@@ -30,7 +30,7 @@ enum PaymentComplete { ...@@ -30,7 +30,7 @@ enum PaymentComplete {
readonly attribute DOMString? payerPhone; readonly attribute DOMString? payerPhone;
[CallWith=ScriptState, NewObject] Promise<void> complete(optional PaymentComplete paymentResult = "unknown"); [CallWith=ScriptState, NewObject] Promise<void> complete(optional PaymentComplete paymentResult = "unknown");
[CallWith=ScriptState, NewObject, RuntimeEnabled=PaymentRetry] Promise<void> retry(PaymentValidationErrors errorFields); [CallWith=ScriptState, NewObject, RuntimeEnabled=PaymentRetry] Promise<void> retry(optional PaymentValidationErrors errorFields);
[RuntimeEnabled=PaymentRetry] attribute EventHandler onpayerdetailchange; [RuntimeEnabled=PaymentRetry] attribute EventHandler onpayerdetailchange;
}; };
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment