breadcrumbs: '' page_name: july-2021---new-features-fixit-stability-security-fixes-interop-fixes-and-more title: July 2021 - New features, fixit, stability/security fixes, interop fixes and more!
July 2021
Chrome Interactions Highlights
Archives: go/interactions-team-highlights
Chapter I: New features
Composite multiple transformations
kevers@ landed a CL to composite multiple transformations.
Background
CSS has 4 transformation properties: translate, scale, rotate and transform. Previously, we could only composite a single transformation.
Challenges
Compositor only know about transform, and the others were converted. Ordering is important WorkletAnimations tick later than the rest to allow time for worklet code to run.
Solution
Expand set of target properties in CC ScopedCompoundTransformResolver
Capability Delegation
mustaq@ finalized Q3-Q4 shipping plan:
origin trial at M94 ship at M96 without PaymentRequest changes, and ship PaymentRequest changes after holidays. We considered possible [TAG](https://github.com/w3ctag/design-reviews/issues/655) delays, no-breakage during holiday shopping, and motivating Stripe changes. Thanks to smcgruer@ and jyasskin@.
Android Elastic Overscroll
flackr@ has landed all patches for elastic overscroll, which includes:
Transform overscroll stretch Pixel shader stretch Disable glow when stretch is enabled Disable stretch on webview when native stretch is used Disable stretch in non-scrollable directions Only enable stretch on Android 12 or later
Memory.GPU.PrivateMemoryFootprint and Memory.GPU.PeakMemoryUsage2.Scroll
The preliminary finch result for “Android Elastic Overscroll” is shown above. The only substantial difference seemed to be GPU memory usage:
Roughly 10% increase in Memory.GPU.PeakMemoryUsage2.Scroll Slightly increase in Memory.Gpu.PrivateMemoryFootprint
Chapter II: Fixit
Fix a float-cast-overflow
xidachen@ fixed a float-cast-overflow bug. There is no local repro, and a speculative fix actually fixed the problem.
Fix a float-cast-overflow
xidachen@ added more documentation in the csspaint/ folder to explain the workflow of the paint worklet.
Fix a flaky animations layout test
This layout test is one of the top flakes under the Blink>Animation category. The root cause seems to be a precision issue with animation time comparison, which is addressed in this CL.
Fix a few PointerLock crashes
mustaq@ fixed a 9-year-old exit instruction bug between fullscreen and repeated lock-unlock requests, by untangling exit instruction confusion between browser-vs-content fullscreen exit instructions to keep the “nested fullscreening” case clear to users.
Also fixed a crash with repeated locks around a removed element.
Chapter III: Stability/security fixes
Chrome_Android: Crash report
flackr@ fixed a crash on chrome android. The fix is that the overscroll stretch effect node needed an output clip set (CL).
Prevent script execution during lifecycle update
flackr@ landed a fix that prevents further security bugs resulting from accidentally running script during the lifecycle. Specific exceptions made for cases where script execution is known to be safe or handled:
ResizeObserver IntersectionObserver PaintWorklet::Paint LayoutWorklet Plugin::Dispose\*
Crashed hittesting with “uneditable” editable elements
mustaq@ fixed a crash bug. The root cause is simply that hittest code is unaware that the contenteditable element is not editable (CL).
Binary size increase
flackr@ investigated a binary size increase bug on Android, where Android stretch shader adds a large (~6KB) shader string (shown above).
Short term, only include shader string on Android ([CL](https://chromium-review.googlesource.com/c/chromium/src/+/3016756)). Long term, find a way to [compress string](https://bugs.chromium.org/p/chromium/issues/detail?id=1227747).
Chapter IV: Interop fixes
Simplify pointer-events spec tracking of changed targets
flackr@ simplifies pointer-events spec. Previously the spec had a dirty flag which lazily updated the targets of coalesced/predicted events.
Leaks implementation details into the spec
Updated this to immediately update the dependent lists
Remove dirty flag Well-known when targets change.
Chapter V: à la carte
Refactor native paintworklet
xidachen@ proposed a refactor to the native paintworklet code. Detailed doc is here, the first CL has landed.
Scroll Unification - Google Docs jumpy scrollbar drags
skobes@ landed a CL that fixes a jumpy scrollbar bug.
Chapter VI: Bug Updates
The increase in P1 bugs appears to be linked to influx of fixit-2021-testing-flaky bugs. Some efforts is required to properly triage them.
Chrome Interactions Highlights | July 2021
go/interactions-team