--- breadcrumbs: - - /teams - Teams - - /teams/animations - Animations Team - - /teams/animations/highlights-archive - Highlights Archive page_name: march-2021---fixit-week-new-features-testing-interop-metrics-and-more title: March 2021 - Fixit week, New features, Testing, Interop, Metrics and more! ---

March 2021 | Chrome Interactions Highlights | Archives: go/interactions-team-highlights

| Chapter I: Updates |
|

News and headlines The above pictures show: Una’s Chrome blog post: “Updates in hardware-accelerated animation capabilities” Tweet on Scroll-To... Bug status update Our team did an awesome work on bug fixing this sprint...and during perf too! This is likely due to our fixit week effort which is proudly introduced in the next chapter...

Chapter II: Fixit Week!

Overall stats Our team had a fixit week during Mar 1~5, and the team made tremendous progress! Bugs we closed: 40 including: P1s fixed: 4 P2s fixed: 11 P3s fixed: 7 Others (WAIs, dups): 18 Bugs re-triaged: 19 including: Fixed: 2 Closed: 6 Assigned to another team: 1

De-flake scroll snap tests kevers@ focused on deflaking scroll snap tests during fix it week. Here are some common causes of flakes: Files containing too many subtests triggering timeouts. We cannot always accelerate the scroll timing. The tests have a 6s budget and can take 3x longer than expected when machines are under load. Incorrectly detecting the end of an animation. Waits on a gesture or key event resolve when queued and not when handled. This can result on the scroll end being detected before it has even started! To address, we now wait for scroll events. Outcome: Landed 7 CLs Removed 14 lines from test expectations. Fixed 10 test files Closed 8 bugs Fix pointer events flaky tests liviutinta@’s focused on pointer events tests marked in TestExpectations file: Using sendkeys instead of keyDown, keyUp Landed 1 CL that fixed 4 tests. Marked in TestExpectations: For crbug.com/893480 the remaining 8 tests in Test Expectations need implementation keyUp/keyDown as it allows for multiple keys pressed at once For crbug.com/1140611 there’s “Element click intercepted error” thrown from test driver (2 tests) Few web tests flaky because pointermove coalescing was not taken into account (1 WIP CL, 2 tests, 5 related issues)
Fixing clusterfuzz crashes xidachen@ worked on fixing clusterfuzz crashes: They usually have a minimal test case, easy to diagnose These are crashes can happen in the real world Often times it is due to our coding missing edge cases Outcome: Landed 2 CLs and fixed 2 bugs. In additional to that, xidachen@ also closed a few touch-action related bugs.

Chapter III: New features

Animations in display locked subtrees kevers@ is working on this performance optimization, which effectively “pause” CSS animations/transitions that are not rendered due to content-visibility, while direct queries must still produce correct results. The above demo shows that animation events stop firing while content is hidden, which is a direct consequence of not updating hidden animations due to the normal passage of time. Calculations requiring a fresh style update are correctly resolved on demand. Composite background-color animation xidachen@ fixed a crash which is due to missing repaint. He is also working on two known problems in order to restart finch experiment. Scroll to element flackr@ developed a scroll-to extension Source code is available Scrolls to selected element Rejects restricted CSS selectors
Google Meet FPS optimization zmo@ plumbed minimum tick interval of animations, which requires Calculate minimum tick interval Used in tick rate heuristic After the above change, flackr@ found that meet still wasn’t showing 60fps. More investigation shows that meet had incorrect animation. Specifically 0.6s 3 keyframe animation with steps(18) should be 30fps, but 18 animation-timing-function steps is applied between each pair of keyframes. flackr@ is currently working with meet team to further optimize this. Penetrating context menu image selection The feature is implemented by benwgold@ where flackr@ is an active reviewer. Specifically, this feature allows right click / long press to find images below targeted element. In this demo, an image label element completely covers the image. Without penetrating image selection, one could not save the image without inspecting the page. Disable double tap to zoom liviutinta@ landed CLs disabling DTZ for meta viewport tags such as: <meta name=”viewport” content=”device-width”> <meta name=”viewport” content=”initial-scale=1”> , for any initial-scale >=1 we’ll disable DTZ <meta name=”viewport” content=”minimum-scale=1”>, minimum-scale >=1 implies initial-scale >= 1 Combinations of the above The I2S API owners approved, and we have started finch experiment for 50% canary.

Chapter IV: Testing

Move virtual scroll-snap tests The problem with virtual/threaded is that it doesn’t guarantee that scroll snap tests run on the compositor. Thus kevers@ moved the tests to threaded-prefer-compositing, which ensures that the composited path is being used. This change exposed that we had limited testing of scroll snap with composited scrolling and temporarily introduced 7 new entries in the TestExpectations file. These failures have now been addressed. Automate WPT test using testdriver action API lanwei@ kept working on automate WPT test and making good progress.

Chapter V: Stability fixes kevers@ fixed a problem when running user code (Javascript) that can result in the destruction of an execution context. The solution is to double check if the context is used downstream of script execution.

Chapter VI: Interop fixes

Sticky interop investigation flackr@ created meta tracking bug for this. During this sprint, 3 issues were closed. Moreover, a WPT test has been landed to track new spec scrollIntoView behavior. Fixed falsely overconstrained stick positioning flackr@ fixed a stick position bug. In the above demo: The left one is the wrong behavior where the bottom constraint is ignored. The right one shows the correct behavior. Both bottom and top constraints are used creating reveal and collapse effect.
Overscroll-behavior propagation xidachen@ made some progress towards fixing this bug, which includes Found ~15 google internal sites that might break by the incoming fix Started this doc, which provided guidance on how to change their sites to avoid breakage. All google internal sites listed in the doc have made changes. Unfortunately the percentage of sites that might break is not going down (Beta: ~2.2%, Stable: ~0.5% of page loads) Scroll snap behavior with scrollbar arrow keys Resolved the scroll snap behavior for interactions with the scrollbar arrow keys during the last sprint cycle for main thread scrolling. Fixed for composited scrolling this sprint.

Chapter VII: Metrics

Finch study: Composite relative keyframes kevers@ launched this finch study and collected some meaningful results. Finch study: Scroll prediction flackr@ is launching this finch study on behave of a Microsoft engineer. VisualJitter AverageLagPresentation Legend (f=# frames): -5ms 0.375f 0.5f 0.625f 1.217ms 3.3ms 5.383ms The data of “VisualJitter” suggests that more prediction means more jitter. The data of “AverageLagPresentation” suggests more prediction increases lag.
Smoothness Metric lanwei@ explored in the smoothness metric field and did some data analysis.

Chapter VIII: à la carte

PointerEvent spec reviews mustaq@ has almost done reviewing two significant changes from the external spec editor: Reword/expand touch-action definition Added direct suggestions to clarify that “touch-action: manipulation” excludes double-tap zoom. Major refactoring: refer to “direct manipulation” rather than “touch” A long and tricky edit to officially include (some) pen pointers in touch-action.

Chrome Interactions Highlights | March 2021 | go/interactions-team