From 185a40ca20523d3ea13a8478359628820e0fddc8 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 24 Mar 2025 23:07:53 +0000 Subject: [PATCH] LibWeb: Don't drop entire layout tree on object element update It's sufficient to just rebuild the layout subtree rooted at the object element itself. --- Libraries/LibWeb/DOM/Document.h | 1 - Libraries/LibWeb/HTML/HTMLObjectElement.cpp | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Libraries/LibWeb/DOM/Document.h b/Libraries/LibWeb/DOM/Document.h index 08dbcf14d61..935c9bec40f 100644 --- a/Libraries/LibWeb/DOM/Document.h +++ b/Libraries/LibWeb/DOM/Document.h @@ -53,7 +53,6 @@ enum class QuirksMode { #define ENUMERATE_INVALIDATE_LAYOUT_TREE_REASONS(X) \ X(DocumentAddAnElementToTheTopLayer) \ X(DocumentRequestAnElementToBeRemovedFromTheTopLayer) \ - X(HTMLObjectElement) \ X(ShadowRootSetInnerHTML) enum class InvalidateLayoutTreeReason { diff --git a/Libraries/LibWeb/HTML/HTMLObjectElement.cpp b/Libraries/LibWeb/HTML/HTMLObjectElement.cpp index 86c257cdfe6..ad99a4cac32 100644 --- a/Libraries/LibWeb/HTML/HTMLObjectElement.cpp +++ b/Libraries/LibWeb/HTML/HTMLObjectElement.cpp @@ -561,7 +561,7 @@ void HTMLObjectElement::update_layout_and_child_objects(Representation represent m_representation = representation; invalidate_style(DOM::StyleInvalidationReason::HTMLObjectElementUpdateLayoutAndChildObjects); - document().invalidate_layout_tree(DOM::InvalidateLayoutTreeReason::HTMLObjectElement); + set_needs_layout_tree_update(true); } // https://html.spec.whatwg.org/multipage/interaction.html#dom-tabindex