the Chromium logo

The Chromium Projects

August 2021 (Vol.2) - New features, Code health, Stability/security fixes

August 2021 (Vol. 2) Chrome Interactions Highlights Archives: go/interactions-team-highlights
Chapter I: New features
<td><td>For now we just scroll to the element, later we will add more
features like highlight the element, etc.</td></td>

<td><td>We use the <a
syntax</a> and find the element with the help of QuerySelector().</td></td>

Composite BG-color animation xidachen@ resolved a few problems and this feature is now close to finch on Beta. Specifically we have enabled field trial testing (CL) so all perf bots can run tests with this feature. All regressions and improvements are summarized here. We have resolved the memory increase (CL). Here is an example where a perf test used to crash due to OOM now works fine. image There is a performance regression ( that has been addressed as well. It was fixed by this CL where we found that we were doing a lot of un-necessary work which slows it down. Note that the above curve has improved, but didn’t go back to the original level. With further investigation, we found that the root cause is because the tests aren’t well written. Specifically, the tests contains background-color animation on a solid-color layer, and our system has optimizations towards solid-color layer which is not implemented in CompositeBGColorAnimation yet. image A pinpoint job was started where the layer made to be not long solid-color and the above shows the result. The right column is with CompositeBGColorAnimation and we can see that it actually made a performance improvement. image mehdika@ modified Element Fragment code (that already exists) to work for any other element. Elastic overscroll flackr@ fixed two problems in elastic overscroll. image The first problem is the subtle shift in content during overscroll bounce. The fix is to use ScrollTree::container_bounds which includes container_bounds_delta. image image Another fix is to reduce elastic overscroll stretch. Particularly, we have updated parameters in ElasticOverscrollControllerExponential to more closely match native overscroll.
Chapter II: Code health Native paint worklet image xidachen@ moved some common variables && APIs among different native paint definitions to their super class, which results in a negative line count CL.
Chapter III: Stability/security fixes Elastic overscroll crash flackr@ fixed a crash in blink::ElasticOverscrollController::ObserveGestureEventAndResult. image image The above shows the stack trace, which indicates that ObserveGestureEventAndResult is called on nullptr ElasticOverscrollController. image image It looks like we have added check, as shown in the above. But why didn’t it crash before? It appears that the crash is from the posted task. image Further investigation shows that the ElasticOverscroll is now controlled dynamically by prefers-reduced-motion, so the fix is to check that too.
Chapter IV: Interop fixes image skobes@ fixed a bug where scrollTo doesn’t abort mouse wheel scroll animation. The solution is to cancel impl-side scroll animation when we get a programmatic scroll. This also fixed a bug in scroll unification.
Chrome Interactions Highlights | August 2021 (Vol. 2) go/interactions-team