- From: Jake Archibald <notifications@github.com>
- Date: Tue, 21 Jan 2020 05:27:30 -0800
- To: w3c/ServiceWorker <ServiceWorker@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3c/ServiceWorker/pull/1496/review/345864435@github.com>
jakearchibald requested changes on this pull request. I've expanded some of the lines out as it was a little tricky to work out which "if" was applying to what. One remaining issue: |workerRealm| is out of scope when it's used. > - 1. Invoke [=Update Service Worker Extended Events Set=] with |activeWorker| and |e|. - 1. If |e|'s [=FetchEvent/respond-with entered flag=] is set, set |respondWithEntered| to true. - 1. If |e|'s [=FetchEvent/wait to respond flag=] is set, then: - 1. Wait until |e|'s [=FetchEvent/wait to respond flag=] is unset. - 1. If |e|'s [=FetchEvent/respond-with error flag=] is set, set |handleFetchFailed| to true. - 1. Else, set |response| to |e|'s [=FetchEvent/potential response=]. - 1. If |e|'s <a>canceled flag</a> is set, set |eventCanceled| to true. - 1. If |fetchInstance| is [=fetch/terminated=], then [=queue a task=] to [=AbortSignal/signal abort=] on |requestObject|'s {{Request/signal}}. - - If |task| is discarded, set |handleFetchFailed| to true. - - The |task| *must* use |activeWorker|'s <a>event loop</a> and the <a>handle fetch task source</a>. + 1. Else: + 1. Let |workerRealm| be the [=relevant realm=] of the |activeWorker|'s [=service worker/global object=]. + 1. Set |eventHandled| to [=a new promise=] in |workerRealm|. + 1. [=queue a task=] |task| to run the following substeps: ```suggestion 1. [=Queue a task=] |task| to run the following substeps: ``` > 1. Wait for |task| to have executed or for |handleFetchFailed| to be true. 1. If |shouldSoftUpdate| is true, then [=in parallel=] run the [=Soft Update=] algorithm with |registration|. - 1. If |respondWithEntered| is false, then return a [=network error=] if |eventCanceled| is true and null otherwise. - 1. If |handleFetchFailed| is true, then return a [=network error=]. - 1. Return |response|. + 1. If |respondWithEntered| is false, then: + 1. If |eventCanceled| is true, then [=reject=] |eventHandled| with a "{{NetworkError}}" {{DOMException}} in |workerRealm| if |eventHandled| is not null and return a [=network error=]. ```suggestion 1. If |eventCanceled| is true, then: 1. If |eventHandled| is not null, then [=reject=] |eventHandled| with a "{{NetworkError}}" {{DOMException}} in |workerRealm|. 1. Return a [=network error=]. ``` > 1. Wait for |task| to have executed or for |handleFetchFailed| to be true. 1. If |shouldSoftUpdate| is true, then [=in parallel=] run the [=Soft Update=] algorithm with |registration|. - 1. If |respondWithEntered| is false, then return a [=network error=] if |eventCanceled| is true and null otherwise. - 1. If |handleFetchFailed| is true, then return a [=network error=]. - 1. Return |response|. + 1. If |respondWithEntered| is false, then: + 1. If |eventCanceled| is true, then [=reject=] |eventHandled| with a "{{NetworkError}}" {{DOMException}} in |workerRealm| if |eventHandled| is not null and return a [=network error=]. + 1. [=Resolve=] |eventHandled| if |eventHandled| is not null and return null. ```suggestion 1. If |eventHandled| is not null, then [=resolve=] |eventHandled|. 1. Return null. ``` > 1. Wait for |task| to have executed or for |handleFetchFailed| to be true. 1. If |shouldSoftUpdate| is true, then [=in parallel=] run the [=Soft Update=] algorithm with |registration|. - 1. If |respondWithEntered| is false, then return a [=network error=] if |eventCanceled| is true and null otherwise. - 1. If |handleFetchFailed| is true, then return a [=network error=]. - 1. Return |response|. + 1. If |respondWithEntered| is false, then: + 1. If |eventCanceled| is true, then [=reject=] |eventHandled| with a "{{NetworkError}}" {{DOMException}} in |workerRealm| if |eventHandled| is not null and return a [=network error=]. + 1. [=Resolve=] |eventHandled| if |eventHandled| is not null and return null. + 1. If |handleFetchFailed| is true, then [=reject=] |eventHandled| with a "{{NetworkError}}" {{DOMException}} in |workerRealm| if |eventHandled| is not null and return a [=network error=]. ```suggestion 1. If |handleFetchFailed| is true, then: 1. If |eventHandled| is not null, then [=reject=] |eventHandled| with a "{{NetworkError}}" {{DOMException}} in |workerRealm|. 1. Return a [=network error=]. ``` > 1. Wait for |task| to have executed or for |handleFetchFailed| to be true. 1. If |shouldSoftUpdate| is true, then [=in parallel=] run the [=Soft Update=] algorithm with |registration|. - 1. If |respondWithEntered| is false, then return a [=network error=] if |eventCanceled| is true and null otherwise. - 1. If |handleFetchFailed| is true, then return a [=network error=]. - 1. Return |response|. + 1. If |respondWithEntered| is false, then: + 1. If |eventCanceled| is true, then [=reject=] |eventHandled| with a "{{NetworkError}}" {{DOMException}} in |workerRealm| if |eventHandled| is not null and return a [=network error=]. + 1. [=Resolve=] |eventHandled| if |eventHandled| is not null and return null. + 1. If |handleFetchFailed| is true, then [=reject=] |eventHandled| with a "{{NetworkError}}" {{DOMException}} in |workerRealm| if |eventHandled| is not null and return a [=network error=]. + 1. [=Resolve=] |eventHandled| if |eventHandled| is not null and return |response|. ```suggestion 1. If |eventHandled| is not null, then [=resolve=] |eventHandled|. 1. Return |response|. ``` -- 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/1496#pullrequestreview-345864435
Received on Tuesday, 21 January 2020 13:27:35 UTC