servo/components/layout/flow
Martin Robinson 6dafeb7a59
layout: Add a first pass at incremental box tree construction (#37751)
This change:

- Adds a new type of LayoutDamage that signifies that a box needs its
  children recollected, because one or more of them need to be rebuilt.
- During restyle damage propagation, propagate this new damage upward in
  the tree. Then box tree construction should be able to preserve any
  still-valid box tree nodes from box slots.
- During BlockLevelBox job finalization, if a box slot is valid and
  there is not LayoutDamage to the element, use the old box slot,
  ensuring that its fragment cache is invalidated.

Testing: This should not change observable behavior and thus is covered
by existing WPT tests.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
Co-authored-by: coding-joedow <ibluegalaxy_taoj@163.com>
2025-07-03 08:13:20 +00:00
..
inline Rename script_layout_interface to layout_api (#37591) 2025-06-20 17:13:05 +00:00
construct.rs layout: Add a first pass at incremental box tree construction (#37751) 2025-07-03 08:13:20 +00:00
float.rs layout: Move text decoration propagation to stacking context tree construction (#37069) 2025-05-21 16:38:29 +00:00
mod.rs layout: Fix block SizeConstraint for replaced elements (#37758) 2025-06-30 12:07:37 +00:00
root.rs layout: Add a first pass at incremental box tree construction (#37751) 2025-07-03 08:13:20 +00:00