mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-03 14:50:18 +00:00
LibWeb: Implement transfer {,receiving} steps for ImageBitmap
This commit is contained in:
parent
c0976b18e0
commit
ed3d0d76ec
Notes:
github-actions[bot]
2025-07-20 00:31:58 +00:00
Author: https://github.com/kennethmyhra
Commit: ed3d0d76ec
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/5445
Reviewed-by: https://github.com/shannonbooth
3 changed files with 22 additions and 9 deletions
|
@ -82,25 +82,32 @@ WebIDL::ExceptionOr<void> ImageBitmap::deserialization_steps(HTML::TransferDataD
|
|||
return {};
|
||||
}
|
||||
|
||||
WebIDL::ExceptionOr<void> ImageBitmap::transfer_steps(HTML::TransferDataEncoder&)
|
||||
// https://html.spec.whatwg.org/multipage/imagebitmap-and-animations.html#the-imagebitmap-interface:transfer-steps
|
||||
WebIDL::ExceptionOr<void> ImageBitmap::transfer_steps(HTML::TransferDataEncoder& data_holder)
|
||||
{
|
||||
// FIXME: Implement this
|
||||
dbgln("(STUBBED) ImageBitmap::transfer_steps(HTML::TransferDataEncoder&)");
|
||||
// FIXME: 1. If value's origin-clean flag is not set, then throw a "DataCloneError" DOMException.
|
||||
|
||||
// 2. Set dataHolder.[[BitmapData]] to value's bitmap data.
|
||||
serialize_bitmap(data_holder, *m_bitmap);
|
||||
|
||||
// 3. Unset value's bitmap data.
|
||||
m_bitmap = nullptr;
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
WebIDL::ExceptionOr<void> ImageBitmap::transfer_receiving_steps(HTML::TransferDataDecoder&)
|
||||
// https://html.spec.whatwg.org/multipage/imagebitmap-and-animations.html#the-imagebitmap-interface:transfer-receiving-steps
|
||||
WebIDL::ExceptionOr<void> ImageBitmap::transfer_receiving_steps(HTML::TransferDataDecoder& data_holder)
|
||||
{
|
||||
// FIXME: Implement this
|
||||
dbgln("(STUBBED) ImageBitmap::transfer_receiving_steps(HTML::TransferDataDecoder&)");
|
||||
// 1. Set value's bitmap data to dataHolder.[[BitmapData]].
|
||||
m_bitmap = TRY(deserialize_bitmap(this->realm(), data_holder));
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
HTML::TransferType ImageBitmap::primary_interface() const
|
||||
{
|
||||
// FIXME: Implement this
|
||||
dbgln("(STUBBED) ImageBitmap::primary_interface()");
|
||||
return TransferType::Unknown;
|
||||
return TransferType::ImageBitmap;
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/imagebitmap-and-animations.html#dom-imagebitmap-width
|
||||
|
|
|
@ -1147,6 +1147,11 @@ static WebIDL::ExceptionOr<GC::Ref<Bindings::PlatformObject>> create_transferred
|
|||
TRY(transform_stream->transfer_receiving_steps(decoder));
|
||||
return transform_stream;
|
||||
}
|
||||
case TransferType::ImageBitmap: {
|
||||
auto image_bitmap = target_realm.create<ImageBitmap>(target_realm);
|
||||
TRY(image_bitmap->transfer_receiving_steps(decoder));
|
||||
return image_bitmap;
|
||||
}
|
||||
case TransferType::ArrayBuffer:
|
||||
case TransferType::ResizableArrayBuffer:
|
||||
case TransferType::Unknown:
|
||||
|
|
|
@ -44,6 +44,7 @@ enum class TransferType : u8 {
|
|||
ReadableStream = 4,
|
||||
WritableStream = 5,
|
||||
TransformStream = 6,
|
||||
ImageBitmap = 7,
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue