- From: Yoshisato Yanagisawa <notifications@github.com>
- Date: Wed, 18 Jun 2025 19:14:55 -0700
- To: w3c/ServiceWorker <ServiceWorker@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3c/ServiceWorker/pull/1756/review/2941284626@github.com>
@yoshisatoyanagisawa commented on this pull request.
> +
+ 1. If |navigationPreloadResponse|'s [=response/type=] is "`error`", reject |preloadResponse| with a `TypeError` and terminate these substeps.
+ 1. Associate |preloadResponseObject| with |navigationPreloadResponse|.
+ 1. Resolve |preloadResponse| with |preloadResponseObject|.
+ 1. [=If aborted=], then:
+ 1. Let |deserializedError| be the result of [=deserialize a serialized abort reason=] given null and |workerRealm|.
+ 1. [=fetch controller/Abort=] |preloadFetchController| with |deserializedError|.
+ 1. Else if |timingInfo|'s [=service worker timing info/worker matched router source=] is not "{{RouterSourceEnum/fetch-event}}", a user agent may run the following substeps:
+
+ Note: A user agent may speculatively dispatch a network request in parallel with creating a fetch event in order to minimize the bootstrap cost.
+
+ 1. Let |autoPreloadFetchController| be null.
+ 1. Set |responseForAutoPreload| to be a [=race response=] whose [=race response/value=] is "<code>pending</code>".
+ 1. Run the following substeps [=in parallel=], but [=abort when=] |fetchController|'s [=fetch controller/state=] is "<code>terminated</code>" or "<code>aborted</code>":
+ 1. Set |autoPreloadFetchController| to the result of calling [=fetch=] given |request|, with [=fetch/processResponse=] set to the following steps given a [=/response=] |autoPreloadRequestResponse|:
+ 1. If |autoPreloadRequestResponse|'s [=response/status=] is [=ok status=], set |responseForAutoPreload|'s [=race response/value=] to |autoPreloadRequestResponse|.
Ah, good catch!
I guess |autoPreloadRequestResponse| should be set to |responseForAutoPreload|'s value regardless of the response status. Otherwise, deadlock at Step 21-3 in https://w3c.github.io/ServiceWorker/#create-fetch-event-and-dispatch-algorithm
--
Reply to this email directly or view it on GitHub:
https://github.com/w3c/ServiceWorker/pull/1756#discussion_r2155904765
You are receiving this because you are subscribed to this thread.
Message ID: <w3c/ServiceWorker/pull/1756/review/2941284626@github.com>
Received on Thursday, 19 June 2025 02:14:59 UTC