LibWeb: Relayout video elements when setting the initial size

A while ago, we removed the relayout upon rendering a new frame. In
doing so, it became possible for the layout to remain stale after the
video metadata had loaded, leaving the video drawn in a 0x0 box.
This commit is contained in:
Zaggy1024
2026-04-18 04:57:50 -05:00
committed by Gregory Bertilson
parent 29d9667511
commit 9494f4e8c5
Notes: github-actions[bot] 2026-04-22 00:13:29 +00:00
2 changed files with 2 additions and 0 deletions

View File

@@ -53,6 +53,7 @@ enum class ShouldComputeRole {
X(HTMLCanvasElementWidthOrHeightChange) \
X(HTMLImageElementReactToChangesInTheEnvironment) \
X(HTMLImageElementUpdateTheImageData) \
X(HTMLVideoElementResized) \
X(HTMLVideoElementSetVideoTrack) \
X(KeyframeEffect) \
X(LayoutTreeUpdate) \

View File

@@ -1701,6 +1701,7 @@ void HTMLMediaElement::on_metadata_parsed()
if (m_selected_video_track && video_element) {
video_element->set_video_height(m_selected_video_track->track_in_playback_manager().video_data().pixel_height);
video_element->set_video_width(m_selected_video_track->track_in_playback_manager().video_data().pixel_width);
video_element->set_needs_layout_update(DOM::SetNeedsLayoutReason::HTMLVideoElementResized);
queue_a_media_element_task([this] {
dispatch_event(DOM::Event::create(this->realm(), HTML::EventNames::resize));