Skip to content

Only consider pending fetch-later requests for deferred fetch quota#1902

Open
TimvdLippe wants to merge 2 commits intowhatwg:mainfrom
TimvdLippe:fetch-later-fixes
Open

Only consider pending fetch-later requests for deferred fetch quota#1902
TimvdLippe wants to merge 2 commits intowhatwg:mainfrom
TimvdLippe:fetch-later-fixes

Conversation

@TimvdLippe
Copy link
Copy Markdown
Contributor

@TimvdLippe TimvdLippe commented Jan 4, 2026

Quota computation shouldn't include aborted or already
completed requests. WPT uses AbortController to ensure
quota is freed up. This also makes sense, since they are
no longer relevant. Therefore, only consider pending
deferred fetches when computing quota.

(See WHATWG Working Mode: Changes for more details.)


💥 Error: 422 Unprocessable Entity 💥

PR Preview failed to build. (Last tried on Apr 15, 2026, 2:38 PM UTC).

More

PR Preview relies on a number of web services to run. There seems to be an issue with the following one:

🚨 Spec Generator - Spec Generator is the web service used to build bikeshed/ReSpec specs

🔗 Related URL

Error output:

[
    {
        "lineNum": "492:34",
        "messageType": "link",
        "text": "Multiple possible 'code point' dfn refs.\nArbitrarily chose https://w3c.github.io/i18n-glossary/#dfn-code-point\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:i18n-glossary; type:dfn; text:code point\nspec:infra; type:dfn; text:code point\n<a bs-line-number=\"492:34\" data-link-type=\"dfn\" data-lt=\"code point\">code point</a>"
    },
    {
        "lineNum": "507:50",
        "messageType": "link",
        "text": "Multiple possible 'code point' dfn refs.\nArbitrarily chose https://w3c.github.io/i18n-glossary/#dfn-code-point\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:i18n-glossary; type:dfn; text:code point\nspec:infra; type:dfn; text:code point\n<a bs-line-number=\"507:50\" data-link-type=\"dfn\" data-lt=\"code point\">code point</a>"
    },
    {
        "lineNum": "519:24",
        "messageType": "link",
        "text": "Multiple possible 'code point' dfn refs.\nArbitrarily chose https://w3c.github.io/i18n-glossary/#dfn-code-point\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:i18n-glossary; type:dfn; text:code point\nspec:infra; type:dfn; text:code point\n<a bs-line-number=\"519:24\" data-link-type=\"dfn\" data-lt=\"code point\">code point</a>"
    },
    {
        "lineNum": "537:20",
        "messageType": "link",
        "text": "Multiple possible 'code points' dfn refs for '['/']'.\nArbitrarily chose https://w3c.github.io/i18n-glossary/#dfn-code-point\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:i18n-glossary; type:dfn; text:code point\nspec:infra; type:dfn; text:code point\n<a bs-line-number=\"537:20\" data-link-for=\"/\" data-link-type=\"dfn\" data-lt=\"code points\">code points</a>"
    },
    {
        "lineNum": "828:5",
        "messageType": "link",
        "text": "Multiple possible 'code point' dfn refs for '['/']'.\nArbitrarily chose https://w3c.github.io/i18n-glossary/#dfn-code-point\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:i18n-glossary; type:dfn; text:code point\nspec:infra; type:dfn; text:code point\n<a bs-line-number=\"828:5\" data-link-for=\"/\" data-link-type=\"dfn\" data-lt=\"code point\">code point</a>"
    },
    {
        "lineNum": "846:36",
        "messageType": "link",
        "text": "Multiple possible 'code point' dfn refs for '['/']'.\nArbitrarily chose https://w3c.github.io/i18n-glossary/#dfn-code-point\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:i18n-glossary; type:dfn; text:code point\nspec:infra; type:dfn; text:code point\n<a bs-line-number=\"846:36\" data-link-for=\"/\" data-link-type=\"dfn\" data-lt=\"code point\">code point</a>"
    },
    {
        "lineNum": "1373:22",
        "messageType": "link",
        "text": "Multiple possible 'code point' dfn refs.\nArbitrarily chose https://w3c.github.io/i18n-glossary/#dfn-code-point\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:i18n-glossary; type:dfn; text:code point\nspec:infra; type:dfn; text:code point\n<a bs-line-number=\"1373:22\" data-link-type=\"dfn\" data-lt=\"code point\">code point</a>"
    },
    {
        "lineNum": "1378:16",
        "messageType": "link",
        "text": "Multiple possible 'code point' dfn refs.\nArbitrarily chose https://w3c.github.io/i18n-glossary/#dfn-code-point\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:i18n-glossary; type:dfn; text:code point\nspec:infra; type:dfn; text:code point\n<a bs-line-number=\"1378:16\" data-link-type=\"dfn\" data-lt=\"code point\">code point</a>"
    },
    {
        "lineNum": "1395:16",
        "messageType": "link",
        "text": "Multiple possible 'code point' dfn refs.\nArbitrarily chose https://w3c.github.io/i18n-glossary/#dfn-code-point\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:i18n-glossary; type:dfn; text:code point\nspec:infra; type:dfn; text:code point\n<a bs-line-number=\"1395:16\" data-link-type=\"dfn\" data-lt=\"code point\">code point</a>"
    },
    {
        "lineNum": "1552:6",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "4054:67",
        "messageType": "link",
        "text": "Multiple possible 'code point' dfn refs for '['/']'.\nArbitrarily chose https://w3c.github.io/i18n-glossary/#dfn-code-point\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:i18n-glossary; type:dfn; text:code point\nspec:infra; type:dfn; text:code point\n<a bs-line-number=\"4054:67\" data-link-for=\"/\" data-link-type=\"dfn\" data-lt=\"code point\">code point</a>"
    },
    {
        "lineNum": "4230:39",
        "messageType": "link",
        "text": "Multiple possible 'ascii case-insensitive' dfn refs.\nArbitrarily chose https://infra.spec.whatwg.org/#ascii-case-insensitive\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:infra; type:dfn; text:ascii case-insensitive\nspec:i18n-glossary; type:dfn; text:ascii case-insensitive\n<a bs-line-number=\"4230:39\" data-link-type=\"dfn\" data-lt=\"ASCII case-insensitive\">ASCII case-insensitive</a>"
    },
    {
        "lineNum": "6833:63",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "7298:18",
        "messageType": "link",
        "text": "Multiple possible 'document' dfn refs for '['/']'.\nArbitrarily chose https://dom.spec.whatwg.org/#concept-document\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:dom; type:dfn; text:document\nspec:css-style-attr; type:dfn; text:document\n<a bs-line-number=\"7298:18\" data-link-for=\"/\" data-link-type=\"dfn\" data-lt=\"document\">document</a>"
    },
    {
        "lineNum": "7310:37",
        "messageType": "link",
        "text": "Multiple possible 'document' dfn refs for '['/']'.\nArbitrarily chose https://dom.spec.whatwg.org/#concept-document\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:dom; type:dfn; text:document\nspec:css-style-attr; type:dfn; text:document\n<a bs-line-number=\"7310:37\" data-link-for=\"/\" data-link-type=\"dfn\" data-lt=\"document\">document</a>"
    },
    {
        "lineNum": "7447:65",
        "messageType": "link",
        "text": "Multiple possible 'document' dfn refs for '['/']'.\nArbitrarily chose https://dom.spec.whatwg.org/#concept-document\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:dom; type:dfn; text:document\nspec:css-style-attr; type:dfn; text:document\n<a bs-line-number=\"7447:65\" data-link-for=\"/\" data-link-type=\"dfn\" data-lt=\"document\">document</a>"
    },
    {
        "lineNum": "7594:69",
        "messageType": "link",
        "text": "Multiple possible 'document' dfn refs for '['/']'.\nArbitrarily chose https://dom.spec.whatwg.org/#concept-document\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:dom; type:dfn; text:document\nspec:css-style-attr; type:dfn; text:document\n<a bs-line-number=\"7594:69\" data-link-for=\"/\" data-link-type=\"dfn\" data-lt=\"document\">document</a>"
    },
    {
        "lineNum": "7600:37",
        "messageType": "link",
        "text": "Multiple possible 'document' dfn refs for '['/']'.\nArbitrarily chose https://dom.spec.whatwg.org/#concept-document\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:dom; type:dfn; text:document\nspec:css-style-attr; type:dfn; text:document\n<a bs-line-number=\"7600:37\" data-link-for=\"/\" data-link-type=\"dfn\" data-lt=\"document\">document</a>"
    },
    {
        "lineNum": "7602:66",
        "messageType": "link",
        "text": "Multiple possible 'document' dfn refs for '['/']'.\nArbitrarily chose https://dom.spec.whatwg.org/#concept-document\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:dom; type:dfn; text:document\nspec:css-style-attr; type:dfn; text:document\n<a bs-line-number=\"7602:66\" data-link-for=\"/\" data-link-type=\"dfn\" data-lt=\"document\">document</a>"
    },
    {
        "lineNum": "7607:63",
        "messageType": "link",
        "text": "Multiple possible 'document' dfn refs for '['/']'.\nArbitrarily chose https://dom.spec.whatwg.org/#concept-document\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:dom; type:dfn; text:document\nspec:css-style-attr; type:dfn; text:document\n<a bs-line-number=\"7607:63\" data-link-for=\"/\" data-link-type=\"dfn\" data-lt=\"document\">document</a>"
    },
    {
        "lineNum": "7612:2",
        "messageType": "link",
        "text": "Multiple possible 'document' dfn refs for '['/']'.\nArbitrarily chose https://dom.spec.whatwg.org/#concept-document\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:dom; type:dfn; text:document\nspec:css-style-attr; type:dfn; text:document\n<a bs-line-number=\"7612:2\" data-link-for=\"/\" data-link-type=\"dfn\" data-lt=\"document\">document</a>"
    },
    {
        "lineNum": "7777:49",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "7780:17",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "7840:85",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "7917:83",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "7941:83",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "8080:61",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "8083:59",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "8212:4",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "8241:52",
        "messageType": "link",
        "text": "Multiple possible 'RangeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-rangeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:RangeError\nspec:webidl; type:exception; text:RangeError\n{{RangeError}}"
    },
    {
        "lineNum": "8259:52",
        "messageType": "link",
        "text": "Multiple possible 'RangeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-rangeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:RangeError\nspec:webidl; type:exception; text:RangeError\n{{RangeError}}"
    },
    {
        "lineNum": "8302:64",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "8323:24",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "8331:52",
        "messageType": "link",
        "text": "Multiple possible 'SyntaxError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-syntaxerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:SyntaxError\nspec:webidl; type:exception; text:SyntaxError\n{{SyntaxError}}"
    },
    {
        "lineNum": "8620:67",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "8623:19",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "8655:17",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "8776:74",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "8805:76",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "8818:17",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "8836:49",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "8877:55",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "8916:65",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "8947:43",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "8950:69",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "8962:84",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "9047:73",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "9180:22",
        "messageType": "link",
        "text": "Multiple possible 'RangeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-rangeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:RangeError\nspec:webidl; type:exception; text:RangeError\n{{RangeError}}"
    },
    {
        "lineNum": "9183:65",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "9201:20",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "9256:65",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "9258:83",
        "messageType": "link",
        "text": "Multiple possible 'RangeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-rangeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:RangeError\nspec:webidl; type:exception; text:RangeError\n{{RangeError}}"
    },
    {
        "lineNum": "9334:73",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "9458:11",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "9525:66",
        "messageType": "link",
        "text": "Multiple possible 'RangeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-rangeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:RangeError\nspec:webidl; type:exception; text:RangeError\n{{RangeError}}"
    },
    {
        "lineNum": "9528:36",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "9531:38",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "9534:15",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "9538:72",
        "messageType": "link",
        "text": "Multiple possible 'TypeError' idl refs.\nArbitrarily chose https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:ecmascript; type:exception; text:TypeError\nspec:webidl; type:exception; text:TypeError\n{{TypeError}}"
    },
    {
        "lineNum": "9724:54",
        "messageType": "link",
        "text": "Multiple possible 'code points' dfn refs.\nArbitrarily chose https://w3c.github.io/i18n-glossary/#dfn-code-point\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:i18n-glossary; type:dfn; text:code point\nspec:infra; type:dfn; text:code point\n<a bs-line-number=\"9724:54\" data-link-type=\"dfn\" data-lt=\"code points\">code points</a>"
    },
    {
        "lineNum": "9736:6",
        "messageType": "link",
        "text": "Multiple possible 'ascii case-insensitive' dfn refs.\nArbitrarily chose https://infra.spec.whatwg.org/#ascii-case-insensitive\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:infra; type:dfn; text:ascii case-insensitive\nspec:i18n-glossary; type:dfn; text:ascii case-insensitive\n<a bs-line-number=\"9736:6\" data-link-type=\"dfn\" data-lt=\"ASCII case-insensitive\">ASCII case-insensitive</a>"
    },
    {
        "lineNum": "9746:29",
        "messageType": "link",
        "text": "Multiple possible 'code points' dfn refs.\nArbitrarily chose https://w3c.github.io/i18n-glossary/#dfn-code-point\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:i18n-glossary; type:dfn; text:code point\nspec:infra; type:dfn; text:code point\n<a bs-line-number=\"9746:29\" data-link-type=\"dfn\" data-lt=\"code points\">code points</a>"
    },
    {
        "lineNum": "9748:40",
        "messageType": "link",
        "text": "Multiple possible 'code points' dfn refs.\nArbitrarily chose https://w3c.github.io/i18n-glossary/#dfn-code-point\nTo auto-select one of the following refs, insert one of these lines into a <pre class=link-defaults> block:\nspec:i18n-glossary; type:dfn; text:code point\nspec:infra; type:dfn; text:code point\n<a bs-line-number=\"9748:40\" data-link-type=\"dfn\" data-lt=\"code points\">code points</a>"
    },
    {
        "lineNum": null,
        "messageType": "failure",
        "text": "Did not generate, due to errors exceeding the allowed error level."
    }
]

