- From: Jake Archibald <notifications@github.com>
- Date: Wed, 13 Jun 2018 07:38:16 -0700
- To: w3c/ServiceWorker <ServiceWorker@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3c/ServiceWorker/pull/1323/review/128405390@github.com>
jakearchibald commented on this pull request. Only got questions this time round. > @@ -222,6 +222,13 @@ spec: webappsec-referrer-policy; urlPrefix: https://w3c.github.io/webappsec-refe A <dfn export id="dfn-service-worker-client" for="">service worker client</dfn> is an [=environment=]. + A [=/service worker client=] has an associated <dfn export>discarded flag</dfn>. It is initially unset. + + Each [=/service worker client=] has the following [=environment discarding steps=]: + 1. Set |client|'s [=discarded flag=]. + + Note: Implementations can discard clients whose [=discarded flag=] is set. "Implementations can discard clients" sounds normative, but maybe it's defined somewhere else? Otherwise, add it to the definition of the flag. Eg: ``` A [=/service worker client=] has an associated <dfn export>discarded flag</dfn>. It is initially unset. User agents may discard clients whose [=discarded flag=] is set. ``` (it looks like we tend to say "user agents" rather than "implementations") > + 1. Resolve |promise| with |clientObject| and abort these steps. + 1. Else: + 1. Let |browsingContext| be null. + 1. Let |visibilityState| be null. + 1. Let |focusState| be false. + 1. Let |ancestorOriginsList| be the empty list. + 1. If |client| is an [=environment settings object=], set |browsingContext| to |client|'s [=environment settings object/global object=]'s [=/browsing context=]. + 1. Else, set |browsingContext| to |client|’s [=environment/target browsing context=]. + 1. [=Queue a task=] |task| to run the following substeps on |browsingContext|'s [=event loop=] using the [=user interaction task source=]: + 1. Set |visibilityState| to |browsingContext|'s [=active document=]'s {{Document/visibilityState}} attribute value. + 1. Set |focusState| to the result of running the [=has focus steps=] with |browsingContext|'s [=active document=] as the argument. + 1. If |client| is a [=window client=], set |ancestorOriginsList| to |browsingContext|'s [=active document=]'s [=relevant global object=]'s {{Location}} object's [=Location/ancestor origins list=]'s associated list. + 1. Wait for |task| to have executed. + 1. If |client|'s [=discarded flag=] is set, resolve |promise| with undefined and abort these steps. + 1. Let |windowClient| be the result of running [=Create Window Client=] algorithm with |client|, |visibilityState|, |focusState|, and |ancestorOriginsList| as the arguments. + 1. Resolve |promise| with |windowClient|. This might be a silly question, but is it possible for a client to end up representing another origin, or is the client discarded and a new one created in that case? -- 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/1323#pullrequestreview-128405390
Received on Wednesday, 13 June 2018 14:38:39 UTC