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

LayoutSVGForeignObject: Bridging SVG and HTML

LayoutSVGForeignObject: Bridging SVG and HTML

The provided text describes the LayoutSVGForeignObject class within Chromium’s Blink engine, which enables the integration of HTML and CSS content inside an SVG environment. Acting as a technical brid...

2 Tammi 34min

StyleResolver: Blink Architecture and CSS Engine Deep Dive

StyleResolver: Blink Architecture and CSS Engine Deep Dive

The provided text outlines the StyleResolver within Google’s Blink rendering engine, detailing its pivotal role in converting CSS rules into final ComputedStyle objects for DOM elements. This complex ...

2 Tammi 39min

StyleAdjuster: Blink Rendering Engine

StyleAdjuster: Blink Rendering Engine

The provided text explains the StyleAdjuster component within the Blink rendering engine, which serves as a critical post-processing stage in the CSS style resolution pipeline. Positioned between init...

2 Tammi 37min

FragmentBuilder: Architecture and Role

FragmentBuilder: Architecture and Role

In Blink’s LayoutNG engine, the FragmentBuilder class serves as a vital instrument for generating immutable fragment trees, which represent the final geometric output of the layout process. This syste...

2 Tammi 37min

ObjectPaintProperties: Linking Layout and Painting in Blink Engine

ObjectPaintProperties: Linking Layout and Painting in Blink Engine

In the Blink rendering engine, the ObjectPaintProperties structure serves as a vital bridge between the layout and painting phases. It functions by organizing specific visual property nodes—such as tr...

2 Tammi 33min

BoxFragmentBuilder and Layout Architecture in Blink's LayoutNG

BoxFragmentBuilder and Layout Architecture in Blink's LayoutNG

The provided text details the BoxFragmentBuilder, a vital component within the Blink LayoutNG engine that constructs physical representations of layout elements. It acts as a transitional bridge, taki...

2 Tammi 39min

Pseudo-Elements in Blink's Layout Tree

Pseudo-Elements in Blink's Layout Tree

In the Blink rendering engine, CSS pseudo-elements are managed through specialized C++ classes and internal structures that link them to their originating DOM elements. These entities are dynamically ...

2 Tammi 42min

Clip Nodes in the Blink and Chromium Compositor

Clip Nodes in the Blink and Chromium Compositor

The provided text explains how Chromium’s Blink engine and the compositor utilize clip nodes within property trees to manage page geometry and visual masking. These nodes define specific regions where...

2 Tammi 35min