From 3b037726e97a74fc58657f95b8a63336d4a2780b Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Fri, 18 Mar 2022 19:45:42 +0100 Subject: [PATCH] LibWeb: Invalidate layout after setting Element.innerHTML It's not enough to only relayout here, since the API can substantially change the DOM. We have to rebuild the layout tree. --- Userland/Libraries/LibWeb/DOM/Element.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibWeb/DOM/Element.cpp b/Userland/Libraries/LibWeb/DOM/Element.cpp index acfd9b07a5..b0c2f6d996 100644 --- a/Userland/Libraries/LibWeb/DOM/Element.cpp +++ b/Userland/Libraries/LibWeb/DOM/Element.cpp @@ -389,7 +389,9 @@ ExceptionOr Element::set_inner_html(String const& markup) return result.exception(); set_needs_style_update(true); - document().set_needs_layout(); + + // NOTE: Since the DOM has changed, we have to rebuild the layout tree. + document().invalidate_layout(); return {}; }