dom: Implement WritableStream (#34844)

* add basic interface for writable stream

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* add stubs for pipeTo and pipeThrough methods

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* add stubs for writable stream defautl writer

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* add stubs for writable stream controller

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* add underlying source dict

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* add underlying source dict

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* implement constructor

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* implement init writable stream

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* impl setup default controller

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* implement controller setup

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* implement controller advance queue if neededd

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* implement stream finish erroring

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* implement stream reject close and closed promise if needed

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* finish implementation of stream finish erroring

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* call into controller setup from stream constructor

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* implement stream mark first write request in flight

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* implement controller process write

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* call into advance queue if needed at various points

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* implement stream deal with rejection, use from_safe_context

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* implement controller clear algorithms

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* remove unused todo

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* implement stream start erroring

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* finish writer ensure ready promise rejected

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* implement stream finish in flight write request

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* implement write constructor and setup

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* implement controller error

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* remove unnecessary unsafe code

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* finish implementing process write

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* implement close sentinel

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* implement public locked

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* implement stream abort

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* implement stream close

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* implement controller close

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* fix use of crown

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* remove unnecessary options around writer promises

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* implement writer get desired size

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* implement writer ready

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* implement writer abort

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* implement writer close

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* implement writer release lock

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* implement writer public write

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* implement private writer write

Uses ai

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* implement writer release.

Uses ai

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* impl controller process close

Uses ai

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* finish controller process close

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* root promise handlers

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* handler errors in stream and writer constructor
finish implementation of stream finish in flight close

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* fix warnings

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* implement controller get chunk size

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* tidy the webidls

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* implement stream get writer

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* fix assertion of stream state when advancing queue if needed

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* add docs for value with size

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* use reject_error in abort

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* remove unnecessary allowances of unsafe code

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* turn writable-streams test suite on

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* update encodings test expectations

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* properly check if type is set on sink in stream constructor

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* fix double borrow in controller advance queue if needed

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* make the queue aware of the close sentinel when dequeuing a value

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* fix assertion of no backpressure in update backpressure

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* also clear strategy size when clearing algorithms

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* remove this object arg when calling into strategy size

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* fix has operations marked in flight

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* fix typo in has in flight write request

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* turn error into no-op when aborting a stream, if the stream is closed or errored.

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* fix error handling of calling into abort algorithm

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* fix error handling of calling into close and write algorithms

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* fix double borrow on queue
fix logic in update_backpressure
fix logic in get_desired_size
fix logic in writer setup

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* update test expectations for aborting suite

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* fix controller get_backpressure

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* fix clippy

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* update test expectations to expect errors in tests using unsupported apis

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* fix error handling of calling into start algo in controller setup

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* update test expectations for test checking for undefined this in strategy size call

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* update test expectation to timeout for response-stream-with-broken-then.any.worker

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* update interfaces

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* fix use of global() and error to_jsval

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* fix use of crown for promise handlers

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* remove fail expectation from worker interface objects test

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* remove fail expectation for test expecting this to be undefined in callback

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* fix documentation link for writablestream state

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* refactor write_requests to use a vec deque

uses ai

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* remove unnecessary doc

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* refactor reject_close_and_closed_promise_if_needed to take a safe js context as argument

uses ai

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* pass globals and contexts by ref where possible

uses ai

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* fix doc link for controller

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* remove unnecessary comment

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* change update_backpressure to be a method of the writablestream

uses ai

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* rename writer method that resolve closed and ready promise for clarity

uses ai

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* add comments for steps in peek queue value

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* fix doc link for the abort algorihtm fulfillment handler

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* fix step doc and variable name in abort algo rejection handler

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* Add must_root to pending abort request

Co-authored-by: Josh Matthews <josh@joshmatthews.net>
Signed-off-by: Gregory Terzian <2792687+gterzian@users.noreply.github.com>

* limit visibility to crate for has_operations_marked_inflight

Co-authored-by: Josh Matthews <josh@joshmatthews.net>
Signed-off-by: Gregory Terzian <2792687+gterzian@users.noreply.github.com>

* limit visibility to crate for get_stored_error

Co-authored-by: Josh Matthews <josh@joshmatthews.net>
Signed-off-by: Gregory Terzian <2792687+gterzian@users.noreply.github.com>

* remove potention re-borrow risk in reject loop on write requests in finish_erroring

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* remove potential re-borrow risk when taking pending abort request in finish_erroring

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* remove potential re-borrow risk when taking close request in reject_close_and_closed_promise_if_needed

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* remove re-borrow risks in finish_in_flight_close

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* remove re-borrow risk on in_flight_close_request in finish_in_flight_close_with_error

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* remove unnecessary clone of of reason in abort

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* fix condition on backpressure and a writable state in close

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* limit visibility to crate for update_backpressure

Co-authored-by: Josh Matthews <josh@joshmatthews.net>
Signed-off-by: Gregory Terzian <2792687+gterzian@users.noreply.github.com>

* remove mutability of reason in abort workflow

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* remove unnecessary use of ignore_malloc_size_of around Dom in controller

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* fix ignore malloc size of comment for strategy size

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* reduce visibility of public methods to crate in controller

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* remove use of JS_GetPendingException in controller get_chunk_size

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* return early on error in write

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* use is_some_and in assertion that stream.witer is writer in release

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* root pending abort request

uses ai

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

* fix mutable re-borrow risk in writer

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>

---------

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
Signed-off-by: Gregory Terzian <2792687+gterzian@users.noreply.github.com>
Co-authored-by: Josh Matthews <josh@joshmatthews.net>
This commit is contained in:
Gregory Terzian 2025-02-19 20:02:14 +07:00 committed by GitHub
parent 720bc725b0
commit df6d636168
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
33 changed files with 2914 additions and 19 deletions

View file

@ -245,6 +245,8 @@ skip: true
skip: true
[readable-streams]
skip: false
[writable-streams]
skip: false
[subresource-integrity]
skip: false
[touch-events]

View file

@ -1,2 +1,36 @@
[realms.window.html]
expected: ERROR
[a TextEncoderStream object should be associated with the realm the constructor came from]
expected: FAIL
[TextEncoderStream's readable and writable attributes should come from the same realm as the constructor definition]
expected: FAIL
[the output chunks when read is called after write should come from the same realm as the constructor of TextEncoderStream]
expected: FAIL
[the output chunks when write is called with a pending read should come from the same realm as the constructor of TextEncoderStream]
expected: FAIL
[TypeError for unconvertable chunk should come from constructor realm of TextEncoderStream]
expected: FAIL
[a TextDecoderStream object should be associated with the realm the constructor came from]
expected: FAIL
[TextDecoderStream's readable and writable attributes should come from the same realm as the constructor definition]
expected: FAIL
[the result object when read is called after write should come from the same realm as the constructor of TextDecoderStream]
expected: FAIL
[the result object when write is called with a pending read should come from the same realm as the constructor of TextDecoderStream]
expected: FAIL
[TypeError for chunk with the wrong type should come from constructor realm of TextDecoderStream]
expected: FAIL
[TypeError for invalid chunk should come from constructor realm of TextDecoderStream]
expected: FAIL
[TypeError for incomplete input should come from constructor realm of TextDecoderStream]
expected: FAIL

View file

@ -1,33 +1,46 @@
[response-stream-with-broken-then.any.worker.html]
expected: TIMEOUT
[Attempt to inject {done: false, value: bye} via Object.prototype.then.]
expected: FAIL
[Attempt to inject value: undefined via Object.prototype.then.]
expected: FAIL
[Attempt to inject undefined via Object.prototype.then.]
expected: FAIL
[Attempt to inject 8.2 via Object.prototype.then.]
expected: FAIL
[intercepting arraybuffer to text conversion via Object.prototype.then should not be possible]
expected: FAIL
[intercepting arraybuffer to body readable stream conversion via Object.prototype.then should not be possible]
expected: FAIL
[response-stream-with-broken-then.any.sharedworker.html]
expected: ERROR
[response-stream-with-broken-then.any.html]
[Attempt to inject {done: false, value: bye} via Object.prototype.then.]
expected: FAIL
[Attempt to inject value: undefined via Object.prototype.then.]
expected: FAIL
[Attempt to inject undefined via Object.prototype.then.]
expected: FAIL
[Attempt to inject 8.2 via Object.prototype.then.]
expected: FAIL
[intercepting arraybuffer to text conversion via Object.prototype.then should not be possible]
expected: FAIL
[intercepting arraybuffer to body readable stream conversion via Object.prototype.then should not be possible]
expected: FAIL
[response-stream-with-broken-then.any.serviceworker.html]
expected: ERROR

View file

@ -0,0 +1,87 @@
[aborting.any.html]
[WritableStreamDefaultController.signal]
expected: FAIL
[the abort signal is signalled synchronously - write]
expected: FAIL
[the abort signal is signalled synchronously - close]
expected: FAIL
[the abort signal is not signalled on error]
expected: FAIL
[the abort signal is not signalled on write failure]
expected: FAIL
[the abort signal is not signalled on close failure]
expected: FAIL
[recursive abort() call from abort() aborting signal (not started)]
expected: FAIL
[recursive abort() call from abort() aborting signal]
expected: FAIL
[recursive close() call from abort() aborting signal (not started)]
expected: FAIL
[recursive close() call from abort() aborting signal]
expected: FAIL
[aborting.https.any.shadowrealm-in-serviceworker.html]
expected: ERROR
[aborting.any.worker.html]
[WritableStreamDefaultController.signal]
expected: FAIL
[the abort signal is signalled synchronously - write]
expected: FAIL
[the abort signal is signalled synchronously - close]
expected: FAIL
[the abort signal is not signalled on error]
expected: FAIL
[the abort signal is not signalled on write failure]
expected: FAIL
[the abort signal is not signalled on close failure]
expected: FAIL
[recursive abort() call from abort() aborting signal (not started)]
expected: FAIL
[recursive abort() call from abort() aborting signal]
expected: FAIL
[recursive close() call from abort() aborting signal (not started)]
expected: FAIL
[recursive close() call from abort() aborting signal]
expected: FAIL
[aborting.any.shadowrealm-in-dedicatedworker.html]
expected: ERROR
[aborting.https.any.shadowrealm-in-audioworklet.html]
expected: ERROR
[aborting.any.shadowrealm-in-sharedworker.html]
expected: ERROR
[aborting.any.sharedworker.html]
expected: ERROR
[aborting.any.serviceworker.html]
expected: ERROR
[aborting.any.shadowrealm-in-window.html]
expected: ERROR
[aborting.any.shadowrealm-in-shadowrealm.html]
expected: ERROR

View file

@ -0,0 +1,25 @@
[bad-strategies.https.any.shadowrealm-in-audioworklet.html]
expected: ERROR
[bad-strategies.any.shadowrealm-in-shadowrealm.html]
expected: ERROR
[bad-strategies.any.worker.html]
[bad-strategies.any.shadowrealm-in-window.html]
expected: ERROR
[bad-strategies.https.any.shadowrealm-in-serviceworker.html]
expected: ERROR
[bad-strategies.any.sharedworker.html]
expected: ERROR
[bad-strategies.any.shadowrealm-in-dedicatedworker.html]
expected: ERROR
[bad-strategies.any.serviceworker.html]
expected: ERROR
[bad-strategies.any.shadowrealm-in-sharedworker.html]
expected: ERROR

View file

@ -0,0 +1,23 @@
[bad-underlying-sinks.any.sharedworker.html]
expected: ERROR
[bad-underlying-sinks.https.any.shadowrealm-in-serviceworker.html]
expected: ERROR
[bad-underlying-sinks.any.shadowrealm-in-shadowrealm.html]
expected: ERROR
[bad-underlying-sinks.any.shadowrealm-in-sharedworker.html]
expected: ERROR
[bad-underlying-sinks.any.shadowrealm-in-window.html]
expected: ERROR
[bad-underlying-sinks.https.any.shadowrealm-in-audioworklet.html]
expected: ERROR
[bad-underlying-sinks.any.shadowrealm-in-dedicatedworker.html]
expected: ERROR
[bad-underlying-sinks.any.serviceworker.html]
expected: ERROR

View file

@ -0,0 +1,25 @@
[byte-length-queuing-strategy.https.any.shadowrealm-in-serviceworker.html]
expected: ERROR
[byte-length-queuing-strategy.any.shadowrealm-in-window.html]
expected: ERROR
[byte-length-queuing-strategy.any.shadowrealm-in-dedicatedworker.html]
expected: ERROR
[byte-length-queuing-strategy.any.html]
[byte-length-queuing-strategy.any.shadowrealm-in-shadowrealm.html]
expected: ERROR
[byte-length-queuing-strategy.any.shadowrealm-in-sharedworker.html]
expected: ERROR
[byte-length-queuing-strategy.any.serviceworker.html]
expected: ERROR
[byte-length-queuing-strategy.https.any.shadowrealm-in-audioworklet.html]
expected: ERROR
[byte-length-queuing-strategy.any.sharedworker.html]
expected: ERROR

View file

@ -0,0 +1,23 @@
[close.any.serviceworker.html]
expected: ERROR
[close.https.any.shadowrealm-in-serviceworker.html]
expected: ERROR
[close.any.sharedworker.html]
expected: ERROR
[close.any.shadowrealm-in-sharedworker.html]
expected: ERROR
[close.any.shadowrealm-in-window.html]
expected: ERROR
[close.https.any.shadowrealm-in-audioworklet.html]
expected: ERROR
[close.any.shadowrealm-in-dedicatedworker.html]
expected: ERROR
[close.any.shadowrealm-in-shadowrealm.html]
expected: ERROR

View file

@ -0,0 +1,23 @@
[constructor.any.shadowrealm-in-sharedworker.html]
expected: ERROR
[constructor.https.any.shadowrealm-in-serviceworker.html]
expected: ERROR
[constructor.any.shadowrealm-in-shadowrealm.html]
expected: ERROR
[constructor.any.serviceworker.html]
expected: ERROR
[constructor.any.sharedworker.html]
expected: ERROR
[constructor.https.any.shadowrealm-in-audioworklet.html]
expected: ERROR
[constructor.any.shadowrealm-in-window.html]
expected: ERROR
[constructor.any.shadowrealm-in-dedicatedworker.html]
expected: ERROR

View file

@ -0,0 +1,25 @@
[count-queuing-strategy.https.any.shadowrealm-in-audioworklet.html]
expected: ERROR
[count-queuing-strategy.any.shadowrealm-in-sharedworker.html]
expected: ERROR
[count-queuing-strategy.any.shadowrealm-in-window.html]
expected: ERROR
[count-queuing-strategy.https.any.shadowrealm-in-serviceworker.html]
expected: ERROR
[count-queuing-strategy.any.sharedworker.html]
expected: ERROR
[count-queuing-strategy.any.serviceworker.html]
expected: ERROR
[count-queuing-strategy.any.shadowrealm-in-dedicatedworker.html]
expected: ERROR
[count-queuing-strategy.any.worker.html]
[count-queuing-strategy.any.shadowrealm-in-shadowrealm.html]
expected: ERROR

View file

@ -0,0 +1,23 @@
[error.any.shadowrealm-in-sharedworker.html]
expected: ERROR
[error.https.any.shadowrealm-in-audioworklet.html]
expected: ERROR
[error.any.shadowrealm-in-dedicatedworker.html]
expected: ERROR
[error.any.serviceworker.html]
expected: ERROR
[error.any.shadowrealm-in-shadowrealm.html]
expected: ERROR
[error.any.shadowrealm-in-window.html]
expected: ERROR
[error.https.any.shadowrealm-in-serviceworker.html]
expected: ERROR
[error.any.sharedworker.html]
expected: ERROR

View file

@ -0,0 +1,23 @@
[floating-point-total-queue-size.any.shadowrealm-in-shadowrealm.html]
expected: ERROR
[floating-point-total-queue-size.https.any.shadowrealm-in-serviceworker.html]
expected: ERROR
[floating-point-total-queue-size.any.serviceworker.html]
expected: ERROR
[floating-point-total-queue-size.any.shadowrealm-in-dedicatedworker.html]
expected: ERROR
[floating-point-total-queue-size.any.sharedworker.html]
expected: ERROR
[floating-point-total-queue-size.any.shadowrealm-in-window.html]
expected: ERROR
[floating-point-total-queue-size.https.any.shadowrealm-in-audioworklet.html]
expected: ERROR
[floating-point-total-queue-size.any.shadowrealm-in-sharedworker.html]
expected: ERROR

View file

@ -0,0 +1,23 @@
[garbage-collection.https.any.shadowrealm-in-audioworklet.html]
expected: ERROR
[garbage-collection.any.sharedworker.html]
expected: ERROR
[garbage-collection.any.shadowrealm-in-dedicatedworker.html]
expected: ERROR
[garbage-collection.https.any.shadowrealm-in-serviceworker.html]
expected: ERROR
[garbage-collection.any.serviceworker.html]
expected: ERROR
[garbage-collection.any.shadowrealm-in-shadowrealm.html]
expected: ERROR
[garbage-collection.any.shadowrealm-in-window.html]
expected: ERROR
[garbage-collection.any.shadowrealm-in-sharedworker.html]
expected: ERROR

View file

@ -0,0 +1,27 @@
[general.https.any.shadowrealm-in-serviceworker.html]
expected: ERROR
[general.any.shadowrealm-in-dedicatedworker.html]
expected: ERROR
[general.any.shadowrealm-in-shadowrealm.html]
expected: ERROR
[general.any.shadowrealm-in-window.html]
expected: ERROR
[general.any.serviceworker.html]
expected: ERROR
[general.https.any.shadowrealm-in-audioworklet.html]
expected: ERROR
[general.any.shadowrealm-in-sharedworker.html]
expected: ERROR
[general.any.sharedworker.html]
expected: ERROR
[general.any.html]
[general.any.worker.html]

View file

@ -0,0 +1,23 @@
[properties.any.serviceworker.html]
expected: ERROR
[properties.https.any.shadowrealm-in-serviceworker.html]
expected: ERROR
[properties.any.sharedworker.html]
expected: ERROR
[properties.any.shadowrealm-in-window.html]
expected: ERROR
[properties.https.any.shadowrealm-in-audioworklet.html]
expected: ERROR
[properties.any.shadowrealm-in-shadowrealm.html]
expected: ERROR
[properties.any.shadowrealm-in-dedicatedworker.html]
expected: ERROR
[properties.any.shadowrealm-in-sharedworker.html]
expected: ERROR

View file

@ -0,0 +1,23 @@
[reentrant-strategy.any.serviceworker.html]
expected: ERROR
[reentrant-strategy.any.shadowrealm-in-sharedworker.html]
expected: ERROR
[reentrant-strategy.any.shadowrealm-in-window.html]
expected: ERROR
[reentrant-strategy.any.shadowrealm-in-dedicatedworker.html]
expected: ERROR
[reentrant-strategy.any.shadowrealm-in-shadowrealm.html]
expected: ERROR
[reentrant-strategy.https.any.shadowrealm-in-audioworklet.html]
expected: ERROR
[reentrant-strategy.https.any.shadowrealm-in-serviceworker.html]
expected: ERROR
[reentrant-strategy.any.sharedworker.html]
expected: ERROR

View file

@ -0,0 +1,23 @@
[start.https.any.shadowrealm-in-audioworklet.html]
expected: ERROR
[start.any.serviceworker.html]
expected: ERROR
[start.https.any.shadowrealm-in-serviceworker.html]
expected: ERROR
[start.any.shadowrealm-in-shadowrealm.html]
expected: ERROR
[start.any.sharedworker.html]
expected: ERROR
[start.any.shadowrealm-in-sharedworker.html]
expected: ERROR
[start.any.shadowrealm-in-dedicatedworker.html]
expected: ERROR
[start.any.shadowrealm-in-window.html]
expected: ERROR

View file

@ -0,0 +1,23 @@
[write.https.any.shadowrealm-in-serviceworker.html]
expected: ERROR
[write.any.shadowrealm-in-window.html]
expected: ERROR
[write.any.shadowrealm-in-sharedworker.html]
expected: ERROR
[write.https.any.shadowrealm-in-audioworklet.html]
expected: ERROR
[write.any.serviceworker.html]
expected: ERROR
[write.any.shadowrealm-in-shadowrealm.html]
expected: ERROR
[write.any.sharedworker.html]
expected: ERROR
[write.any.shadowrealm-in-dedicatedworker.html]
expected: ERROR

View file

@ -8,9 +8,6 @@
[The Path2D interface object should be exposed.]
expected: FAIL
[The WritableStream interface object should be exposed.]
expected: FAIL
[The IDBRequest interface object should be exposed.]
expected: FAIL

View file

@ -13506,14 +13506,14 @@
]
],
"interfaces.https.html": [
"4e9a583f82479e20dfa932459d3eff607e530d01",
"6c48986beea5c8aca4e54c6da0fb8f3b7a4390e0",
[
null,
{}
]
],
"interfaces.worker.js": [
"f708bfb25594a239be31671e9fd15d6771309a12",
"4ac5c822dcc6fbb021050ac2ab2ba4d04452d945",
[
"mozilla/interfaces.worker.html",
{}

View file

@ -295,6 +295,9 @@ test_interfaces([
"WheelEvent",
"Window",
"Worker",
"WritableStream",
"WritableStreamDefaultController",
"WritableStreamDefaultWriter",
"XMLDocument",
"XMLHttpRequest",
"XMLHttpRequestEventTarget",

View file

@ -82,6 +82,9 @@ test_interfaces([
"WorkerGlobalScope",
"WorkerLocation",
"WorkerNavigator",
"WritableStream",
"WritableStreamDefaultController",
"WritableStreamDefaultWriter",
"XMLHttpRequest",
"XMLHttpRequestEventTarget",
"XMLHttpRequestUpload",