Compositor-Thread Scrolling – CC Mechanics and Property Trees
Blink28611 Marras 2025

Compositor-Thread Scrolling – CC Mechanics and Property Trees

The source provides an extensive technical overview of Chrome’s Compositor-Thread Scrolling architecture, explaining how modern web rendering achieves smooth, low-latency scrolling by handling most scroll events off the main thread. This process relies on key data structures called property trees—specifically the ScrollTree, TransformTree, and ClipTree—which manage scroll offsets, geometric transformations, and viewport boundaries, respectively. The LayerTreeHostImpl orchestrates the sequence: it receives input events via the InputHandlerProxy, determines the scroll target via hit testing, updates the ScrollNode's offset, and leverages the TransformTree to translate content on the GPU without needing the main thread for layout or style updates. Additionally, the system details how it manages advanced features like scroll animations (flings), scroll snapping, platform-specific overscroll effects (elasticity/glow), and fallbacks to main-thread scrolling when necessary, ensuring the continuous flow of rendered frames.


Jaksot(417)

Inside Blink: The Paint Property Tree Builder Pipeline

Inside Blink: The Paint Property Tree Builder Pipeline

The PaintPropertyTreeBuilder is a critical component within Google Chrome’s Blink engine that converts layout data into structural property trees used for rendering. Operating during the PrePaint phas...

24 Joulu 20251h 4min

Promisify Scroll: Promise-Based Web Scrolling API

Promisify Scroll: Promise-Based Web Scrolling API

The provided text describes a web platform initiative to modernize how browsers handle scrolling by having programmatic scroll methods return JavaScript Promises. Currently, functions like scrollTo() ...

24 Joulu 202528min

CSS Containing Blocks and Blink Engine Implementation

CSS Containing Blocks and Blink Engine Implementation

This text examines how CSS containing blocks function and how the Blink rendering engine implements these rules within Chromium. It explains that a containing block is the essential rectangular refere...

23 Joulu 202526min

Axis-Split Sticky Constraints in Chromium Layout and Compositing

Axis-Split Sticky Constraints in Chromium Layout and Compositing

Chromium is refining its rendering engine to support axis-split sticky constraints, allowing elements to stick to different scroll containers for horizontal and vertical movements. Previously, a singl...

23 Joulu 202533min

Mastering CSS Sticky Positioning and Scroll Containers

Mastering CSS Sticky Positioning and Scroll Containers

This documentation provides a comprehensive analysis of CSS sticky positioning, a hybrid layout scheme that anchors elements within their nearest scroll container while maintaining their space in the ...

20 Joulu 202534min

Blink Paint Property Trees: Construction and Lifecycle Phases

Blink Paint Property Trees: Construction and Lifecycle Phases

The provided text explains the construction and lifecycle of paint property trees within the Blink rendering engine. These structures, which include Transform, Clip, Effect, and Scroll trees, replace ...

20 Joulu 20251h 1min

Chromium's LayerTreeHostClient: The Compositing Bridge

Chromium's LayerTreeHostClient: The Compositing Bridge

The source provides an extensive overview of the LayerTreeHostClient interface, a crucial component in Chromium's rendering architecture that acts as the bridge between the content engine (like Blink ...

18 Joulu 202536min

The Definitive Guide to CSS Scroll Snap

The Definitive Guide to CSS Scroll Snap

The source provides a comprehensive technical deep dive into the CSS Scroll Snap Module Level 1, a feature designed to create precise, controlled, and paginated scrolling experiences, such as carousel...

18 Joulu 202539min