Skip to content

Record task-like timing in fire an event#1462

Open
noamr wants to merge 1 commit intomainfrom
fire-event-pseudo-task
Open

Record task-like timing in fire an event#1462
noamr wants to merge 1 commit intomainfrom
fire-event-pseudo-task

Conversation

@noamr
Copy link
Copy Markdown
Contributor

@noamr noamr commented Apr 16, 2026

Together with w3c/long-animation-frames#37

This allows clustering a "fire an event" timeframe in terms of frame timing monitoring, as opposed to relying on an "implicit document", which is a deprecated and non-interoperable term.

The implication of this is that if this event firing schedules a render that ends up as a long animation frame, the whole event firing duration would be counted towards this performance entry, regardless of "tasks".

See w3c/long-animation-frames#36

  • At least two implementers are interested (and none opposed):
  • Tests are written and can be reviewed and commented upon at:
  • Implementation bugs are filed:
    • Chromium: …
    • Gecko: …
    • WebKit: …
    • Deno (only for aborting and events): …
    • Node.js (only for aborting and events): …
  • MDN issue is filed: …
  • The top of this comment includes a clear commit message to use.

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


💥 Error: 422 Unprocessable Entity 💥

PR Preview failed to build. (Last tried on Apr 16, 2026, 12:39 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": "1771:17",
        "messageType": "fatal",
        "text": "Saw an end tag </a>, but there's no open element corresponding to it.\nOpen tags: <div> at 1743:1, <ol> at 1748:1, <li> at 1768:2, <ol> at 1770:3, <li> at 1771:4, <p> at 1771:8"
    },
    {
        "lineNum": "172:65",
        "messageType": "link",
        "text": "Multiple possible 'SyntaxError' exception 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!!exception}}"
    },
    {
        "lineNum": "202: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[=code point=]"
    },
    {
        "lineNum": "211:25",
        "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[=code point=]"
    },
    {
        "lineNum": "214:32",
        "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[=code points=]"
    },
    {
        "lineNum": "224:41",
        "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[=code point=]"
    },
    {
        "lineNum": "1749:71",
        "messageType": "link",
        "text": "No 'dfn' refs found for 'start recording task time if needed'.\n<a bs-line-number=\"1749:71\" data-link-type=\"dfn\" data-lt=\"start recording task time if needed\">start recording task time if\n needed</a>"
    },
    {
        "lineNum": "2374:17",
        "messageType": "link",
        "text": "Ambiguous for-less link for 'node', please see <https://speced.github.io/bikeshed/#ambi-for> for instructions:\nLocal references:\nspec:dom; type:dfn; for:boundary point; text:node\nfor-less references:\nspec:rdf12-concepts; type:dfn; for:/; text:nodes\nspec:rdf12-concepts; type:dfn; for:/; text:nodes\n[=node=]"
    },
    {
        "lineNum": "2978:3",
        "messageType": "link",
        "text": "Ambiguous for-less link for 'node', please see <https://speced.github.io/bikeshed/#ambi-for> for instructions:\nLocal references:\nspec:dom; type:dfn; for:boundary point; text:node\nfor-less references:\nspec:rdf12-concepts; type:dfn; for:/; text:nodes\nspec:rdf12-concepts; type:dfn; for:/; text:nodes\n<a bs-line-number=\"2978:3\" data-link-type=\"dfn\" data-lt=\"node\">node</a>"
    },
    {
        "lineNum": "5512:3",
        "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=\"5512:3\" data-link-type=\"dfn\" data-lt=\"ASCII case-insensitive\">ASCII case-insensitive</a>"
    },
    {
        "lineNum": "6236:36",
        "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=\"6236:36\" data-link-type=\"dfn\" data-lt=\"ASCII case-insensitive\">ASCII case-insensitive</a>"
    },
    {
        "lineNum": "7890:65",
        "messageType": "link",
        "text": "Multiple possible 'SyntaxError' exception 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!!exception}}"
    },
    {
        "lineNum": "7913:65",
        "messageType": "link",
        "text": "Multiple possible 'SyntaxError' exception 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!!exception}}"
    },
    {
        "lineNum": "7941:1",
        "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=\"7941:1\" data-link-type=\"dfn\" data-lt=\"ASCII case-insensitive\">ASCII case-insensitive</a>"
    },
    {
        "lineNum": "7967:25",
        "messageType": "link",
        "text": "Multiple possible 'SyntaxError' exception 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!!exception}}"
    },
    {
        "lineNum": "8249:20",
        "messageType": "link",
        "text": "Multiple possible 'code units' dfn refs.\nArbitrarily chose https://w3c.github.io/i18n-glossary/#dfn-code-unit\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 unit\nspec:infra; type:dfn; text:code unit\n<a bs-line-number=\"8249:20\" data-link-type=\"dfn\" data-lt=\"code units\">code units</a>"
    },
    {
        "lineNum": "8254:47",
        "messageType": "link",
        "text": "Multiple possible 'code units' dfn refs.\nArbitrarily chose https://w3c.github.io/i18n-glossary/#dfn-code-unit\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 unit\nspec:infra; type:dfn; text:code unit\n<a bs-line-number=\"8254:47\" data-link-type=\"dfn\" data-lt=\"code units\">code units</a>"
    },
    {
        "lineNum": "8255:2",
        "messageType": "link",
        "text": "Multiple possible 'code units' dfn refs.\nArbitrarily chose https://w3c.github.io/i18n-glossary/#dfn-code-unit\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 unit\nspec:infra; type:dfn; text:code unit\n<a bs-line-number=\"8255:2\" data-link-type=\"dfn\" data-lt=\"code units\">code units</a>"
    },
    {
        "lineNum": "8319:28",
        "messageType": "link",
        "text": "Multiple possible 'code units' dfn refs.\nArbitrarily chose https://w3c.github.io/i18n-glossary/#dfn-code-unit\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 unit\nspec:infra; type:dfn; text:code unit\n<a bs-line-number=\"8319:28\" data-link-type=\"dfn\" data-lt=\"code units\">code units</a>"
    },
    {
        "lineNum": "8320:2",
        "messageType": "link",
        "text": "Multiple possible 'code unit' dfn refs.\nArbitrarily chose https://w3c.github.io/i18n-glossary/#dfn-code-unit\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 unit\nspec:infra; type:dfn; text:code unit\n<a bs-line-number=\"8320:2\" data-link-type=\"dfn\" data-lt=\"code unit\">code unit</a>"
    },
    {
        "lineNum": "8322:44",
        "messageType": "link",
        "text": "Multiple possible 'code units' dfn refs.\nArbitrarily chose https://w3c.github.io/i18n-glossary/#dfn-code-unit\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 unit\nspec:infra; type:dfn; text:code unit\n<a bs-line-number=\"8322:44\" data-link-type=\"dfn\" data-lt=\"code units\">code units</a>"
    },
    {
        "lineNum": "8323:2",
        "messageType": "link",
        "text": "Multiple possible 'code unit' dfn refs.\nArbitrarily chose https://w3c.github.io/i18n-glossary/#dfn-code-unit\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 unit\nspec:infra; type:dfn; text:code unit\n<a bs-line-number=\"8323:2\" data-link-type=\"dfn\" data-lt=\"code unit\">code unit</a>"
    },
    {
        "lineNum": "8323:74",
        "messageType": "link",
        "text": "Multiple possible 'code unit' dfn refs.\nArbitrarily chose https://w3c.github.io/i18n-glossary/#dfn-code-unit\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 unit\nspec:infra; type:dfn; text:code unit\n<a bs-line-number=\"8323:74\" data-link-type=\"dfn\" data-lt=\"code unit\">code unit</a>"
    },
    {
        "lineNum": "10699:16",
        "messageType": "link",
        "text": "Multiple possible 'SyntaxError' exception 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!!exception}}"
    },
    {
        "lineNum": "10707:16",
        "messageType": "link",
        "text": "Multiple possible 'SyntaxError' exception 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!!exception}}"
    },
    {
        "lineNum": "10719:16",
        "messageType": "link",
        "text": "Multiple possible 'SyntaxError' exception 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!!exception}}"
    },
    {
        "lineNum": "10727:16",
        "messageType": "link",
        "text": "Multiple possible 'SyntaxError' exception 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!!exception}}"
    },
    {
        "lineNum": "10780:73",
        "messageType": "link",
        "text": "Multiple possible 'SyntaxError' exception 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!!exception}}"
    },
    {
        "lineNum": "10804:73",
        "messageType": "link",
        "text": "Multiple possible 'SyntaxError' exception 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!!exception}}"
    },
    {
        "lineNum": "10823:71",
        "messageType": "link",
        "text": "Multiple possible 'SyntaxError' exception 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!!exception}}"
    },
    {
        "lineNum": "10858:3",
        "messageType": "link",
        "text": "Multiple possible 'SyntaxError' exception 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!!exception}}"
    },
    {
        "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.

Together with w3c/long-animation-frames#37

This allows clustering a "fire an event" timeframe in terms of
frame timing monitoring, as opposed to relying on an "implicit document", which
is a deprecated and non-interoperable term.

The implication of this is that if this event firing schedules a render that ends up
as a long animation frame, the whole event firing duration would be counted towards this
performance entry, regardless of "tasks".

See w3c/long-animation-frames#36
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.

1 participant