cc::LayerTreeHostImpl (Input Handler & Scroll Logic)
Blink28623 Syys 2025

cc::LayerTreeHostImpl (Input Handler & Scroll Logic)

Scroll processing and overscroll detection in the compositor. The LayerTreeHostImpl in cc implements the compositor-thread InputHandler that processes gesture scroll updates and flings. It manages the scroll state of all scroll nodes (via the ScrollTree) and determines when a scroll has hit the extent of an element. Currently, this is where overscroll is detected and reported – but only for the root/viewport. For example, the InputHandler sets did_overscroll_root in the scroll result when the root scroll node reaches its boundary , triggering the elastic effect on the root. To support elastic overscroll on non-root elements, this logic in LayerTreeHostImpl (and its ScrollTree/ScrollNode handling) needs to be generalized: it must detect overscroll on any scrollable node and initiate the overscroll animation (via the helper/controller) for that node instead of chaining upward. Understanding LayerTreeHostImpl and how it yields overscroll information (e.g. populating InputHandlerScrollResult.unused_scroll_delta, accumulated overscroll, and overscroll_behavior flags ) is key, as changes here will route overscroll into the ElasticOverscrollController for the right element rather than exclusively the root.

Jaksot(462)

Chromium Fragment Items: Storage, Lifecycle, and Memory Architecture

Chromium Fragment Items: Storage, Lifecycle, and Memory Architecture

These sources explain the technical implementation and storage of Fragment Items within Google’s Blink rendering engine. They clarify that while line boxes exist as nodes in the fragment tree, the act...

12 Maalis 48min

[ADV] Blink Layout Engine: Float Avoidance and Exclusion Space Mechanics

[ADV] Blink Layout Engine: Float Avoidance and Exclusion Space Mechanics

The provided documents describe how the Chromium layout engine, specifically the Blink renderer, prevents content from overlapping CSS floats using the LayoutNG framework. This process relies on an Ex...

11 Maalis 42min

Blink Layout Engine: Float Avoidance and Exclusion Space Mechanics

Blink Layout Engine: Float Avoidance and Exclusion Space Mechanics

The provided sources describe how Chromium’s Blink engine manages CSS float avoidance through a specialized ExclusionSpace model. This system works by recording every positioned float as a geometric e...

10 Maalis 51min

[DEEP] Chromium Threaded Implementation of CSS Position Sticky

[DEEP] Chromium Threaded Implementation of CSS Position Sticky

The provided text outlines the technical architecture of how the Chromium browser handles CSS sticky positioning across its main and compositor threads. The process begins in Blink, where the main thr...

10 Maalis 37min

[PRO] Chromium Compositor Sticky: Implementation and Impl-Thread Mechanics

[PRO] Chromium Compositor Sticky: Implementation and Impl-Thread Mechanics

These sources explain how the Chromium browser engine implements sticky positioning across its main and compositor threads. The process begins in Blink, where layout geometry is calculated and cached ...

10 Maalis 50min

Blink LayoutNG: Architecture of the Physical Fragment Tree

Blink LayoutNG: Architecture of the Physical Fragment Tree

These sources describe the architectural design of the Chromium Blink layout engine, specifically focusing on how physical fragments serve as durable post-layout output. The documentation explains tha...

8 Maalis 35min

Mechanics of the Blink Pre-Paint Tree Walk

Mechanics of the Blink Pre-Paint Tree Walk

These sources describe the pre-paint lifecycle phase in the Chromium Blink rendering engine, a process primarily responsible for paint invalidation and building paint property trees. The mechanism is ...

8 Maalis 49min

Blink to CC Property Tree Conversion and Commit Pipeline

Blink to CC Property Tree Conversion and Commit Pipeline

This technical deep dive clarifies the separation of duties between Blink and the Chrome compositor (cc) regarding property tree construction. The text explains that Blink converts its own paint prope...

5 Maalis 33min