servo/components/layout_2020/flow/inline
Martin Robinson 2ee8427665
layout: Store Fragment results in LayoutBoxBase and start using them for queries (#36583)
Start storing a link to laid-out `Fragment`s in `LayoutBoxBase`, so that
these are accessible for queries and eventually for incremental layout.
Some box tree data structures lacked a `LayoutBoxBase`, such as table
tracks and table track groups[^1].

In addition, start using these `Fragment`s for queries instead of
walking the entire `Fragment` tree. Currently, this isn't possible for
most queries as `Fragment`s do not cache their absolute offsets (which
are often necessary). This change uses the new box tree `Fragment`s for
most resolved style queries.

[^1]: Note that only rows and row groups store `Fragment`s as columsn
and
   colgroups do not produce any.

Testing: This is covered by existing tests.
Fixes: This is part of #36525.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
2025-04-18 09:40:29 +00:00
..
construct.rs layout: Add a LayoutBoxBase to inline boxes (#36513) 2025-04-14 16:02:37 +00:00
inline_box.rs layout: Store Fragment results in LayoutBoxBase and start using them for queries (#36583) 2025-04-18 09:40:29 +00:00
line.rs layout: Store Fragment results in LayoutBoxBase and start using them for queries (#36583) 2025-04-18 09:40:29 +00:00
line_breaker.rs layout: Linebreak the entire InlineFormattingContext at once (#32483) 2024-06-13 20:12:14 +00:00
mod.rs layout: Store Fragment results in LayoutBoxBase and start using them for queries (#36583) 2025-04-18 09:40:29 +00:00
text_run.rs fix: Crashing due to input element hack (#36461) 2025-04-11 06:51:52 +00:00