servo/components/shared/layout
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
..
Cargo.toml script|layout: Do not force restyle when doing script queries (#37677) 2025-06-26 08:02:15 +00:00
layout_damage.rs layout: Add a first pass at incremental box tree construction (#37751) 2025-07-03 08:13:20 +00:00
lib.rs script: Clean up Window::force_reflow a little (#37725) 2025-06-27 12:27:15 +00:00
wrapper_traits.rs Rename script_layout_interface to layout_api (#37591) 2025-06-20 17:13:05 +00:00