Parcourir la source

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
MacDue il y a 2 ans
Parent
commit
f5052e5017
1 fichiers modifiés avec 1 ajouts et 1 suppressions
  1. 1 1
      Userland/Libraries/LibWeb/DOM/Document.cpp

+ 1 - 1
Userland/Libraries/LibWeb/DOM/Document.cpp

@@ -816,7 +816,7 @@ void Document::update_layout()
 
 
     browsing_context()->set_needs_display();
     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())
         if (auto* page = this->page())
             page->client().page_did_layout();
             page->client().page_did_layout();
     }
     }