- From: Domenic Denicola <notifications@github.com>
- Date: Tue, 05 Jun 2018 15:40:23 -0700
- To: w3c/payment-request <payment-request@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3c/payment-request/pull/695/review/126178465@github.com>
domenic requested changes on this pull request.
Confused how the payment method change steps are supposed to be implemented...
> @@ -3476,6 +3606,49 @@ <h2>
</li>
</ol>
</section>
+ <section>
+ <h2>
+ Payment method changed algorithm
+ </h2>
+ <p>
+ The user agent MUST run the <dfn>payment method changed
+ algorithm</dfn> runs when the user changes <a>payment method</a>. The
extra word "runs"
> @@ -3476,6 +3606,49 @@ <h2>
</li>
</ol>
</section>
+ <section>
+ <h2>
+ Payment method changed algorithm
+ </h2>
+ <p>
+ The user agent MUST run the <dfn>payment method changed
+ algorithm</dfn> runs when the user changes <a>payment method</a>. The
+ algorithm takes <var>methodDetails</var>, which is either
+ <a data-cite="!WEBIDL#idl-dictionary">dictionary</a> or an
+ <a data-cite="!WEBIDL#idl-object">object</a> or null, and a
+ <var>methodName</var>, which is a DOMString that represents the
+ <a>payment method identifier</a> of the <a>payment handler</a> the
+ user is interacting with:
How does the user agent determine _methodName_ and _methodDetails_?
> + </li>
+ <li>
+ <a>Queue a task</a> on the <a>user interaction task source</a> to
+ run the following steps:
+ <ol>
+ <li>If the <var>request</var>.<a>[[\updating]]</a> is true, then
+ terminate this algorithm and take no further action. Only one
+ update may take place at a time. The <a>user agent</a> SHOULD
+ ensure that this never occurs.
+ </li>
+ <li>If the <var>request</var>.<a>[[\state]]</a> is not set to
+ "<a>interactive</a>", then terminate this algorithm and take no
+ further action. The <a>user agent</a> user interface SHOULD
+ ensure that this never occurs.
+ </li>
+ <li data-link-for="PaymentMethodChangeEvent">Fire an event
Ideally "fire an event" should be linked
> </table>
</section>
+ <section data-dfn-for="PaymentMethodChangeEvent" data-link-for=
+ "PaymentMethodChangeEvent">
+ <h2>
+ <dfn>PaymentMethodChangeEvent</dfn> interface
+ </h2>
+ <pre class="idl">
+ [Constructor(DOMString type, optional PaymentMethodChangeEventInit eventInitDict), SecureContext, Exposed=Window]
+ interface PaymentMethodChangeEvent : PaymentRequestUpdateEvent {
+ readonly attribute DOMString methodName;
+ readonly attribute object? methodDetails;
+ };
+ </pre>
+ <section>
+ <h2>
Soooo I know it goes against all previous advice and good sense, but currently for events we don't use internal slots :(. Instead we use the old-style, terrible, "When getting, returns the value it was initialized with". I think making this less terrible is mostly tracked by https://github.com/whatwg/dom/issues/364, /cc @annevk. But in the end we do want to end up in a world that doesn't require people to explicitly define slots and return them for every event property, so I would take the slots out for now. Especially since nothing in this spec sets them.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3c/payment-request/pull/695#pullrequestreview-126178465
Received on Tuesday, 5 June 2018 22:40:48 UTC