Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 2819c302abc2021b6050523955b06c7249a54b70
      
https://github.com/WebKit/WebKit/commit/2819c302abc2021b6050523955b06c7249a54b70
  Author: Youenn Fablet <[email protected]>
  Date:   2025-09-26 (Fri, 26 Sep 2025)

  Changed paths:
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/idlharness.any-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/idlharness.any.serviceworker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/idlharness.any.sharedworker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/idlharness.any.worker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/piping/abort.any-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/piping/abort.any.serviceworker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/piping/abort.any.sharedworker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/piping/abort.any.worker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/bad-buffers-and-views.any.sharedworker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/construct-byob-request.any-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/construct-byob-request.any.serviceworker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/construct-byob-request.any.sharedworker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/construct-byob-request.any.worker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/enqueue-with-detached-buffer.any-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/enqueue-with-detached-buffer.any.serviceworker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/enqueue-with-detached-buffer.any.sharedworker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/enqueue-with-detached-buffer.any.worker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/general.any.sharedworker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/non-transferable-buffers.any-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/non-transferable-buffers.any.serviceworker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/non-transferable-buffers.any.sharedworker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/non-transferable-buffers.any.worker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/patched-global.any-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/patched-global.any.serviceworker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/patched-global.any.sharedworker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/patched-global.any.worker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/read-min.any-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/read-min.any.serviceworker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/read-min.any.sharedworker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/read-min.any.worker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/respond-after-enqueue.any.sharedworker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/tee.any-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/tee.any.serviceworker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/tee.any.sharedworker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/tee.any.worker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/templated.any-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/templated.any.serviceworker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/templated.any.sharedworker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/templated.any.worker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/owning-type-message-port.any-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/owning-type-message-port.any.serviceworker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/owning-type-message-port.any.sharedworker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/owning-type-message-port.any.worker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/owning-type-video-frame.any-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/owning-type-video-frame.any.worker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/owning-type.any-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/owning-type.any.serviceworker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/owning-type.any.sharedworker-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/owning-type.any.worker-expected.txt
    M LayoutTests/platform/glib/TestExpectations
    M LayoutTests/streams/readable-stream-byob-reader-expected.txt
    M LayoutTests/streams/readable-stream-byob-reader-worker-expected.txt
    M LayoutTests/streams/readable-stream-byob-request-expected.txt
    M LayoutTests/streams/readable-stream-byob-request-worker-expected.txt
    M LayoutTests/streams/reference-implementation/abstract-ops-expected.txt
    M Source/JavaScriptCore/runtime/ExceptionHelpers.h
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
    M Source/WebCore/CMakeLists.txt
    M Source/WebCore/DerivedSources-output.xcfilelist
    M Source/WebCore/DerivedSources.make
    M Source/WebCore/Modules/fetch/FetchBodyOwner.cpp
    A Source/WebCore/Modules/streams/ByteLengthQueuingStrategy.cpp
    A Source/WebCore/Modules/streams/ByteLengthQueuingStrategy.h
    M Source/WebCore/Modules/streams/ByteLengthQueuingStrategy.idl
    A Source/WebCore/Modules/streams/ReadableByteStreamController.cpp
    A Source/WebCore/Modules/streams/ReadableByteStreamController.h
    M Source/WebCore/Modules/streams/ReadableByteStreamController.idl
    M Source/WebCore/Modules/streams/ReadableStream.cpp
    M Source/WebCore/Modules/streams/ReadableStream.h
    M Source/WebCore/Modules/streams/ReadableStream.idl
    A Source/WebCore/Modules/streams/ReadableStreamBYOBReader.cpp
    A Source/WebCore/Modules/streams/ReadableStreamBYOBReader.h
    M Source/WebCore/Modules/streams/ReadableStreamBYOBReader.idl
    A Source/WebCore/Modules/streams/ReadableStreamBYOBRequest.cpp
    A Source/WebCore/Modules/streams/ReadableStreamBYOBRequest.h
    M Source/WebCore/Modules/streams/ReadableStreamBYOBRequest.idl
    M Source/WebCore/Modules/streams/ReadableStreamDefaultReader.cpp
    M Source/WebCore/Modules/streams/ReadableStreamInternals.js
    M Source/WebCore/Modules/streams/UnderlyingSourcePullCallback.h
    M Source/WebCore/Modules/streams/UnderlyingSourcePullCallback.idl
    M Source/WebCore/Modules/streams/UnderlyingSourceStartCallback.h
    M Source/WebCore/Modules/streams/UnderlyingSourceStartCallback.idl
    M Source/WebCore/Sources.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/bindings/js/JSDOMGlobalObject.cpp
    M Source/WebCore/bindings/js/JSDOMGlobalObject.h
    M Source/WebCore/bindings/js/JSDOMPromiseDeferred.h
    M Source/WebCore/bindings/js/WebCoreBuiltinNames.h

  Log Message:
  -----------
  Add skeleton implementation for byte stream constructs (strategy, request, 
reader and controller)
rdar://161171657
https://bugs.webkit.org/show_bug.cgi?id=299371

