LibWeb: Add debug logging of reasons for layout tree update
Some checks are pending
CI / Lagom (arm64, Sanitizer_CI, false, macos-15, macOS, Clang) (push) Waiting to run
CI / Lagom (x86_64, Fuzzers_CI, false, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, false, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, true, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (arm64, macos-15, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (x86_64, ubuntu-24.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run

This commit is contained in:
Andreas Kling 2025-04-19 10:49:33 +02:00 committed by Andreas Kling
commit 545ed08519
Notes: github-actions[bot] 2025-04-20 22:32:03 +00:00
9 changed files with 68 additions and 19 deletions

View file

@ -446,7 +446,7 @@ void TreeBuilder::update_layout_tree(DOM::Node& dom_node, TreeBuilder::Context&
// go through the DOM tree and remove any old layout & paint nodes since they are now all stale.
if (!layout_node) {
dom_node.for_each_in_inclusive_subtree([&](auto& node) {
node.set_needs_layout_tree_update(false);
node.set_needs_layout_tree_update(false, DOM::SetNeedsLayoutTreeUpdateReason::None);
node.set_child_needs_layout_tree_update(false);
auto layout_node = node.layout_node();
if (layout_node && layout_node->parent()) {
@ -555,7 +555,7 @@ void TreeBuilder::update_layout_tree(DOM::Node& dom_node, TreeBuilder::Context&
update_layout_tree(*node, context, should_create_layout_node ? MustCreateSubtree::Yes : MustCreateSubtree::No);
}
shadow_root->set_child_needs_layout_tree_update(false);
shadow_root->set_needs_layout_tree_update(false);
shadow_root->set_needs_layout_tree_update(false, DOM::SetNeedsLayoutTreeUpdateReason::None);
} else {
// This is the same as as<DOM::ParentNode>(dom_node).for_each_child
for (auto* node = as<DOM::ParentNode>(dom_node).first_child(); node; node = node->next_sibling())
@ -637,7 +637,7 @@ void TreeBuilder::update_layout_tree(DOM::Node& dom_node, TreeBuilder::Context&
m_quote_nesting_level = prior_quote_nesting_level;
}
dom_node.set_needs_layout_tree_update(false);
dom_node.set_needs_layout_tree_update(false, DOM::SetNeedsLayoutTreeUpdateReason::None);
dom_node.set_child_needs_layout_tree_update(false);
}