servo/components
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
..
allocator Organize component Cargo.toml dependencies (#36224) 2025-03-30 19:03:54 +00:00
background_hang_monitor Organize component Cargo.toml dependencies (#36224) 2025-03-30 19:03:54 +00:00
bluetooth Replace bluetooth Readme with corrected version from devices repository (#36429) 2025-04-10 18:02:45 +00:00
canvas Introduce snapshot concept of canvas (#36119) 2025-04-23 07:32:47 +00:00
compositing Reduce indexing boilerplate for serializable/transferrable objects. (#36624) 2025-04-22 02:02:02 +00:00
config Remove unused pref: dom_forcetouch_enabled (#36524) 2025-04-15 02:18:11 +00:00
constellation chore: remove unnecessary webrender_document in script (#36648) 2025-04-22 08:38:29 +00:00
deny_public_fields Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
devtools DevTools: worker_id shoud be id & thread for workers should be thread (#36631) 2025-04-21 15:43:56 +00:00
dom_struct script: Feature-gate all crown support. (#35055) 2025-01-18 21:36:15 +00:00
domobject_derive Update rustfmt to the 2024 style edition (#35764) 2025-03-03 11:26:53 +00:00
fonts layout: Report memory usage for fragment and box trees. (#36553) 2025-04-18 20:05:15 +00:00
geometry servoshell: Allow overriding screen resolution with a command-line argument (#34038) 2024-10-30 11:54:13 +00:00
hyper_serde Update rustfmt to the 2024 style edition (#35764) 2025-03-03 11:26:53 +00:00
jstraceable_derive Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
layout layout: Add a new FragmentTree pass to calculate containing block rectangles (#36629) 2025-04-23 09:14:15 +00:00
malloc_size_of layout: Report memory usage for fragment and box trees. (#36553) 2025-04-18 20:05:15 +00:00
media compositing: Combine webrender_traits and compositing_traits (#36372) 2025-04-06 17:34:18 +00:00
metrics Move ScriptToConstellationMsg to constellation_traits (#36364) 2025-04-05 22:13:29 +00:00
net Prevent multiple notifications for image dimensions (#36600) 2025-04-18 20:01:26 +00:00
pixels Introduce snapshot concept of canvas (#36119) 2025-04-23 07:32:47 +00:00
profile Make the memory reporting multi-process aware (#35863) 2025-04-05 05:42:12 +00:00
rand Migrate to the 2024 edition (#35755) 2025-03-13 10:28:11 +00:00
range Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
script layout: Add a new FragmentTree pass to calculate containing block rectangles (#36629) 2025-04-23 09:14:15 +00:00
script_bindings Implement trusted types url setter (#36596) 2025-04-21 06:56:40 +00:00
servo [tracing] Add convenience macro for function tracing (#36573) 2025-04-22 19:58:20 +00:00
servo_tracing [tracing] Add convenience macro for function tracing (#36573) 2025-04-22 19:58:20 +00:00
shared layout: Add a new FragmentTree pass to calculate containing block rectangles (#36629) 2025-04-23 09:14:15 +00:00
timers Update rustfmt to the 2024 style edition (#35764) 2025-03-03 11:26:53 +00:00
url Check all ancestor navigable trustworthiness for mixed content (#36157) 2025-04-05 05:38:24 +00:00
webdriver_server Implement GetComputedRole in wd (#36552) 2025-04-16 03:55:15 +00:00
webgpu Introduce snapshot concept of canvas (#36119) 2025-04-23 07:32:47 +00:00
webxr libservo: Expose a ServoBuilder (#36549) 2025-04-16 16:58:52 +00:00