diff --git a/index.html b/index.html index 23f6311e..2369dc3b 100644 --- a/index.html +++ b/index.html @@ -1029,6 +1029,17 @@

complete()

supply a value for result. +
+

After the payment request has been accepted and the PaymentResponse returned to + the page but before the page calls complete the payment request user interface remains in a pending + state. At this point the user interface should not offer a cancel command because acceptance of the + payment request has been returned. However, if something goes wrong and the page never calls complete + then the user interface is blocked.

+

For this reason, implementations may choose to impose a timeout for the page to call complete. + If the timeout expires then the implementation will behave as if complete was called with no + arguments.

+
+

The complete method MUST act as follows:

  1. Let promise be a new Promise.
  2. @@ -1137,14 +1148,18 @@

    updateWith()

    to indicate that the payment request is valid again.

    The user agent SHOULD disable any part of the user interface that could cause another update event to be fired. Only one update may be processed at a time.

    -
    - We should consider adding a timeout mechanism so that if the page never resolves - the promise within a reasonable amount of time then the user agent behaves as if - the promise was rejected. -
  3. Return from the method and asynchronously perform the remaining steps.
  4. -
  5. Wait until d settles.
  6. +
  7. + Wait until d settles. +
    + If d never settles then the payment request is blocked. Users should always be able + to cancel a payment request. Implementations may choose to implement a timeout for pending updates + if d doesn't settle in a reasonable amount of time. If an implementation + chooses to implement a timeout, d should be rejected when the timeout expires. + Such a timeout is a fatal error for the payment request. +
    +
  8. If d is rejected, then:
    1. Abort the current user interaction and close down any remaining user interface.