From d2236e5ca54931d8fc3459e593c548d3b408ea0f Mon Sep 17 00:00:00 2001 From: Kenneth Myhra Date: Fri, 7 Jul 2023 19:30:07 +0200 Subject: [PATCH] LibWeb: Add AO readable_stream_default_controller_has_backpressure() --- .../Libraries/LibWeb/Streams/AbstractOperations.cpp | 11 +++++++++++ .../Libraries/LibWeb/Streams/AbstractOperations.h | 1 + 2 files changed, 12 insertions(+) diff --git a/Userland/Libraries/LibWeb/Streams/AbstractOperations.cpp b/Userland/Libraries/LibWeb/Streams/AbstractOperations.cpp index 7be2cdada4..3a15a6ef33 100644 --- a/Userland/Libraries/LibWeb/Streams/AbstractOperations.cpp +++ b/Userland/Libraries/LibWeb/Streams/AbstractOperations.cpp @@ -542,6 +542,17 @@ void readable_stream_default_controller_close(ReadableStreamDefaultController& c } } +// https://streams.spec.whatwg.org/#rs-default-controller-has-backpressure +bool readable_stream_default_controller_has_backpressure(ReadableStreamDefaultController& controller) +{ + // 1. If ! ReadableStreamDefaultControllerShouldCallPull(controller) is true, return false. + if (readable_stream_default_controller_should_call_pull(controller)) + return false; + + // 2. Otherwise, return true. + return true; +} + // https://streams.spec.whatwg.org/#readable-stream-default-controller-enqueue WebIDL::ExceptionOr readable_stream_default_controller_enqueue(ReadableStreamDefaultController& controller, JS::Value chunk) { diff --git a/Userland/Libraries/LibWeb/Streams/AbstractOperations.h b/Userland/Libraries/LibWeb/Streams/AbstractOperations.h index 36ce19502e..18c1691af8 100644 --- a/Userland/Libraries/LibWeb/Streams/AbstractOperations.h +++ b/Userland/Libraries/LibWeb/Streams/AbstractOperations.h @@ -55,6 +55,7 @@ WebIDL::ExceptionOr readable_stream_default_reader_release(ReadableStreamD WebIDL::ExceptionOr set_up_readable_stream_default_reader(ReadableStreamDefaultReader&, ReadableStream&); WebIDL::ExceptionOr set_up_readable_stream_byob_reader(ReadableStreamBYOBReader&, ReadableStream&); void readable_stream_default_controller_close(ReadableStreamDefaultController&); +bool readable_stream_default_controller_has_backpressure(ReadableStreamDefaultController&); WebIDL::ExceptionOr readable_stream_default_controller_enqueue(ReadableStreamDefaultController&, JS::Value chunk); WebIDL::ExceptionOr readable_stream_default_controller_can_pull_if_needed(ReadableStreamDefaultController&); bool readable_stream_default_controller_should_call_pull(ReadableStreamDefaultController&);