Animation: update image active frame when update the rendering (#36286)

When no CSS animation exist, register timer for image animation, update
animated image active image frame as part of update_the_rendering, mark
node as dirty if the corresponding image need update. Added unit test to
test ImageAnimationState.

Part of https://github.com/servo/servo/issues/36057, the last step to
let the Animated Image "Move".

Testing: Introduced new WPT RefTest for animated image, but fail because
of https://github.com/servo/servo/issues/36931. New unit test for
`ImageAnimationState`.
Fixes: https://github.com/servo/servo/issues/22903
https://github.com/servo/servo/issues/36057

[Try](https://github.com/rayguo17/servo/actions/runs/14724729664)

---------

Signed-off-by: rayguo17 <rayguo17@gmail.com>
This commit is contained in:
TIN TUN AUNG 2025-05-23 11:13:35 +08:00 committed by GitHub
parent 2353c0089f
commit 23ce7b31ac
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 313 additions and 8 deletions

View file

@ -1289,6 +1289,10 @@ impl ScriptThread {
// TODO: Mark paint timing from https://w3c.github.io/paint-timing.
// Update the rendering of those does not require a reflow.
// e.g. animated images.
document.update_animating_images();
#[cfg(feature = "webgpu")]
document.update_rendering_of_webgpu_canvases();