- From: youennf <notifications@github.com>
- Date: Fri, 24 Jan 2025 00:41:00 -0800
- To: w3c/ServiceWorker <ServiceWorker@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3c/ServiceWorker/pull/1744/review/2572032976@github.com>
@youennf commented on this pull request. > - 1. Set |serviceWorker|'s [=service worker/list of router rules=] to |routerRules|. - 1. Return [=a promise resolved with=] undefined. + 1. If |rule|["{{RouterRule/source}}"] is "{{RouterSourceEnum/fetch-event}}" and |serviceWorker|'s [=set of event types to handle=] does not [=set/contain=] {{ServiceWorkerGlobalScope/fetch!!event}}, return [=a promise rejected with=] a {{TypeError}}. + 1. Let |lifetimePromise| be a new [=promise=]. + 1. [=ExtendableEvent/Add lifetime promise=] |lifetimePromise| to |event|. + + Note: {{InstallEvent/addRoutes(rules)|event.addRoutes(rules)}} extends the lifetime of the event by default as if {{ExtendableEvent/waitUntil()|event.waitUntil(promise)}} is called. + + 1. Let |promise| be a new [=promise=]. + 1. [=In parallel=]: + 1. Upon [=upon fulfillment|fulfillment=] or [=upon rejection|rejection=] of |promise|, resolve |lifetimePromise| with undefined. + + Note: this step is for making |lifetimePromise| always fullfilled to avoid the install event failure. + + 1. Let |serviceWorkerEventLoop| be the [=current global object=]'s [=event loop=]. + 1. [=Queue a task=] to run the following steps on |serviceWorkerEventLoop| using the [=DOM manipulation task source=]: This is not exactly what we want here. |serviceWorker|'s list of router rules are used when matching a fetch, which happens out of process. The usual way of handling this is to use [=in parallel=] to do manipulation out of process. And we queue a task to actually go back to the service worker execution context. This step could be replaced with something like: ``` 1. [=In parallel], run the following substeps: ``` And then, at the end of these substeps: ``` 1. [=Queue a task=] to run the following steps on |serviceWorkerEventLoop| using the [=DOM manipulation task source=] 1. Resolve |promise| with undefined. ``` -- Reply to this email directly or view it on GitHub: https://github.com/w3c/ServiceWorker/pull/1744#pullrequestreview-2572032976 You are receiving this because you are subscribed to this thread. Message ID: <w3c/ServiceWorker/pull/1744/review/2572032976@github.com>
Received on Friday, 24 January 2025 08:41:03 UTC