Blink Compositor Gesture Lifecycle in InputHandlerProxy
Blink2866 Marras 2025

Blink Compositor Gesture Lifecycle in InputHandlerProxy

The source text explains the detailed lifecycle of a gesture scroll sequence within the Chromium rendering engine, focusing on the role of the InputHandlerProxy component. This component acts as a crucial intermediary, receiving events like GestureScrollBegin, GestureScrollUpdate, and GestureScrollEnd and determining whether to handle them immediately on the performant compositor thread or defer them to the slower main thread. The document details how the InputHandlerProxy collaborates with the compositor's LayerTreeHostImpl using specific methods (like ScrollBegin and ScrollBy) to execute scrolling, manage internal tracking flags (such as gesture_scroll_on_impl_thread_), and handle edge cases like overscroll, animated scrolls, and the transfer of control back to the main thread if needed. Finally, the text addresses the challenge of tracking a stable gesture sequence ID, noting that while no universal ID exists, the sequence order and the primary_unique_touch_event_id for touch input implicitly define the gesture's lifespan.

Jaksot(462)

blink::PropertyTreeManager

blink::PropertyTreeManager

Bridges Blink’s paint property trees into cc property trees: creates/updates cc TransformNode, ClipNode, EffectNode, and ScrollNode (including inner/outer viewport scroll nodes).

22 Syys 202539min

blink::PaintArtifactCompositor

blink::PaintArtifactCompositor

Decides what needs to be composited and prepares the main‑thread representation to feed cc (layers if needed, scrollbar compositing, etc.).

22 Syys 202542min

blink::PaintArtifact

blink::PaintArtifact

The immutable package of paint chunks + display items for this frame, used to drive compositing without re‑painting.

21 Syys 202536min

blink::TransformPaintPropertyNode / ClipPaintPropertyNode / EffectPaintPropertyNode / ScrollPaintPropertyNode

blink::TransformPaintPropertyNode / ClipPaintPropertyNode / EffectPaintPropertyNode / ScrollPaintPropertyNode

The paint property trees captured during painting (transform, clip, effect/opacity, scroll offset) that define visual & coordinate‑space state.

21 Syys 202541min

blink::PaintController

blink::PaintController

Records drawing into a DisplayItemList, segmenting it into PaintChunks keyed by property‑tree state. (Output: a PaintArtifact.)

21 Syys 202533min

blink::LayoutView (root of the layout tree)

blink::LayoutView (root of the layout tree)

Computes geometry for boxes when layout is dirty.

21 Syys 202539min

blink::StyleEngine / style resolver

blink::StyleEngine / style resolver

Recalculates computed styles that changed since last frame (if any).

21 Syys 202542min

blink::Page → blink::LocalFrame / LocalFrameView

blink::Page → blink::LocalFrame / LocalFrameView

The document’s frame & viewport; LocalFrameView is the scrollable root that triggers layout/paint when needed. provided source outlines the fundamental components of the Blink rendering engine, specif...

21 Syys 202539min