This seems to be an issue with the Spec Generator service. PR Preview doesn't manage this service and so has no control over it. If you've identified an issue with it, you can report the issue to the maintainers of Spec Generator directly. Please be courteous. Thank you!

If you don't have enough information above to solve the error by yourself or if the issue doesn't seem related to Spec Generator, you can file an issue with PR Preview.

There were two missing parts:
1. The body can either be null or empty (it was missing the
empty case)
2. Quota computation shouldn't include aborted or already
completed requests. WPT uses `AbortController` to ensure
quota is freed up. This also makes sense, since they are
no longer relevant. Therefore, only consider pending
deferred fetches when computing quota.
@TimvdLippe
Copy link
Copy Markdown
Contributor Author

FYI @noamr PTAL

@noamr
Copy link
Copy Markdown
Contributor

noamr commented Feb 25, 2026

(2) is fine
Not sure about 1... Isn't posting an empty body a legit use case? The null use case was about not allowing streaming.

@TimvdLippe
Copy link
Copy Markdown
Contributor Author

Well, Chrome currently blocks such requests: https://wpt.fyi/results/fetch/fetch-later/quota/empty-payload.https.window.html?label=experimental&label=master&aligned If I didn't implement that case, Servo wouldn't match Chrome's behaviour.

@noamr
Copy link
Copy Markdown
Contributor

