diff --git a/specs/paymentrequest.html b/specs/paymentrequest.html index d0e62dc8..1bf714ce 100644 --- a/specs/paymentrequest.html +++ b/specs/paymentrequest.html @@ -231,7 +231,7 @@
The abort method may be called if the web page wishes to abort the payment
- request after the show method has been called and before the request@[[\acceptPromise]]
- has been resolved.
+ The abort method may be called if the web page wishes to tell the
+ user agent to abort the payment request and to tear down any user interface that
+ might be shown. abort can only be called after the show method
+ has been called and before the request@[[\acceptPromise]] has been resolved.
+ For example, a web page might choose to do this if the goods they are selling are
+ only available for a limited amount of time. If the user does not accept the payment request
+ within the allowed time period, then the request will be aborted.
+
+ A user agent might not always be able to abort a request. For example, if the user agent
+ has delegated responsibility for the request to another app. In this situation, abort will
+ reject the returned Promise.
+
+ The architecture document suggests that payment apps may take + numerous forms, including as web-based apps. This specification + should describe how the user-agent will pass the payment request + data and the complete signal to a web-based payment app and also how + it will receive the payment response from the payment app. +
+ ++ This specification should describe how the user agent will pass the + payment request data and the complete signal to a native payment app + and also how it will receive the payment response from the payment app. +
The abort method MUST act as follows:
InvalidStateError.InvalidStateError and abort this algorithm.undefined.The internal slot [[\state]] follows the following state transitions:
- The PaymentRequest interface allows a web page to call abort
- to tell the user agent to abort the payment request and to tear down any user interface that
- might be shown. For example, a web page might choose to do this if the goods they are selling are
- only available for a limited amount of time. If the user does not accept the payment request
- within the allowed time period, then the request will be aborted.
-
- A user agent might not always be able to abort a request. For example, if the user agent - has delegated responsibility for the request to another app. To support this situation, - the user agent must run the User agent delegates payment request algorithm. - The algorithm MUST run the following steps: -
- -PaymentRequest object that the user is
- interacting with.
- - The architecture document suggests that payment apps may take - numerous forms, including as web-based apps. This specification - should describe how the user-agent will pass the payment request - data and the complete signal to a web-based payment app and also how - it will receive the payment response from the payment app. -
- -We believe there are user agent configurations that can cause the UI to get into a state - where cancellation by the web page during user interaction is difficult. Users should still - be able to cancel the payment but script will not be able to. We need to investigate in more - detail the consequences of this and whether it is really needed.
-If we specify delegated then it isn't necessary for all user agents to be
- able to move to this state but it would be necessary for all payment flows that wish to call
- abort to account for the situation where this may fail in the delegated
- state.
- This specification should describe how the user agent will pass the - payment request data and the complete signal to a native payment app - and also how it will receive the payment response from the payment app. -
- -@@ -1242,8 +1208,8 @@
delegated, then terminate this algorithm and take no further action.
+ If request@[[\state]] is not interactive, then terminate this
+ algorithm and take no further action.
The user agent user interface should ensure that this never occurs.