- From: Matt Falkenhagen <notifications@github.com>
- Date: Thu, 10 Jun 2021 22:33:24 -0700
- To: w3c/ServiceWorker <ServiceWorker@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3c/ServiceWorker/pull/1444/review/681458881@github.com>
@mfalken approved this pull request.
I'm very sorry for the long delay. I am not an expert here, but this looks good to me. In particular, my main concern from the previous review about startFailure has been addressed. Thank you.
> @@ -2940,8 +2946,17 @@ spec: webappsec-referrer-policy; urlPrefix: https://w3c.github.io/webappsec-refe
1. Create a new {{WorkerLocation}} object and associate it with |workerGlobalScope|.
1. If the <a>run CSP initialization for a global object</a> algorithm returns "<code>Blocked</code>" when executed upon |workerGlobalScope|, set |startFailed| to true and abort these steps.
1. If |serviceWorker| is an <a>active worker</a>, and there are any <a>tasks</a> queued in |serviceWorker|'s <a>containing service worker registration</a>'s [=service worker registration/task queues=], <a lt="queue a task">queue</a> them to |serviceWorker|'s <a>event loop</a>'s [=/task queues=] in the same order using their original <a>task sources</a>.
- 1. Let |evaluationStatus| be the result of <a lt="run a classic script">running the classic script</a> |script| if |script| is a <a>classic script</a>, otherwise, the result of <a lt="run a module script">running the module script</a> |script| if |script| is a [=module script=].
- 1. If |evaluationStatus|.\[[Value]] is empty, this means the script was not evaluated. Set |startFailed| to true and abort these steps.
+ 1. Let |evaluationStatus| be null.
+ 1. If |script| is a [=classic script=], then:
+ 1. Set |evaluationStatus| to the result of [=run a classic script|running the classic script=] |script|.
+ 1. If |evaluationStatus|.\[[Value]] is empty, this means the script was not evaluated. Set |startFailed| to true and abort these steps.
+ 1. Otherwise, if |script| is a [=module script=], then:
+ 1. Let |evaluationPromise| be the result of [=run a module script|running the module script=] |script|, with report errors set to false.
+ 1. Assert: |evaluationPromise|.\[[PromiseState]] is not "pending".
+ 1. If |evaluationPromise|.\[[PromiseState]] is "rejected":
+ 1. Set |evaluationStatus| to [$ThrowCompletion$](|evaluationPromise|.\[[PromiseResult]]).
ThrowCompletion() does not become a link in the Preview. Is it possible to fix it?
> +
+ : Input
+ :: |record|, a [=Module Record=]
+ :: |moduleMap|, a [=/module map=]
+ :: |base|, a [=/URL=]
+ :: |seen|, a [=/set=] of [=/URLs=]
+ : Output
+ :: a boolean
+
+ 1. If |record| is not a [=Cyclic Module Record=], then:
+ 1. Return false.
+ 1. If |record|.\[[Async]] is true, then:
+ 1. Return true.
+ 1. [=list/For each=] string |requested| of |record|.\[[RequestedModules]],
+ 1. Let |url| be the result of [=resolve a module specifier|resolving a module specifier=] given |base| and |requested|.
+ 1. Assert: |url| is never failure, because [=resolve a module specifier|resolving a module specifier=] must have been previously successful with these same two arguments.
While reviewing this I was not sure if this comment was resolved. If I understand correctly, per the next comment thread, the assert failure was fixed in a later commit to this PR that added the following:
> If |moduleMap|[|url|] does not have a [=script/record=], then return false.
--
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/1444#pullrequestreview-681458881
Received on Friday, 11 June 2021 05:33:57 UTC