- From: Yutaka Hirano <notifications@github.com>
- Date: Tue, 09 Feb 2021 01:31:25 -0800
- To: whatwg/fetch <fetch@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
Received on Tuesday, 9 February 2021 09:31:38 UTC
@yutakahirano commented on this pull request. > @@ -3834,9 +3834,32 @@ optional <i>CORS-preflight flag</i>, run these steps: <p>If <var>request</var>'s <a>service-workers mode</a> is "<code>all</code>", then: <ol> + <li><p>Assert: <var>request</var> 's <a for=request>body</a> is either null or a + <a for=/>body</a>. + + <li> + <p>Let <var>savedBody</var> be a copy of <var>request</var>'s <a for=request>body</a>. Let's assume `req` has a body made from a ReadableStream, and it's intercepted in the service worker. ``` self.addEventListener('fetch', (e) => { const req = e.request; const clonedBody = req.clone(); ... return null; }); ``` The above handler calls `clone()` and returns null. If we support this use case, 1. [Tee](https://streams.spec.whatwg.org/#rs-tee) runs in the service worker realm, 2. One of the streams made by [Tee](https://streams.spec.whatwg.org/#rs-tee) is transferred to the network process. Hence shutting down the service worker shuts down the teeing logic, which breaks the transferred stream in the network process. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/whatwg/fetch/pull/1144#discussion_r572725257
Received on Tuesday, 9 February 2021 09:31:38 UTC