- From: Ming-Ying Chung <notifications@github.com>
- Date: Mon, 02 Oct 2023 04:27:57 -0700
- To: whatwg/fetch <fetch@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <whatwg/fetch/pull/1647/review/1652554676@github.com>
@mingyc commented on this pull request. PTAL > + <a for=request>body</a>'s <a for=body>length</a>. + </ol> + </li> + + <li><p><a for=list>For each</a> <a>deferred fetch record</a> <var>deferredRecord</var> in + <var>request</var>'s <a for=request>client</a>'s <a for=fetch>fetch group</a>'s + <a for="fetch group">deferred fetch records</a>: if <var>deferredRecord</var>'s + <a for="deferred fetch record">request</a>'s <a for=request>body</a> is not null and + <var>deferredRecord</var>'s <a for="deferred fetch record">request</a>'s <a for=request>URL</a>'s + <a for=url>origin</a> is <a>same origin</a> with <var>request</var>'s <a for=request>URL</a>'s + <a for=url>origin</a>, then increment <var>totalScheduledDeferredBytesForOrigin</var> by + <var>deferredRecord</var>'s <a for="deferred fetch record">request</a>'s <a for=request>body</a>'s + <a for=body>length</a>. + + <li><p>If <var>totalScheduledDeferredBytesForOrigin</var> is greater than 64 kilobytes, then + throw a {{QuotaExceededError}}. The discussions about Promise/autoflushes are resolved. However, some questions on quota are not yet: > Regarding keepalive, I think this should be a bit different (also chatted about this with @yoavweiss): Keepalive and fetchLater are mutually exclusive and so are there quotas. > > Keepalive quota is global, fetchLater quota is per origin > Keepalive is for requests that dispatch immediately > Keepalive survives termination, fetchLater (usually) invokes at termination > > So I think the solution would be that deferred fetches are not keepalive, and instead, they're simply not terminated when the fetch group is terminated, @noamr We now have fetchLater-specific quota steps, but fetchLater requests are also set keepalive true. Should fetchLater requests share the quota of non-FetchLater keepalive requests, i.e. should the former also be run through the same inflight keepalive checks? > + throw a {{NotAllowedError}}. + + <p class=note>User-agents can, for example, decide that deferred fetching is not allowed for + subframes or gated behind some permission. + </li> + + <li><p>Let <var>requestObject</var> be the result of invoking the initial value of {{Request}} as + constructor with <var>input</var> and <var>init</var> as arguments. This may throw an exception. + + <li><p>If <var>requestObject</var>'s <a for=Request>signal</a> is <a for=AbortSignal>aborted</a>, + then throw <a for=Request>signal</a>'s <a for=AbortSignal>abort reason</a>. + + <li><p>Let <var>request</var> be <var>requestObject</var>'s <a for=Request>request</a>. + + <li><p>If <var>request</var>'s <a for=request>URL</a>'s <a for=url>scheme</a> is not an + <a>HTTP(S) scheme</a> then throw a {{TypeError}}. Thanks. Resolved -- Reply to this email directly or view it on GitHub: https://github.com/whatwg/fetch/pull/1647#pullrequestreview-1652554676 You are receiving this because you are subscribed to this thread. Message ID: <whatwg/fetch/pull/1647/review/1652554676@github.com>
Received on Monday, 2 October 2023 11:28:03 UTC