commit | 264c27d18a4d9736b14d6f9699b2d5507c19070f | [log] [tgz] |
---|---|---|
author | David Awogbemila <awogbemila@chromium.org> | Wed Jun 04 13:18:50 2025 |
committer | Chromium LUCI CQ <chromium-scoped@luci-project-accounts.iam.gserviceaccount.com> | Wed Jun 04 13:18:50 2025 |
tree | da56c50308cd82d16b670cf9676533463d7fcd0b | |
parent | e92a84bc051417c5dd51c78fbb7e37decd777087 [diff] |
[animation-trigger] Implement basic AnimationTrigger functionality The discussion about how AnimationTrigger should work is ongoing. This comment[1] captures the main points about how triggers should work. The hope is to have a simple implementation which we can help guide what the edge cases are, which ones we care about, and what to do about the ones we care about. A few points about the behavior worth highlighting are: 1. We automatically call addAnimation for CSS animations. 2. When animation-play-state is "paused" and isn't being ignored, the trigger should not play the animation. 3. Trigger-related state tracking is done only in the AnimationTrigger. However, we keep Animation::AnimationTriggerData::css_play_state just so the trigger can know not to play animations for which `animation-play-state` is paused. A few notes about some other changes made in this patch. 1. inspector-protocol/tracing/animation-expected.txt is adjusted to expect "paused" instead of running because when we call addAnimation on the CSS animation, we'll pause it and Pause will be the first function to supply data to the inspector_animation_agent via NotifyProbe. 2. ElementAnimations::SetCompositedClipPathStatus is modified in a way that reflects the intention that kNotComposited and kNoAnimation clear clip_path_paint_worklet_candidate_, even if either of those was already recorded as the composited_clip_path_status_. The test case in clip_path_paint_definition_test.cc revealed (by unconditionally calling pause when the trigger is enabled) that ElementAnimations::RecalcCompositedStatus might set clip_path_paint_worklet_candidate_ and try to set the status to kNotComposited and kNoAnimation, but, because there is no change in the status, fail to clear clip_path_paint_worklet_candidate_. [1] https://github.com/w3c/csswg-drafts/issues/12119#issuecomment-2911260299 Bug: 390314945 Change-Id: I5bd41e2edbf874ce8e2f5662709f31143be8f1c5 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6605724 Reviewed-by: Kevin Ellis <kevers@chromium.org> Commit-Queue: David Awogbemila <awogbemila@chromium.org> Cr-Commit-Position: refs/heads/main@{#1469239}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
To check out the source code locally, don't use git clone
! Instead, follow the instructions on how to get the code.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure.
For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.
If you found a bug, please file it at https://crbug.com/new.