From f5052e5017e9aa6b37c5e0ece82dc782c52c4b2f Mon Sep 17 00:00:00 2001 From: MacDue Date: Fri, 23 Sep 2022 23:15:28 +0100 Subject: [PATCH] LibWeb: Don't trigger page_did_layout() on non-active documents PageHost assumes page_did_layout() to be called when the layout of the active document changes, however, it seems that sometimes the layout can change on another document before the layout of the active document has been calculated. This leads to a VERIFY() being hit. This commit now makes it so page_did_layout() is only called when the document is the active document. Fixes #15328 --- Userland/Libraries/LibWeb/DOM/Document.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Userland/Libraries/LibWeb/DOM/Document.cpp b/Userland/Libraries/LibWeb/DOM/Document.cpp index 121056bddb..6c383f7959 100644 --- a/Userland/Libraries/LibWeb/DOM/Document.cpp +++ b/Userland/Libraries/LibWeb/DOM/Document.cpp @@ -816,7 +816,7 @@ void Document::update_layout() browsing_context()->set_needs_display(); - if (browsing_context()->is_top_level()) { + if (browsing_context()->is_top_level() && browsing_context()->active_document() == this) { if (auto* page = this->page()) page->client().page_did_layout(); }