noamr commented Feb 25, 2026

Well, Chrome currently blocks such requests: https://wpt.fyi/results/fetch/fetch-later/quota/empty-payload.https.window.html?label=experimental&label=master&aligned If I didn't implement that case, Servo wouldn't match Chrome's behaviour.

@mingyc the spec only prevents null bodies (streaming) rather than empty... Do you remember why chromium also blocks empty requests?

@TimvdLippe we should check whether this is an implementation oversight or a spec oversight before defaulting to "spec what chromium does"... For the time being I think that the other part of the PR is ok.

@TimvdLippe
Copy link
Copy Markdown
Contributor Author

I wasn't aware of the streaming part. Since the test wasn't marked as tentative, I thought this part of the spec was meant to imply the empty case behaviour. I don't mind either behaviour (not familiar with streaming or anything), so happy to update it to whatever you folks decide.

@TimvdLippe
Copy link
Copy Markdown
Contributor Author

Friendly ping @mingyc on Chromiums perspective

@noamr
Copy link
Copy Markdown
Contributor

noamr commented Mar 24, 2026

Friendly ping @mingyc on Chromiums perspective

I suggest to make the other change and propose a WPT pr to align with the spec re empty request bodies

TimvdLippe added a commit to TimvdLippe/servo that referenced this pull request Mar 24, 2026
Per the spec discussion in [1] we should only check for a length
of `null` and not zero.

