From 52e9dcd911904b12b4eff3c54f08d1a41cfbd79f Mon Sep 17 00:00:00 2001 From: Aliaksandr Kalenik Date: Tue, 15 Jul 2025 16:49:37 -0400 Subject: [PATCH] LibWeb: Assign new `m_viewport_size` before resizing backing store Fixes bug when `resize_backing_stores_if_needed()` picks up previous viewport size for allocation of new backing stores. Fixes https://github.com/LadybirdBrowser/ladybird/issues/5336 --- Libraries/LibWeb/HTML/Navigable.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Libraries/LibWeb/HTML/Navigable.cpp b/Libraries/LibWeb/HTML/Navigable.cpp index c864b7ccb12..838a602c651 100644 --- a/Libraries/LibWeb/HTML/Navigable.cpp +++ b/Libraries/LibWeb/HTML/Navigable.cpp @@ -2358,13 +2358,14 @@ void Navigable::set_viewport_size(CSSPixelSize size) if (m_viewport_size == size) return; + m_viewport_size = size; + if (!m_is_svg_page) { m_backing_store_manager->restart_resize_timer(); m_backing_store_manager->resize_backing_stores_if_needed(Web::Painting::BackingStoreManager::WindowResizingInProgress::Yes); m_pending_set_browser_zoom_request = false; } - m_viewport_size = size; if (auto document = active_document()) { // NOTE: Resizing the viewport changes the reference value for viewport-relative CSS lengths. document->invalidate_style(DOM::StyleInvalidationReason::NavigableSetViewportSize);