Chromium Compositor's CalculateDrawProperties: Scrolling and Overscroll
Blink2863 Loka 2025

Chromium Compositor's CalculateDrawProperties: Scrolling and Overscroll

The sources provide an extremely detailed, line-by-line breakdown of the Chromium compositor function CalculateDrawProperties, explaining how it prepares the active layer tree for rendering. A primary focus is on how scrolling and elastic overscroll are handled by updating property trees (transform, clip, and effect) to reflect user interaction. Specifically, the function prioritizes applying SyncedProperties, such as the page scale factor (zoom) and the elastic overscroll vector (the bounce effect), ensuring consistency across layer trees before property recomputation. The application of overscroll is platform-dependent, utilizing stretching on Android versus simple translation on non-Android platforms, and these effects are injected into a dedicated transform node that propagates the visual change to all descendant layers. Finally, the function determines visible layers, computes their final draw properties, and assembles the render surface list that the compositor will use to issue drawing commands.


Jaksot(395)

CSS Sticky Positioning and Paint Property Trees

CSS Sticky Positioning and Paint Property Trees

This documentation details how the Blink rendering engine manages CSS sticky positioning through its PrePaint and paint property tree workflows. During the PrePaint phase, the engine identifies sticky...

26 Joulu 202551min

[General] Inside Blink: The Paint Property Tree Builder Pipeline

[General] 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 202550min

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