LibWeb: Move containment checks to Layout::Node
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

It fits better there and avoids having to reach into the Element
all the time.
This commit is contained in:
Psychpsyo 2025-05-09 21:34:47 +02:00 committed by Alexander Kalenik
commit a0be82b2cb
Notes: github-actions[bot] 2025-05-13 12:32:25 +00:00
10 changed files with 145 additions and 169 deletions

View file

@ -97,11 +97,8 @@ bool FormattingContext::creates_block_formatting_context(Box const& box)
// https://drafts.csswg.org/css-contain-2/#containment-types
// 1. The layout containment box establishes an independent formatting context.
// 4. The paint containment box establishes an independent formatting context.
if (box.dom_node() && box.dom_node()->is_element()) {
auto element = as<DOM::Element>(box.dom_node());
if (element->has_layout_containment() || element->has_paint_containment())
return true;
}
if (box.has_layout_containment() || box.has_paint_containment())
return true;
if (box.parent()) {
auto parent_display = box.parent()->display();