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(399)

Inside Chromium’s View Transition Machinery

Inside Chromium’s View Transition Machinery

16 Helmi 44min

Sticky and Fixed Positioning in Single-Axis Scroll Containers

Sticky and Fixed Positioning in Single-Axis Scroll Containers

The provided sources examine how Blink/Chromium handles the interaction between sticky positioning, fixed ancestors, and the development of single-axis scroll containers. A central focus is the "fixed...

16 Helmi 32min

Layout and Fragment Trees: The Dual Paths of Blink Rendering

Layout and Fragment Trees: The Dual Paths of Blink Rendering

In the Blink rendering engine, navigating upward through the layout tree differs significantly from traversing the fragment tree, as each structure serves a distinct purpose in the web pipeline. The l...

14 Helmi 35min

The Mechanics of Inline Block and Fragmentation

The Mechanics of Inline Block and Fragmentation

These technical documents describe how Blink’s modern LayoutNG engine manages inline-block elements through a specialized physical fragment tree. Within this system, an inline-block is classified as a...

13 Helmi 26min

Inside Chromium: The Architecture of DevTools

Inside Chromium: The Architecture of DevTools

The provided text explains the architecture and inner workings of Chromium DevTools, describing it as a client-server system that bridges a user-facing front-end with the browser’s back-end. This comm...

12 Helmi 40min

Chromium Blink Printing Mode Analysis

Chromium Blink Printing Mode Analysis

These sources analyze how the Chromium Blink engine manages printing mode and its impact on layout behavior. The documentation clarifies that printing does not automatically disable a view's status as...

12 Helmi 28min

Blink Fragment Propagation and Sticky Descendant Boundaries

Blink Fragment Propagation and Sticky Descendant Boundaries

The provided text explains how Blink's LayoutView manages sticky descendant propagation within the fragment tree. Under standard conditions, sticky elements bubble upward through ancestor fragments un...

12 Helmi 29min

Oilpan: The Garbage Collector for Blink in Chrome

Oilpan: The Garbage Collector for Blink in Chrome

Oilpan is a specialized garbage collection system for the Blink rendering engine in Chrome, specifically designed to manage C++ objects and eliminate memory safety issues like use-after-free bugs. It ...

11 Helmi 38min