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

@ -1,2 +0,0 @@
[abort-signal-any-crash.html]
expected: TIMEOUT

View file

@ -1,86 +1,8 @@
[abort-signal-any.any.worker.html]
[AbortSignal.any() works with an empty array of signals]
expected: FAIL
[AbortSignal.any() follows a single signal (using AbortController)]
expected: FAIL
[AbortSignal.any() follows multiple signals (using AbortController)]
expected: FAIL
[AbortSignal.any() returns an aborted signal if passed an aborted signal (using AbortController)]
expected: FAIL
[AbortSignal.any() can be passed the same signal more than once (using AbortController)]
expected: FAIL
[AbortSignal.any() uses the first instance of a duplicate signal (using AbortController)]
expected: FAIL
[AbortSignal.any() signals are composable (using AbortController)]
expected: FAIL
[AbortSignal.any() works with signals returned by AbortSignal.timeout() (using AbortController)]
expected: FAIL
[AbortSignal.any() works with intermediate signals (using AbortController)]
expected: FAIL
[Abort events for AbortSignal.any() signals fire in the right order (using AbortController)]
expected: FAIL
[Dependent signals for AbortSignal.any() are marked aborted before abort events fire (using AbortController)]
expected: FAIL
[Dependent signals for AbortSignal.any() are aborted correctly for reentrant aborts (using AbortController)]
expected: FAIL
[Dependent signals for AbortSignal.any() should use the same DOMException instance from the already aborted source signal (using AbortController)]
expected: FAIL
[Dependent signals for AbortSignal.any() should use the same DOMException instance from the source signal being aborted later (using AbortController)]
expected: FAIL
[abort-signal-any.any.html]
[AbortSignal.any() works with an empty array of signals]
expected: FAIL
[AbortSignal.any() follows a single signal (using AbortController)]
expected: FAIL
[AbortSignal.any() follows multiple signals (using AbortController)]
expected: FAIL
[AbortSignal.any() returns an aborted signal if passed an aborted signal (using AbortController)]
expected: FAIL
[AbortSignal.any() can be passed the same signal more than once (using AbortController)]
expected: FAIL
[AbortSignal.any() uses the first instance of a duplicate signal (using AbortController)]
expected: FAIL
[AbortSignal.any() signals are composable (using AbortController)]
expected: FAIL
[AbortSignal.any() works with signals returned by AbortSignal.timeout() (using AbortController)]
expected: FAIL
[AbortSignal.any() works with intermediate signals (using AbortController)]
expected: FAIL
[Abort events for AbortSignal.any() signals fire in the right order (using AbortController)]
expected: FAIL
[Dependent signals for AbortSignal.any() are marked aborted before abort events fire (using AbortController)]
expected: FAIL
[Dependent signals for AbortSignal.any() are aborted correctly for reentrant aborts (using AbortController)]
expected: FAIL
[Dependent signals for AbortSignal.any() should use the same DOMException instance from the already aborted source signal (using AbortController)]
expected: FAIL
[Dependent signals for AbortSignal.any() should use the same DOMException instance from the source signal being aborted later (using AbortController)]
expected: FAIL