[animation-trigger] Implement play behavior for compositor triggers [chromium/src : main]

0 views
Skip to first unread message

David A (Gerrit)

unread,
Apr 30, 2026, 9:12:45 AM (4 days ago) Apr 30
to Giovanni Ortuno Urquidi, Kevin Ellis, Code Review Nudger, Robert Flack, Xida Chen, Jerome Jiang, Mirko Bonadei, android-bu...@system.gserviceaccount.com, AI Code Reviewer, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, Olga Gerchikov, Ian Vollick, fgal...@chromium.org, net-r...@chromium.org, mar...@chromium.org, cblume...@chromium.org, chrome-intell...@chromium.org, chrome-intelligence-te...@google.com, jz...@chromium.org, feature-me...@chromium.org, penghuan...@chromium.org, devtools...@chromium.org, blink-revie...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, cc-...@chromium.org, jbauma...@chromium.org, kinuko...@chromium.org
Attention needed from Kevin Ellis and Robert Flack

David A added 1 comment

File third_party/blink/renderer/core/animation/animation.cc
Line 2629, Patchset 33: time_offset = ComputeCompositorTimeOffset(start_reason);
David A . resolved

Per our offline discussion, we will likely deprecate `time_offset`. However, I figured this patch, now no longer implementing keyframe model reversal, is still worth landing as it has little to no interaction with `time_offset`. Still it's probably worth explaining:

There are two ways a blink animation will be prompted to create a cc Animation: 1. "automatically", to fulfill a `play()` request & 2. preemptively, due to an attached trigger request.

1 & 2 diverge here if you don't have a start time. For 1., we'll use `time_offset` as before.
For 2. we'll capture the "current time" using the `KeyframeModel::pause_time_` as `Animation::StartTriggeredAnimationOnCompositorThread` will always call `cc::Animation::PauseKeyframeModels`

