Re: [w3c/ServiceWorker] Clients.get: block on reserved clients. (#1315)

wanderview commented on this pull request.



> @@ -1148,6 +1148,11 @@ spec: webappsec-referrer-policy; urlPrefix: https://w3c.github.io/webappsec-refe
         1. Run these substeps <a>in parallel</a>:
             1. For each [=/service worker client=] |client| whose [=service worker client/origin=] is the <a lt="same origin">same</a> as the associated [=ServiceWorkerGlobalScope/service worker=]'s [=environment settings object/origin=]:
                 1. If |client|'s [=environment/id=] is not |id|, continue to the next iteration of the loop.
+                1. If |client|'s [=environment/execution ready flag=] is unset, then:
+                    1. Wait for the [=/HTTP fetch=] steps using the [=/request=] that |client| is the associated [=request/reserved client=] of to finish.

I agree that waiting for a state change is probably better.  At least, it matches what I've anticipated implementing.

Note, I'm not sure we need a tri-state enum, though.  I think we can just get by with an execution ready boolean.  If the browser fails to mark a client as execution ready I believe it should simply destroy the client fairly quickly.  So we can just listen for "client goes away before being marked execution ready".

-- 
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/ServiceWorker/pull/1315#discussion_r191448759

Received on Tuesday, 29 May 2018 14:36:09 UTC