the Chromium logo

The Chromium Projects

March 2019

MARCH 2019 Chrome Animations Highlights
image Degenerate case in computing sign of quaternions. image Step 1: Fix quaternion calculations. Avoid degenerate edge cases. image Step 2: Support 2D matrix decomposition.
Improved 3D and 2D transform animations We have continued to address 2D and 3D matrix decomposition issues that were causing transform animation and interop bugs. Above is one example but 16 more wpt tests are now passing in Chrome. The fact that there are two implementations (in Blink and Skia) of the same matrix operations is not helpful and we are considering options to consolidate them. This work help identify inconsistencies and inaccuracies in the css-transform specification for which issues have been filed: 1, 2, 3, 4, 5.
image Existing implementation using scroll events. image New “Buttery Smooth” impl using Animation Worklet and Scroll Timeline.
AMP Origin Trial Updates AMP animation team has a near complete re-implementation of their scrollbound effect system using Scroll Timeline and Animation Worklet. They have identified gaps in the API which we collaborated on an action plan to address (mainly by proposing changes to Scroll Timeline API). It was also decided to extend the origin trial to allow AMP's new implementation to be gradually turned on for real users - which also helps us learn more about the performance of these features at scale. Here is a recording of the demo. (To run locally enable experimental web platform feature flag and enable relevant AMP experiment using \`AMP.toggleExperiment('chrome-animation-worklet')\` in devtools console)
image Viz Hit-Testing Surface Layer Finch trial is showing improvement over previous Draw Quad version. We are seeing 14%/8%/5% improvements in hit test requests answered in the fast path on Windows/MacOS/Android, with 8% regressions on Linux (under investigation). Across all platforms, hit testing error rates are lower than 0.05%. image Compositor Touch Action Finch trial is showing promising early results. ScrollBegin latency improves 5% @50pct and 13% @99pct. ScrollUpdate latency improves 1% @50pct and 3% @99pct.
Off-Main Paint Worklet We made good progress by completing implementation of multiple sub-components: rasterization, raster-caching logic and lookup. Work is in progress for dispatch logic, and a new approach to share data between blink and cc for paint info (1, 2, 3, 4). Animation Worklet Animation Worklet is now fully asynchronous in CC with proper scheduling in place. With help from Microsoft engineers our tests have been upstreamed to web-platform-tests and most critical flakiness issues are resolved. Specification has been updated (1, 2, 3) and TAG review requested. Aiming to ship without Scroll Timeline in M75.
Chrome Animations Updates | March 2019 go/animations-team