servo/components
Martin Robinson cbc363bedd
compositor: Tick animations for an entire WebView at once (#36662)
Previously, when processing animations, the compositor would sent a tick
message to each pipeline. This is an issue because now the
`ScriptThread` always processes rendering updates for all `Document`s in
order to ensure properly ordering. This change makes it so that tick
messages are sent for an entire WebView. This means that each
`ScriptThread` will always receive a single tick for every time that
animations are processed, no matter how many frames are animating. This
is the first step toward a refresh driver.

In addition, we discard the idea of ticking animation only for
animations and or only for request animation frame callbacks. The
`ScriptThread` can no longer make this distinction due to the
specification and the compositor shouldn't either.

This should not really change observable behavior, but should make Servo
more efficient when more than a single frame in a `ScriptThread` is
animting at once.

Testing: This is covered by existing WPT tests as it mainly just improve
animation efficiency in a particular case.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-04-24 19:03:14 +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 compositor: Tick animations for an entire WebView at once (#36662) 2025-04-24 19:03:14 +00:00
config Remove unused pref: dom_forcetouch_enabled (#36524) 2025-04-15 02:18:11 +00:00
constellation compositor: Tick animations for an entire WebView at once (#36662) 2025-04-24 19:03:14 +00:00
deny_public_fields Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
devtools DevTools: Move Source related code to dedicated source.rs file (#36667) 2025-04-24 07:50: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 script: Measure stored layout data memory usage. (#36664) 2025-04-24 12:01:51 +00:00
malloc_size_of script: Measure stored layout data memory usage. (#36664) 2025-04-24 12:01:51 +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 compositor: Tick animations for an entire WebView at once (#36662) 2025-04-24 19:03:14 +00:00
script_bindings Implement CSSStyleSheet::replaceSync (#36586) 2025-04-23 15:29:01 +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 compositor: Tick animations for an entire WebView at once (#36662) 2025-04-24 19:03:14 +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