Kenneth Myhra
907dc84c1e
LibWeb: Implement min option for ReadableStreamBYOBReader.read()
...
When the min option is given the read will only be fulfilled when there
are min or more elements available in the readable byte stream.
When the min option is not given the default value for min is 1.
2024-07-11 11:55:15 +02:00
Kenneth Myhra
e70886595a
LibWeb: Implement and wire up TransformStream's cancel callback
2024-06-09 21:27:26 -04:00
Kenneth Myhra
e848249b8d
LibWeb: Implement AO transform_stream_default_source_cancel_algorithm
2024-06-09 21:27:26 -04:00
Kenneth Myhra
afb74eca52
LibWeb: Implement AO transform_stream_unblock_write
2024-06-09 21:27:26 -04:00
Kenneth Myhra
01a8b5ee54
LibWeb: Implement AO readable_stream_from_iterable
2024-06-09 10:12:46 +02:00
Kenneth Myhra
ce521a196d
LibWeb: Add non-standard AO set_up_readable_stream
...
This AO can be used instead of CreateReadableStream in cases where we
need to set up a newly allocated ReadableStream before initialization of
said ReadableStream, i.e. ReadableStream is captured by lambdas in an
uninitialized state.
2024-06-09 10:12:46 +02:00
Timothy Flynn
2a2c59e74b
LibWeb: Partially implement the ReadableStream pull-from-bytes AO
...
We do not handle BYOB request views yet, as they are not needed for the
upcoming usage of this AO.
2024-05-26 18:29:24 +02:00
Kenneth Myhra
5a3e603b3d
LibWeb: Implement AO transform_stream_set_up()
2024-05-20 16:57:52 -04:00
Timothy Flynn
572a7bb313
LibWeb: Remove exceptional return types from infallible stream AOs
2024-04-30 08:14:12 +02:00
Timothy Flynn
c29916775e
LibWeb: Mark stream AOs as infallible as required by the spec
...
There were several instances where the spec marks an AO invocation as
infallible, but we were propagating WebIDL::ExceptionOr. These mostly
cannot throw due to knowledge about the values they are provided. By
unwinding these, we can remove a decent amount of exception handling.
2024-04-30 08:14:12 +02:00
Timothy Flynn
3aa6ef8ac0
LibWeb: Use LibJS's is-infinity helper in the enqueue-value-with-size AO
2024-04-30 08:14:12 +02:00
Timothy Flynn
9d5e538247
LibWeb: Mark writable stream abort steps as infallible
...
These don't throw. We can remove a decent amount of exception handling
by marking them infallible.
2024-04-30 08:14:12 +02:00
Timothy Flynn
fc070c8cbd
LibWeb: Mark readable stream cancel/pull/release steps as infallible
...
These don't throw. We can remove a decent amount of exception handling
by marking them infallible.
2024-04-30 08:14:12 +02:00
Timothy Flynn
13021a0fb9
LibWeb: Remove small OOM error propagation from stream AOs
2024-04-30 08:14:12 +02:00
Timothy Flynn
bbe6b84bd6
LibWeb: Mark most stream callbacks as infallible
...
There are a number of script-provided stream callbacks for various
stream operations, such as `start`, `pull`, `cancel`, etc. Out of all of
these, only the `start` callback can actually throw. And when it does,
the exception is realized immediately in the corresponding stream
constructor.
All other callbacks have spec text of the form:
Throwing an exception is treated the same as returning a rejected
promise.
And indeed this is internally handled by the streams spec. Thus all of
those callbacks can be specified as returning only a promise, rather
than a WebIDL::ExceptionOr<Promise>.
2024-04-30 08:14:12 +02:00
Kenneth Myhra
559d983fa1
LibWeb: Implement AO readable_stream_pipe_to()
...
This is currently a naive implementation of readable_stream_pipe_to()
which will need some further iterations before it is par with the spec.
2024-04-07 07:01:52 +02:00
Timothy Flynn
6981ddfe13
LibWeb: Implement the ReadableByteStreamTee half of ReadableStreamTee
2024-01-29 07:21:59 +01:00
Timothy Flynn
ed1076d9ca
LibWeb: Implement the ReadableByteStreamControllerRespondWithNewView AO
2024-01-29 07:21:59 +01:00
Timothy Flynn
5e5b42730c
LibWeb: Implement the CloneAsUint8Array AO
2024-01-29 07:21:59 +01:00
Timothy Flynn
debfe996d7
LibWeb: Implement the ReadableStreamDefaultTee half of ReadableStreamTee
2024-01-29 07:21:59 +01:00
Timothy Flynn
d8413774df
LibWeb: Expose the ReadableStream tee
IDL interface
...
This just sets up the plumbing to the underlying ReadableStreamTee AO,
which as of this commit, will just throw a NotImplemented exception.
2024-01-29 07:21:59 +01:00
Timothy Flynn
5ccd1ff1bf
LibWeb: Implement the StructuredClone AO
2024-01-29 07:21:59 +01:00
Shannon Booth
5f484d200a
LibWeb: Port Stream algorithms from JS::SafeFunction to JS::HeapFunction
2024-01-27 21:40:25 -05:00
Timothy Flynn
c8c3866101
LibWeb: Implement the CreateReadableByteStream AO
2024-01-27 16:01:56 +01:00
Shannon Booth
08be5deb3f
LibWeb: Implement AO ReadableByteStreamControllerRespond
2023-12-03 20:26:14 +01:00
Shannon Booth
2ab933e534
LibWeb: Implement AO ReadableByteStreamControllerRespondInternal
2023-12-03 20:26:14 +01:00
Shannon Booth
426cbd8ed3
LibWeb: Implement AO ReadableByteStreamControllerRespondInClosedState
2023-12-03 20:26:14 +01:00
Shannon Booth
be2195cb8c
LibWeb: Implement AO ReadableByteStreamControllerRespondInReadableState
2023-12-03 20:26:14 +01:00
Shannon Booth
0245be70d8
LibWeb: Implement Streams AO CanTransferArrayBuffer
2023-12-03 20:26:14 +01:00
Shannon Booth
9d0700e770
LibWeb: Fix IDL getter for ReadableByteStreamController byobRequest
...
We were previously only returning the controllers current
[[byobRequest]] instead of taking into account pending pull intos.
Rename the getter function which would return the controllers
[[byobRequest]] slot to `raw_byob_request` to differentiate it from
the IDL getter.
This also leaves a FIXME for a spec step which we are also not currently
implementing correctly.
2023-12-03 20:26:14 +01:00
Shannon Booth
673329e1bd
LibWeb: Use ArrayBufferView for ReadableStreamBYOBReader
...
Which means that we now have support for DataViews.
Using the ArrayBufferView class also seems to make this read a whole
bunch nicer as well.
2023-11-24 08:43:35 +01:00
Shannon Booth
9662872b20
LibWeb: Implement AO ReadableStreamByobReaderRead
...
We've finally implemented enough of the Streams AOs so that we are close
to actually performing read operations with BYOB readers.
2023-11-19 18:53:17 +01:00
Shannon Booth
3d37cb0753
LibWeb: Partially implement ReadableByteStreamControllerPullInto
...
This implementation does not handle DataViews at the moment, but should
handle all of the typed arrays.
2023-11-19 18:53:17 +01:00
Shannon Booth
1443715775
LibWeb: Add ReadableBSControllerProcessPullIntoDescriptorsUsingQueue
2023-11-19 18:53:17 +01:00
Shannon Booth
737dc6ce4e
LibWeb: Add ReadableByteStreamControllerFillPullIntoDescriptorFromQueue
2023-11-19 18:53:17 +01:00
Shannon Booth
aca63fd947
LibWeb: Implement ReadableByteStreamControllerCommitPullIntoDescriptor
2023-11-19 18:53:17 +01:00
Shannon Booth
cdcc1ebbba
LibWeb: Implement ReadableByteStreamControllerFillHeadPullIntoDescriptor
2023-11-19 18:53:17 +01:00
Shannon Booth
26e393fbbc
LibWeb: Implement ReadableByteStreamControllerConvertPullIntoDescriptor
2023-11-19 18:53:17 +01:00
Shannon Booth
446a78f30e
LibWeb: Implement Streams AO ReadableStreamAddReadIntoRequest
...
This is effectively identical to ReadableStreamAddReadRequest besides
from the fact that it takes a ReadIntoRequest instead of a ReadRequest,
and is instead intended to be used for BYOB readers.
2023-11-19 18:53:17 +01:00
Shannon Booth
f27e76b0b7
LibWeb: Make ReadableStreamAddReadRequest take a NonnullGCPtr
...
Make it more obvious in the function signature that this function will
be taking a GC ref to a ReadRequest by appending it to the
ReadableStreams pending read requests.
2023-11-19 18:53:17 +01:00
Shannon Booth
5ef41dca53
LibWeb: Implement Streams AO ReadableStreamFulfillReadIntoRequest
2023-11-19 18:53:17 +01:00
Shannon Booth
b06d80e6fd
LibWeb: Implement ReadableStreamBYOBReaderRelease Streams AO
2023-08-31 19:28:56 +02:00
Shannon Booth
8ce4f5597c
LibWeb: Implement ReadableStreamBYOBReaderErrorReadIntoRequests AO
2023-08-31 19:28:56 +02:00
Andreas Kling
9c3e9e8981
LibWeb/Streams: Make ReadRequest GC-allocated
...
This allows it to keep its edges alive. Fixes an intermittent crash seen
by UBSAN on CI. :^)
2023-08-09 19:16:07 +02:00
Shannon Booth
2b46e6f664
Everywhere: Update copyrights with my new serenityos.org e-mail :^)
2023-07-15 16:21:29 +02:00
Kenneth Myhra
7117cb7a35
LibWeb: Add set_up_transform_stream_default_controller_from_transformer
2023-07-15 11:59:39 +02:00
Kenneth Myhra
f7c532d093
LibWeb: Add AO set_up_transform_stream_default_controller()
2023-07-15 11:59:39 +02:00
Kenneth Myhra
86455bbb74
LibWeb: Add AO initialize_transform_stream()
2023-07-15 11:59:39 +02:00
Kenneth Myhra
a52f9970bc
LibWeb: Add AO create_readable_stream()
2023-07-15 11:59:39 +02:00
Kenneth Myhra
8e6b386ff7
LibWeb: Add AO initialize_readable_stream()
2023-07-15 11:59:39 +02:00