layout: Only create a LayoutContext if restyling (#37726)

The creation of `LayoutContext` does more work than necessary if layout
just needs to do something like make a display list and not restyle and
relayout. This change makes it so that these kind of non-restyle layouts
do not need to create a display list. In addition, the creation of
`LayoutContext` is better encapsulate

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

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
This commit is contained in:
Martin Robinson 2025-06-27 17:01:30 +02:00 committed by GitHub
parent 5e44582277
commit 9232b0f550
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 208 additions and 196 deletions

View file

@ -111,10 +111,10 @@ impl IndependentFormattingContext {
},
DisplayInside::Table => {
let table_grid_style = context
.shared_context()
.style_context
.stylist
.style_for_anonymous::<ServoLayoutElement>(
&context.shared_context().guards,
&context.style_context.guards,
&PseudoElement::ServoTableGrid,
&node_and_style_info.style,
);