Reviewed by Chris Dumez.

We add a skeleton for ReadableByteStreamController.
We add the implementation for classes ByteLengthQueuingStrategy, 
ReadableStreamBYOBReader and ReadableStreamBYOBRequest.

We start integration of ReadableByteStreamController in ReadableStream and 
ReadableStreamDefaultReader.
A follow-up will make ReadableByteStreamController functional.

Covered by rebased tests.

* 
LayoutTests/imported/w3c/web-platform-tests/streams/idlharness.any-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/idlharness.any.serviceworker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/idlharness.any.sharedworker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/idlharness.any.worker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/piping/abort.any-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/piping/abort.any.serviceworker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/piping/abort.any.sharedworker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/piping/abort.any.worker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/bad-buffers-and-views.any.sharedworker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/construct-byob-request.any-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/construct-byob-request.any.serviceworker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/construct-byob-request.any.sharedworker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/construct-byob-request.any.worker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/enqueue-with-detached-buffer.any-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/enqueue-with-detached-buffer.any.serviceworker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/enqueue-with-detached-buffer.any.sharedworker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/enqueue-with-detached-buffer.any.worker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/general.any.sharedworker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/non-transferable-buffers.any-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/non-transferable-buffers.any.serviceworker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/non-transferable-buffers.any.sharedworker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/non-transferable-buffers.any.worker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/patched-global.any-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/patched-global.any.serviceworker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/patched-global.any.sharedworker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/patched-global.any.worker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/read-min.any-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/read-min.any.serviceworker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/read-min.any.sharedworker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/read-min.any.worker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/respond-after-enqueue.any.sharedworker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/tee.any-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/tee.any.serviceworker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/tee.any.sharedworker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/tee.any.worker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/templated.any-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/templated.any.serviceworker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/templated.any.sharedworker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-byte-streams/templated.any.worker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/owning-type-message-port.any-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/owning-type-message-port.any.serviceworker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/owning-type-message-port.any.sharedworker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/owning-type-message-port.any.worker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/owning-type-video-frame.any-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/owning-type-video-frame.any.worker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/owning-type.any-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/owning-type.any.serviceworker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/owning-type.any.sharedworker-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/streams/readable-streams/owning-type.any.worker-expected.txt:
* LayoutTests/streams/readable-stream-byob-reader-expected.txt:
* LayoutTests/streams/readable-stream-byob-reader-worker-expected.txt:
* LayoutTests/streams/readable-stream-byob-request-expected.txt:
* LayoutTests/streams/readable-stream-byob-request-worker-expected.txt:
* Source/JavaScriptCore/runtime/ExceptionHelpers.h:
* Source/WebCore/CMakeLists.txt:
* Source/WebCore/DerivedSources-output.xcfilelist:
* Source/WebCore/DerivedSources.make:
* Source/WebCore/Modules/fetch/FetchBodyOwner.cpp:
(WebCore::FetchBodyOwner::createReadableStream):
* Source/WebCore/Modules/streams/ByteLengthQueuingStrategy.cpp: Copied from 
Source/WebCore/Modules/streams/UnderlyingSourcePullCallback.h.
(WebCore::ByteLengthQueuingStrategy::create):
(WebCore::ByteLengthQueuingStrategy::ByteLengthQueuingStrategy):
(WebCore::ByteLengthQueuingStrategy::size):
* Source/WebCore/Modules/streams/ByteLengthQueuingStrategy.h: Copied from 
Source/WebCore/Modules/streams/UnderlyingSourcePullCallback.h.
(WebCore::ByteLengthQueuingStrategy::highWaterMark const):
* Source/WebCore/Modules/streams/ByteLengthQueuingStrategy.idl:
* Source/WebCore/Modules/streams/ReadableByteStreamController.cpp: Added.
(WebCore::ReadableByteStreamController::ReadableByteStreamController):
(WebCore::ReadableByteStreamController::ref):
(WebCore::ReadableByteStreamController::deref):
(WebCore::ReadableByteStreamController::stream):
(WebCore::ReadableByteStreamController::byobRequestForBindings const):
(WebCore::ReadableByteStreamController::desiredSize const):
(WebCore::ReadableByteStreamController::closeForBindings):
(WebCore::ReadableByteStreamController::enqueueForBindings):
(WebCore::ReadableByteStreamController::errorForBindings):
(WebCore::ReadableByteStreamController::start):
(WebCore::ReadableByteStreamController::close):
(WebCore::ReadableByteStreamController::enqueue):
(WebCore::ReadableByteStreamController::error):
(WebCore::ReadableByteStreamController::pullInto):
(WebCore::ReadableByteStreamController::runCancelSteps):
(WebCore::ReadableByteStreamController::runPullSteps):
(WebCore::ReadableByteStreamController::runReleaseSteps):
(WebCore::ReadableByteStreamController::respond):
(WebCore::ReadableByteStreamController::respondWithNewView):
* Source/WebCore/Modules/streams/ReadableByteStreamController.h: Added.
* Source/WebCore/Modules/streams/ReadableByteStreamController.idl:
* Source/WebCore/Modules/streams/ReadableStream.cpp:
(WebCore::extractHighWaterMark):
(WebCore::isReadableByteStream):
(WebCore::ReadableStream::create):
(WebCore::ReadableStream::createFromByteUnderlyingSource):
(WebCore::ReadableStream::getReader):
(WebCore::ReadableStream::tee):
(WebCore::ReadableStream::setDefaultReader):
(WebCore::ReadableStream::setByobReader):
(WebCore::ReadableStream::byobReader):
(WebCore::ReadableStream::setupReadableByteStreamControllerFromUnderlyingSource):
(WebCore::JSReadableStream::cancel):
(WebCore::JSReadableStream::pipeTo):
(WebCore::JSReadableStream::pipeThrough):
* Source/WebCore/Modules/streams/ReadableStream.h:
(WebCore::ReadableStream::hasByteStreamController):
(WebCore::ReadableStream::controller):
(WebCore::ReadableStream::ReadableStream):
* Source/WebCore/Modules/streams/ReadableStream.idl:
* Source/WebCore/Modules/streams/ReadableStreamBYOBReader.cpp: Added.
(WebCore::ReadableStreamBYOBReader::create):
(WebCore::ReadableStreamBYOBReader::ReadableStreamBYOBReader):
(WebCore::ReadableStreamBYOBReader::closedPromise):
(WebCore::ReadableStreamBYOBReader::read):
(WebCore::ReadableStreamBYOBReader::releaseLock):
(WebCore::ReadableStreamBYOBReader::cancel):
(WebCore::ReadableStreamBYOBReader::setupBYOBReader):
(WebCore::ReadableStreamBYOBReader::initialize):
(WebCore::ReadableStreamBYOBReader::genericRelease):
(WebCore::ReadableStreamBYOBReader::errorReadIntoRequests):
(WebCore::ReadableStreamBYOBReader::resolveClosedPromise):
(WebCore::ReadableStreamBYOBReader::rejectClosedPromise):
(WebCore::ReadableStreamBYOBReader::genericCancel):
(WebCore::ReadableStreamBYOBReader::onClosedPromiseRejection):
* Source/WebCore/Modules/streams/ReadableStreamBYOBReader.h: Added.
(WebCore::ReadableStreamBYOBReader::takeFirstReadIntoRequest):
(WebCore::ReadableStreamBYOBReader::readIntoRequestsSize const):
(WebCore::ReadableStreamBYOBReader::addReadIntoRequest):
* Source/WebCore/Modules/streams/ReadableStreamBYOBReader.idl:
* Source/WebCore/Modules/streams/ReadableStreamBYOBRequest.cpp: Added.
(WebCore::ReadableStreamBYOBRequest::create):
(WebCore::ReadableStreamBYOBRequest::view const):
(WebCore::ReadableStreamBYOBRequest::respond):
(WebCore::ReadableStreamBYOBRequest::respondWithNewView):
(WebCore::ReadableStreamBYOBRequest::setController):
(WebCore::ReadableStreamBYOBRequest::setView):
* Source/WebCore/Modules/streams/ReadableStreamBYOBRequest.h: Copied from 
Source/WebCore/Modules/streams/UnderlyingSourceStartCallback.h.
* Source/WebCore/Modules/streams/ReadableStreamBYOBRequest.idl:
* Source/WebCore/Modules/streams/ReadableStreamDefaultReader.cpp:
(WebCore::ReadableStreamDefaultReader::read):
(WebCore::ReadableStreamDefaultReader::genericRelease):
(WebCore::JSReadableStreamDefaultReader::read):
(WebCore::JSReadableStreamDefaultReader::closed const):
(WebCore::JSReadableStreamDefaultReader::cancel):
* Source/WebCore/Modules/streams/ReadableStreamInternals.js:
(createInternalReadableStreamFromUnderlyingSource):
(readableStreamError):
* Source/WebCore/Modules/streams/UnderlyingSourcePullCallback.h:
* Source/WebCore/Modules/streams/UnderlyingSourcePullCallback.idl:
* Source/WebCore/Modules/streams/UnderlyingSourceStartCallback.h:
* Source/WebCore/Modules/streams/UnderlyingSourceStartCallback.idl:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSC_DEFINE_HOST_FUNCTION):
(WebCore::JSDOMGlobalObject::visitChildrenImpl):
(WebCore::JSDOMGlobalObject::readableStreamByteStrategySize):
* Source/WebCore/bindings/js/JSDOMGlobalObject.h:
* Source/WebCore/bindings/js/JSDOMPromiseDeferred.h:
(WebCore::callPromiseFunction):
(WebCore::callPromisePairFunction):
* Source/WebCore/bindings/js/WebCoreBuiltinNames.h:

Canonical link: https://commits.webkit.org/300568@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to