the Chromium logo

The Chromium Projects

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
<td><td>CSS has 4 transformation properties: translate, scale, rotate and
transform.</td></td>

<td><td>Previously, we could only composite a single
transformation.</td></td>
<td><td>Compositor only know about transform, and the others were
converted.</td></td>

<td><td>Ordering is important</td></td>

<td><td>WorkletAnimations tick later than the rest to allow time for worklet
code to run.</td></td>
<td><td>Expand set of target properties in CC</td></td>

<td><td>ScopedCompoundTransformResolver</td></td>
<td><td>origin trial at M94</td></td>

<td><td>ship at M96 without PaymentRequest changes, and</td></td>

<td><td>ship PaymentRequest changes after holidays.</td></td>

<td><td>We considered possible <a
href="https://github.com/w3ctag/design-reviews/issues/655">TAG</a> delays,
no-breakage during holiday shopping, and motivating Stripe changes. Thanks
to smcgruer@ and jyasskin@.</td></td>
<td><td>Transform overscroll stretch</td></td>

<td><td>Pixel shader stretch</td></td>

<td><td>Disable glow when stretch is enabled</td></td>

<td><td>Disable stretch on webview when native stretch is used</td></td>

<td><td>Disable stretch in non-scrollable directions</td></td>

<td><td>Only enable stretch on Android 12 or later</td></td>
<td><td>Roughly 10% increase in Memory.GPU.PeakMemoryUsage2.Scroll</td></td>

<td><td>Slightly increase in Memory.Gpu.PrivateMemoryFootprint</td></td>
Composite multiple transformations image kevers@ landed a CL to composite multiple transformations. Background Challenges Solution Capability Delegation mustaq@ finalized Q3-Q4 shipping plan: Android Elastic Overscroll image image flackr@ has landed all patches for elastic overscroll, which includes: imageimage 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:
Chapter II: Fixit
Fix a float-cast-overflow image 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 image 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
<td><td><td>ResizeObserver</td></td></td>

<td><td><td>IntersectionObserver</td></td></td>

<td><td><td>PaintWorklet::Paint</td></td></td>

<td><td><td>LayoutWorklet</td></td></td>

<td><td><td>Plugin::Dispose\*</td></td></td>
<td><td><td>Short term, only include shader string on Android (<a
href="https://chromium-review.googlesource.com/c/chromium/src/+/3016756">CL</a>).</td></td></td>

<td><td><td>Long term, find a way to <a
href="https://bugs.chromium.org/p/chromium/issues/detail?id=1227747">compress
string</a>.</td></td></td>
Chrome_Android: Crash report image 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: Crashed hittesting with “uneditable” editable elements image 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 image flackr@ investigated a binary size increase bug on Android, where Android stretch shader adds a large (~6KB) shader string (shown above).
Chapter IV: Interop fixes
<td><td>Leaks implementation details into the spec</td></td>
<td><td>Remove dirty flag</td></td>

<td><td>Well-known when targets change.</td></td>
Simplify pointer-events spec tracking of changed targets image flackr@ simplifies pointer-events spec. Previously the spec had a dirty flag which lazily updated the targets of coalesced/predicted events. Updated this to immediately update the dependent lists
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 image skobes@ landed a CL that fixes a jumpy scrollbar bug.
Chapter VI: Bug Updates image image 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