Re: [w3c/payment-request] Dont block UI if .updateWith() not called (closes #589) (#591)

domenic requested changes on this pull request.



> @@ -2417,6 +2422,9 @@
             <li>If <var>event</var>'s <a>isTrusted</a> attribute is false, then
             then <a>throw</a> a "<a>InvalidStateError</a>" <a>DOMException</a>.
             </li>
+            <li>If <var>event</var>.<a>[[\didUpdate]]</a> is true, then

So this would happen if someone calls updateWith(p), p settles, and then someone calls updateWith(q), right?

Whereas the next line would happen if someone calls updateWith(p), and before p settles, someone calls updateWith(q)?

If I got that right, then I'd suggest adding quick examples or notes inside these steps re-stating the above.

> @@ -2880,9 +2893,18 @@
           further action. The <a>user agent</a> user interface should ensure
           that this never occurs.
           </li>
-          <li>
-            <a>Fire an event</a> named <var>name</var> at <var>request</var>
-            using <a>PaymentRequestUpdateEvent</a>.
+          <li>Let <var>event</var> be the result of <a>fire an event</a> named

This doesn't work. Fire an event returns a boolean, not an event.

You should instead:

- Let _event_ be the result of [creating an event](https://dom.spec.whatwg.org/#concept-event-create) using Event.
- Initialize _event_'s type attribute to _name_
- [Dispatch](https://dom.spec.whatwg.org/#concept-event-dispatch) _event_ at _target_.

> @@ -2880,9 +2893,18 @@
           further action. The <a>user agent</a> user interface should ensure
           that this never occurs.
           </li>
-          <li>
-            <a>Fire an event</a> named <var>name</var> at <var>request</var>
-            using <a>PaymentRequestUpdateEvent</a>.
+          <li>Let <var>event</var> be the result of <a>fire an event</a> named
+          <var>name</var> at <var>request</var> using
+          <a>PaymentRequestUpdateEvent</a>.
+          </li>
+          <li data-link-for="PaymentRequestUpdateEvent">If
+          <var>event</var>.<a>[[\waitForUpdate]]</a> is true, disable any part
+          of the user interface that could cause another update event to be
+          fired. Wait for <var>event</var>.<a>updateWith()</a> method's
+          <var>detailsPromise</var> to settle.

", then re-enable the relevant parts of user interface", I think.

Maybe this should be a series of nested steps under the "If ... is true".

-- 
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/591#pullrequestreview-58441048

Received on Thursday, 24 August 2017 16:53:13 UTC