Architecture of Scrolling in Chrome (Blink vs. CC Overview)
Blink28610 Nov 2025

Architecture of Scrolling in Chrome (Blink vs. CC Overview)

The source provides an extensive overview of the Chrome browser's scrolling architecture, detailing the division of labor between the Blink rendering engine (main thread) and the Chromium Compositor (CC). It explains that Blink manages the structure and definition of scrollable areas (ScrollableArea, ScrollManager), while the Compositor handles the actual visual movement via its separate thread for maximum performance, often called threaded scrolling. Critical to this system are Property Trees (specifically the Scroll Tree and Transform Tree) which the Compositor uses to efficiently apply scroll offsets to layers without needing main thread input, and the InputHandlerProxy which intelligently routes scroll events to either the fast Compositor path or the slower Blink path based on criteria like the presence of non-passive event listeners. Finally, the text describes the vital role of the commit lifecycle in synchronizing the actual scroll position between the independent threads to maintain visual and logical consistency.

Avsnitt(497)

blink::PropertyTreeManager

blink::PropertyTreeManager

bridges Blink property trees → cc property trees. Given Blink’s Transform/Clip/Effect/Scroll nodes (from paint property trees), this class creates/updates the cc counterparts (cc::TransformNode, cc::C...

10 Okt 202546min

blink::PaintArtifactCompositor

blink::PaintArtifactCompositor

turns chunks into compositor layers & updates cc property trees. Consumes the new PaintArtifact and does the layerization and property‑tree updates required for compositor draw. It supports fast paths...

10 Okt 202529min

blink::PaintChunk and blink::DisplayItemList

blink::PaintChunk and blink::DisplayItemList

grouping and content. PaintChunk: groups sequential display items that share the same property‑tree state and cull/visibility; it’s the unit we layerize and invalidate.DisplayItemList: the recorded Sk...

10 Okt 202537min

blink::PaintArtifact

blink::PaintArtifact

the immutable “what to draw” package for this frame. A PaintArtifact is the product of Blink painting: a DisplayItemList plus an ordered vector of PaintChunks. It is immutable post‑creation and design...

10 Okt 202531min

blink::PaintController

blink::PaintController

builds the display list + paint chunks and manages caching. As painters call into GraphicsContext, they also drive a PaintController which groups drawing into display items and paint chunks (each keye...

10 Okt 202529min

blink::GraphicsContext

blink::GraphicsContext

immediate drawing API that records to a display list. Painters for layout objects use GraphicsContext to “draw”—but in modern Blink those calls get recorded into a display list (PaintRecord) backed by...

10 Okt 202544min

blink::TransformPaintPropertyNode / ClipPaintPropertyNode / EffectPaintPropertyNode / ScrollPaintPropertyNode

blink::TransformPaintPropertyNode / ClipPaintPropertyNode / EffectPaintPropertyNode / ScrollPaintPropertyNode

These are the nodes within those four trees. Every piece of painted content (a “paint chunk”) is associated with a tuple of (Transform, Clip, Effect, Scroll) nodes—its PropertyTreeState. This precisel...

10 Okt 202533min

blink::PaintPropertyTreeBuilder

blink::PaintPropertyTreeBuilder

builds/updates paint property trees.Consumes the layout/fragment data and produces the four paint property trees (Transform, Clip, Effect, Scroll) for the current frame. These trees encode coordinate ...

10 Okt 202547min

Populärt inom Teknik

uppgang-och-fall
elbilsveckan
bilar-med-sladd
skogsforum-podcast
market-makers
rss-elektrikerpodden
rss-uppgang-och-fall
rss-powerboat-sverige-podcast
gubbar-som-tjotar-om-bilar
rss-veckans-ai
rss-technokratin
hej-bruksbil
har-vi-akt-till-mars-an
developers-mer-an-bara-kod
bli-saker-podden
rss-fabriken-2
rss-en-ai-till-kaffet
rss-laddstationen-med-elbilen-i-sverige
rss-snacka-om-ai
rss-digitala-influencer-podden