
Sign up to save your podcasts
Or


Overscroll orchestration and animation. This Blink-side controller manages the rubber-banding (elastic stretch and rebound) effect when a scrollable area is overscrolled. It observes gesture scroll events and scroll results, and computes the overscroll stretch and bounce-back animations for the currently scrolling element . In practice, ElasticOverscrollController applies platform-specific physics (e.g. exponential spring on Android/macOS vs. a cubic-bezier curve on Windows) to produce the elastic overscroll visual feedback. It’s the central class coordinating overscroll state and animation timing, making it critical for implementing elastic overscroll on any scroll container (not just the root). (Note: Internally, Blink provides different implementations like ElasticOverscrollControllerExponential and ElasticOverscrollControllerBezier that define the physics for various platforms , but the base controller interface is where the overscroll behavior is orchestrated.)
Receives frames from one or more surfaces (main page and OOPIFs), aggregates them into a single display frame.
The packaged frame (passes + quads + metadata) submitted to the display compositor.
Schedules raster of picture tiles (Skia) into GPU resources as needed before draw.
Impl‑side layer objects that reference property‑tree nodes and emit draw quads from recorded paint (tiles).
(TransformTree / ClipTree / EffectTree / ScrollTree) with nodes cc::TransformNode / ClipNode / EffectNode / ScrollNode — The impl‑side property‑tree state that positions, clips, blends, and scrolls content each frame.
The compositor‑thread twin that owns the active/pending trees, runs impl‑side animations/scroll, and prepares draw. Implements cc::InputHandler for threaded scrolling/pinch.
Packages updated layers/property trees; kicks a commit to the compositor thread (via the proxy).
From the publisher's feed