[1]: whatwg/fetch#1902

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
servo-wpt-sync pushed a commit to servo/wpt that referenced this pull request Mar 24, 2026
Per the spec discussion in [1] we should only check for a length
of `null` and not zero.

[1]: whatwg/fetch#1902

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
@TimvdLippe
Copy link
Copy Markdown
Contributor Author

Updated this PR and updated Servo + tests, see the WPT export in web-platform-tests/wpt#58726 Please review that PR.

TimvdLippe added a commit to TimvdLippe/servo that referenced this pull request Mar 24, 2026
Per the spec discussion in [1] we should only check for a length
of `null` and not zero.

[1]: whatwg/fetch#1902

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
servo-wpt-sync pushed a commit to servo/wpt that referenced this pull request Mar 24, 2026
Per the spec discussion in [1] we should only check for a length
of `null` and not zero.

[1]: whatwg/fetch#1902

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
@mingyc
Copy link
Copy Markdown

mingyc commented Mar 25, 2026

Sorry about missing this thread

@mingyc the spec only prevents null bodies (streaming) rather than empty... Do you remember why chromium also blocks empty requests?

I roughly remember there was some discussion about posting with empty body should be replaced by a GET request (can't find it now). Isn't null body the same as empty body in this context?

@annevk
Copy link
Copy Markdown
Member

annevk commented Mar 27, 2026

No they are distinct. One has a Content-Length.

@TimvdLippe
Copy link
Copy Markdown
Contributor Author

@annevk @noamr Can I write Chromium and Webkit as interested implementers for this PR?

@TimvdLippe TimvdLippe changed the title Update fetch-later spec according to WPT expectations Do not count aborted fetch-later requests for deferred fetch quota Apr 10, 2026
@TimvdLippe TimvdLippe changed the title Do not count aborted fetch-later requests for deferred fetch quota Only consider pending fetch-later requests for deferred fetch quota Apr 10, 2026
@noamr
Copy link
Copy Markdown
Contributor

noamr commented Apr 10, 2026

@annevk @noamr Can I write Chromium and Webkit as interested implementers for this PR?

yes, though do you mind opening a bug for the 0-length thing?

@TimvdLippe
Copy link
Copy Markdown
Contributor Author

Sure, done: #1920

@TimvdLippe
Copy link
Copy Markdown
Contributor Author

I wasn't sure how to interpret your "yes" for both Chromium and Webkit or only Chromium. Nonetheless, updated the PR description to mark both, as I think that's the case.

@noamr
Copy link
Copy Markdown
Contributor

noamr commented Apr 15, 2026

I wasn't sure how to interpret your "yes" for both Chromium and Webkit or only Chromium. Nonetheless, updated the PR description to mark both, as I think that's the case.

I can only speak for chromium.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

4 participants