mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-26 01:35:08 +02:00
LibWeb: Implement TransformStream transfer
This commit is contained in:
Notes:
github-actions[bot]
2025-05-21 10:55:48 +00:00
Author: https://github.com/trflynn89 Commit: https://github.com/LadybirdBrowser/ladybird/commit/95fc0a8070c Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/4828 Reviewed-by: https://github.com/shannonbooth ✅
@@ -50,6 +50,7 @@
|
||||
#include <LibWeb/HTML/MessagePort.h>
|
||||
#include <LibWeb/HTML/StructuredSerialize.h>
|
||||
#include <LibWeb/Streams/ReadableStream.h>
|
||||
#include <LibWeb/Streams/TransformStream.h>
|
||||
#include <LibWeb/Streams/WritableStream.h>
|
||||
#include <LibWeb/WebIDL/DOMException.h>
|
||||
#include <LibWeb/WebIDL/ExceptionOr.h>
|
||||
@@ -1299,6 +1300,8 @@ static bool is_interface_exposed_on_target_realm(TransferType name, JS::Realm& r
|
||||
return intrinsics.is_exposed("ReadableStream"sv);
|
||||
case TransferType::WritableStream:
|
||||
return intrinsics.is_exposed("WritableStream"sv);
|
||||
case TransferType::TransformStream:
|
||||
return intrinsics.is_exposed("TransformStream"sv);
|
||||
case TransferType::Unknown:
|
||||
dbgln("Unknown interface type for transfer: {}", to_underlying(name));
|
||||
break;
|
||||
@@ -1326,6 +1329,11 @@ static WebIDL::ExceptionOr<GC::Ref<Bindings::PlatformObject>> create_transferred
|
||||
TRY(writable_stream->transfer_receiving_steps(transfer_data_holder));
|
||||
return writable_stream;
|
||||
}
|
||||
case TransferType::TransformStream: {
|
||||
auto transform_stream = target_realm.create<Streams::TransformStream>(target_realm);
|
||||
TRY(transform_stream->transfer_receiving_steps(transfer_data_holder));
|
||||
return transform_stream;
|
||||
}
|
||||
case TransferType::ArrayBuffer:
|
||||
case TransferType::ResizableArrayBuffer:
|
||||
dbgln("ArrayBuffer ({}) is not a platform object.", to_underlying(name));
|
||||
|
||||
Reference in New Issue
Block a user