Note that `start_delay` will still be accounted for in [CompositorAnimation::ConvertTimingForCompositor](https://source.chromium.org/chromium/chromium/src/+/88605c70f0257bdde3b373926350940dac6282d8:third_party/blink/renderer/core/animation/compositor_animations.cc;l=757-782)

David A

Acknowledged

Open in Gerrit

Related details

Attention is currently required from:
  • Kevin Ellis
  • Robert Flack
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: Ie61a69b87c25063e6f840dcbc25ab68751f00145
Gerrit-Change-Number: 7595936
Gerrit-PatchSet: 43
Gerrit-Owner: David A <awogb...@chromium.org>
Gerrit-Reviewer: David A <awogb...@chromium.org>
Gerrit-Reviewer: Kevin Ellis <kev...@chromium.org>
Gerrit-Reviewer: Robert Flack <fla...@chromium.org>
Gerrit-CC: AI Code Reviewer <peep-gen...@system.gserviceaccount.com>
Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
Gerrit-CC: Giovanni Ortuno Urquidi <ort...@chromium.org>
Gerrit-CC: Ian Vollick <vol...@chromium.org>
Gerrit-CC: Jerome Jiang <ji...@chromium.org>
Gerrit-CC: Menard, Alexis <alexis...@intel.com>
Gerrit-CC: Mirko Bonadei <mbon...@chromium.org>
Gerrit-CC: Olga Gerchikov <gerc...@microsoft.com>
Gerrit-CC: Xida Chen <xida...@chromium.org>
Gerrit-Attention: Kevin Ellis <kev...@chromium.org>
Gerrit-Attention: Robert Flack <fla...@chromium.org>
Gerrit-Comment-Date: Thu, 30 Apr 2026 13:12:34 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: David A <awogb...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Robert Flack (Gerrit)

unread,
Apr 30, 2026, 11:18:24 AM (4 days ago) Apr 30
to David A, Giovanni Ortuno Urquidi, Kevin Ellis, Code Review Nudger, Xida Chen, Jerome Jiang, Mirko Bonadei, android-bu...@system.gserviceaccount.com, AI Code Reviewer, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, Olga Gerchikov, Ian Vollick, fgal...@chromium.org, net-r...@chromium.org, mar...@chromium.org, cblume...@chromium.org, chrome-intell...@chromium.org, chrome-intelligence-te...@google.com, jz...@chromium.org, feature-me...@chromium.org, penghuan...@chromium.org, devtools...@chromium.org, blink-revie...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, cc-...@chromium.org, jbauma...@chromium.org, kinuko...@chromium.org
Attention needed from David A and Kevin Ellis

Robert Flack added 2 comments

Patchset-level comments
File-level comment, Patchset 43 (Latest):
Robert Flack . unresolved

Kevin can you do a first pass on this?

File cc/animation/animation.h
Line 157, Patchset 43 (Latest): // should KeyframeModel::set_start_time.
Robert Flack . unresolved

This is linking to a fixed bug. If this is resolved i would expect not to have a todo, if there is further work to be done i'd expect an open bug.

Why should it take an optional? So that we can set an unresolved start time? Is this something that we need to do?

Open in Gerrit

Related details

Attention is currently required from:
  • David A
  • Kevin Ellis
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: Ie61a69b87c25063e6f840dcbc25ab68751f00145
Gerrit-Change-Number: 7595936
Gerrit-PatchSet: 43
Gerrit-Owner: David A <awogb...@chromium.org>
Gerrit-Reviewer: David A <awogb...@chromium.org>
Gerrit-Reviewer: Kevin Ellis <kev...@chromium.org>
Gerrit-CC: AI Code Reviewer <peep-gen...@system.gserviceaccount.com>
Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
Gerrit-CC: Giovanni Ortuno Urquidi <ort...@chromium.org>
Gerrit-CC: Ian Vollick <vol...@chromium.org>
Gerrit-CC: Jerome Jiang <ji...@chromium.org>
Gerrit-CC: Menard, Alexis <alexis...@intel.com>
Gerrit-CC: Mirko Bonadei <mbon...@chromium.org>
Gerrit-CC: Olga Gerchikov <gerc...@microsoft.com>
Gerrit-CC: Robert Flack <fla...@chromium.org>
Gerrit-Attention: David A <awogb...@chromium.org>
Gerrit-Comment-Date: Thu, 30 Apr 2026 15:18:12 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

David A (Gerrit)

unread,
May 1, 2026, 12:36:11 PM (3 days ago) May 1
to Robert Flack, Giovanni Ortuno Urquidi, Kevin Ellis, Code Review Nudger, Xida Chen, Jerome Jiang, Mirko Bonadei, android-bu...@system.gserviceaccount.com, AI Code Reviewer, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, Olga Gerchikov, Ian Vollick, fgal...@chromium.org, net-r...@chromium.org, mar...@chromium.org, cblume...@chromium.org, chrome-intell...@chromium.org, chrome-intelligence-te...@google.com, jz...@chromium.org, feature-me...@chromium.org, penghuan...@chromium.org, devtools...@chromium.org, blink-revie...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, cc-...@chromium.org, jbauma...@chromium.org, kinuko...@chromium.org
Attention needed from Kevin Ellis

David A added 1 comment

File cc/animation/animation.h
Line 157, Patchset 43: // should KeyframeModel::set_start_time.
Robert Flack . resolved

This is linking to a fixed bug. If this is resolved i would expect not to have a todo, if there is further work to be done i'd expect an open bug.

Why should it take an optional? So that we can set an unresolved start time? Is this something that we need to do?

David A

Is this something that we need to do?

hm I don't think so actually. It was just for symmetry with `hold_time`.
I've removed the comment.

Open in Gerrit

Related details

Attention is currently required from:
  • Kevin Ellis
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: Ie61a69b87c25063e6f840dcbc25ab68751f00145
Gerrit-Change-Number: 7595936
Gerrit-PatchSet: 45
Gerrit-Owner: David A <awogb...@chromium.org>
Gerrit-Reviewer: David A <awogb...@chromium.org>
Gerrit-Reviewer: Kevin Ellis <kev...@chromium.org>
Gerrit-CC: AI Code Reviewer <peep-gen...@system.gserviceaccount.com>
Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
Gerrit-CC: Giovanni Ortuno Urquidi <ort...@chromium.org>
Gerrit-CC: Ian Vollick <vol...@chromium.org>
Gerrit-CC: Jerome Jiang <ji...@chromium.org>
Gerrit-CC: Menard, Alexis <alexis...@intel.com>
Gerrit-CC: Mirko Bonadei <mbon...@chromium.org>
Gerrit-CC: Olga Gerchikov <gerc...@microsoft.com>
Gerrit-CC: Robert Flack <fla...@chromium.org>
Gerrit-CC: Xida Chen <xida...@chromium.org>
Gerrit-Attention: Kevin Ellis <kev...@chromium.org>
Gerrit-Comment-Date: Fri, 01 May 2026 16:35:58 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Robert Flack <fla...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Kevin Ellis (Gerrit)

unread,
12:23 PM (3 hours ago) 12:23 PM
to David A, Robert Flack, Giovanni Ortuno Urquidi, Code Review Nudger, Xida Chen, Jerome Jiang, Mirko Bonadei, android-bu...@system.gserviceaccount.com, AI Code Reviewer, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, Olga Gerchikov, Ian Vollick, fgal...@chromium.org, net-r...@chromium.org, mar...@chromium.org, cblume...@chromium.org, chrome-intell...@chromium.org, chrome-intelligence-te...@google.com, jz...@chromium.org, feature-me...@chromium.org, penghuan...@chromium.org, devtools...@chromium.org, blink-revie...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, cc-...@chromium.org, jbauma...@chromium.org, kinuko...@chromium.org
Attention needed from David A

Kevin Ellis added 4 comments

File third_party/blink/renderer/core/animation/animation.cc
Line 1015, Patchset 45 (Latest): base::TimeDelta hold_time = ComputeCompositorHoldTime().value();
Kevin Ellis . unresolved

Feels odd to have to mix used of hold_time_ and hold_time. If the hold time on the compositor can differ from hold_time_ then perhaps we should rename hold_time to cc_hold_time. Can you give an example of how these can get out of sync?

File third_party/blink/renderer/core/animation/animation_trigger.cc
Line 26, Patchset 45 (Latest): V8AnimationPlayState::Enum play_state,
Kevin Ellis . unresolved

This parameter appears to be unused.

File third_party/blink/web_tests/VirtualTestSuites
Line 6146, Patchset 45 (Latest): "--enable-features=CompositorTimelineTrigger"
Kevin Ellis . unresolved

Don't we also need to enable threaded compositing?

File third_party/blink/web_tests/external/wpt/scroll-animations/animation-trigger/animation-trigger-fill-mode-both-ref.html
Line 19, Patchset 45 (Parent): background-color: blue;
Kevin Ellis . unresolved

Why the color change? In tests, red is often used to suggest something has gone wrong.

Open in Gerrit

Related details

Attention is currently required from:
  • David A
Gerrit-Attention: David A <awogb...@chromium.org>
Gerrit-Comment-Date: Mon, 04 May 2026 16:23:07 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy
Reply all
Reply to author
Forward
0 new messages