Add signal to request (#39290)

The signal taken from the requestinit is now passed into
the request object with the relevant steps. I added all
spec comments to this method, as I had trouble figuring
out which steps I had to add.

This required implementing the algorithm to create
dependent signals, which is used in the `any()` method.
So that's now implemented as well.

All of that required the machinery to have dependent and
source signals on an AbortSignal. It uses an IndexSet
as the spec requires it to be an ordered set.

Part of #34866

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
This commit is contained in:
Tim van der Lippe 2025-09-16 22:41:12 +02:00 committed by GitHub
parent 1898a740a8
commit 22fbb3458b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 278 additions and 266 deletions

View file

@ -2,12 +2,6 @@
[AbortSignal must be primary interface of new AbortController().signal]
expected: FAIL
[AbortSignal interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
[AbortSignal interface: existence and properties of interface object]
expected: FAIL
[EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new AbortController().signal with too few arguments must throw TypeError]
expected: FAIL
@ -17,9 +11,6 @@
[EventTarget interface: new AbortController().signal must inherit property "dispatchEvent(Event)" with the proper type]
expected: FAIL
[AbortSignal interface object name]
expected: FAIL
[EventTarget interface: new AbortController().signal must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type]
expected: FAIL
@ -29,9 +20,6 @@
[AbortController interface: attribute signal]
expected: FAIL
[AbortSignal interface: attribute aborted]
expected: FAIL
[AbortController interface: new AbortController() must inherit property "signal" with the proper type]
expected: FAIL
@ -47,21 +35,9 @@
[EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new AbortController().signal with too few arguments must throw TypeError]
expected: FAIL
[AbortSignal interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL
[AbortSignal interface: new AbortController().signal must inherit property "onabort" with the proper type]
expected: FAIL
[AbortSignal interface: attribute onabort]
expected: FAIL
[AbortSignal interface object length]
expected: FAIL
[AbortSignal interface: existence and properties of interface prototype object]
expected: FAIL
[NodeFilter interface: existence and properties of interface object]
expected: FAIL
@ -173,15 +149,6 @@
[XSLTProcessor interface: new XSLTProcessor() must inherit property "reset()" with the proper type]
expected: FAIL
[AbortSignal interface: operation abort(optional any)]
expected: FAIL
[AbortSignal interface: attribute reason]
expected: FAIL
[AbortSignal interface: operation throwIfAborted()]
expected: FAIL
[AbortSignal interface: new AbortController().signal must inherit property "abort(optional any)" with the proper type]
expected: FAIL
@ -227,9 +194,6 @@
[Element interface: element must inherit property "onfullscreenerror" with the proper type]
expected: FAIL
[AbortSignal interface: operation any(sequence<AbortSignal>)]
expected: FAIL
[AbortSignal interface: new AbortController().signal must inherit property "any(sequence<AbortSignal>)" with the proper type]
expected: FAIL
@ -373,3 +337,6 @@
[Element interface: element must inherit property "customElementRegistry" with the proper type]
expected: FAIL
[idlharness.window.html?include=Node]