render: honor modern containing-block triggers

Track transform, filter, backdrop-filter, perspective, containment,
will-change, and content-visibility triggers independently. Use the combined
state for absolute and fixed containing-block ancestry.
This commit is contained in:
SGavrl committed 2026-07-23 12:02:55 +00:00
1 parent b44e59ef71
commit 7827a6a788
4 files changed
+124 -8

No files matched your search

+3 -2
View File
@@ -1190,12 +1190,13 @@ fn reparent_inset_positioned_nodes(
// boxes capture absolute descendants; only transformed boxes capture
// fixed descendants. The full walk stays O(n).
let own_box = reverse.get(&dom_id).copied();
let abs_child_cb = if style.position.is_some() || style.transform_establishes_containing_block {
let establishes_cb = style.establishes_positioning_containing_block();
let abs_child_cb = if style.position.is_some() || establishes_cb {
own_box.unwrap_or(inherited_abs_cb)
} else {
inherited_abs_cb
};
let fixed_child_cb = if style.transform_establishes_containing_block {
let fixed_child_cb = if establishes_cb {
own_box.unwrap_or(inherited_fixed_cb)
} else {
inherited_fixed_cb