servo/components/shared
Martin Robinson e9e103b46c
layout: Add a new FragmentTree pass to calculate containing block rectangles (#36629)
When doing any kind of query, up until now, containing block rectangles
were calculated by walking the `FragmentTree` until the node being
queried was found. In order to make possible answering queries without
walking the `FragmentTree`, `Fragment`s need to cache their cumulative
containing block rectangles.

This change adds a new `FragmentTree` pass (during construction) that
takes care of calculating and caching these values. The new cached value
is used during resolved style queries and also scrolling area queries
(with the idea that all queries will eventually use them).

In addition, extra `FragmentTree` walks used for cancelling animations
for elements no longer in the `FragmentTree` are integrated into this
new traversal.

Testing: Covered by existing WPT tests.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
2025-04-23 09:14:15 +00:00
..
background_hang_monitor script: add skeleton implementation of FontFace API (#35262) 2025-02-19 05:50:01 +00:00
base Reduce indexing boilerplate for serializable/transferrable objects. (#36624) 2025-04-22 02:02:02 +00:00
bluetooth Include WebViewId into EmbedderMsg variants where possible (#35211) 2025-01-30 11:15:35 +00:00
canvas Introduce snapshot concept of canvas (#36119) 2025-04-23 07:32:47 +00:00
compositing Introduce snapshot concept of canvas (#36119) 2025-04-23 07:32:47 +00:00
constellation constellation: Re-split structured data types into separate files (#36615) 2025-04-21 03:41:55 +00:00
devtools Devtools: initial Debugger > Sources panel (#36164) 2025-04-08 09:22:53 +00:00
embedder Rework ScriptThread::handle_input_event for behaviour and performance (#36619) 2025-04-21 03:34:39 +00:00
fonts Update rustfmt to the 2024 style edition (#35764) 2025-03-03 11:26:53 +00:00
net Refactor common infrastructure for creating memory reports. (#36579) 2025-04-18 02:14:49 +00:00
profile Refactor common infrastructure for creating memory reports. (#36579) 2025-04-18 02:14:49 +00:00
script chore: remove unnecessary webrender_document in script (#36648) 2025-04-22 08:38:29 +00:00
script_layout layout: Add a new FragmentTree pass to calculate containing block rectangles (#36629) 2025-04-23 09:14:15 +00:00
snapshot Introduce snapshot concept of canvas (#36119) 2025-04-23 07:32:47 +00:00
webgpu Introduce snapshot concept of canvas (#36119) 2025-04-23 07:32:47 +00:00
webxr libservo: Move EventLooperWaker from webxr_traits to embedder_traits (#36420) 2025-04-09 14:19:33 +00:00