Web-Facing Change PSA: View Transition finished promise timing change

38 views
Skip to first unread message

Chromestatus

unread,
Jul 16, 2025, 1:40:06 PMJul 16
to blin...@chromium.org, vmp...@google.com

Contact emails

vmp...@google.com

Specification

None

Summary

The current finished promise timing happens within the rendering lifecycle steps. This means that code that runs as a result of promise resolution happens after the visual frame that removes the view transition has been produced. This can cause a flicker at the end of the animation if script moves some styles around in an attempt to preserve visually similar state (e.g. https://vmpstr.github.io/htmldemos/vt/flicker.html) This change rectifies the situation by moving the ViewTransition clean up steps to run asynchronously after the lifecycle is completed. This ensures that visual frame produced at finished promise resolution still maintains the View Transition structure, allowing developers to avoid the flicker. More info: https://github.com/w3c/csswg-drafts/issues/12442



Blink component

Blink>ViewTransitions>SPA

TAG review

None

TAG review status

Not applicable

Risks



Interoperability and Compatibility

None



Gecko: Positive (https://github.com/w3c/csswg-drafts/issues/12442#issuecomment-3032570807) Not an official signal, but agreement to the change

WebKit: Positive (https://github.com/w3c/csswg-drafts/issues/12442#issuecomment-3032949060) Not an official signal, but agreement to the change

Web developers: No signals

Other signals:

WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?

None



Debuggability

None



Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?

No

Is this feature fully tested by web-platform-tests?

No

Test is being added in the implementation.



Flag name on about://flags

None

Finch feature name

ViewTransitionAsyncFinished

Rollout plan

Will ship enabled for all users

Requires code in //chrome?

False

Tracking bug

https://issues.chromium.org/430018991

Estimated milestones

Shipping on desktop 140
Shipping on Android 140
Shipping on WebView 140


Anticipated spec changes

Open questions about a feature may be a source of future web compat or interop issues. Please list open issues (e.g. links to known github issues in the project for the feature specification) whose resolution may introduce web compat/interop risk (e.g., changing to naming or structure of the API in a non-backward-compatible way).

None

Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5143135809961984?gate=5161353047965696

This intent message was generated by Chrome Platform Status.
Reply all
Reply to author
Forward
0 new messages