Chromium LayerContext Deep Dive: RenderingNG and Scroll Updates
Blink2868 Okt 2025

Chromium LayerContext Deep Dive: RenderingNG and Scroll Updates

The source material, primarily an excerpt from a 2025 technical report, provides an in-depth analysis of the LayerContext abstraction within the Chromium RenderingNG pipeline, specifically when the browser's compositor and the GPU's display compositor run in separate processes using the "Trees In Viz" configuration. LayerContext acts as the crucial boundary object, with the VizLayerContext implementation on the client side responsible for serializing incremental updates—including property tree changes, layer properties, and scroll offsets—into Mojo messages. Conversely, the LayerContextImpl on the server (GPU) side receives these messages, applies the updates to its local LayerTreeHostImpl, and then draws and submits the final frame. This mechanism is central to ensuring efficient synchronization of scroll deltas and other state changes across process boundaries without requiring a full commit for every update.


Avsnitt(408)

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

blink::PrePaintTreeWalk

blink::PrePaintTreeWalk

cross‑frame pre‑paint traversal. Runs in the InPrePaint lifecycle phase. Walks the entire layout tree starting at the root LocalFrameView, updating paint invalidation state and computing the context n...

10 Okt 202531min

Populärt inom Teknik

uppgang-och-fall
natets-morka-sida
elbilsveckan
market-makers
bilar-med-sladd
rss-elektrikerpodden
rss-laddstationen-med-elbilen-i-sverige
skogsforum-podcast
rss-it-sakerhetspodden
bosse-bildoktorn-och-hasse-p
rss-veckans-ai
rss-en-ai-till-kaffet
rss-technokratin
toms-laskpodd-och-annat
gubbar-som-tjotar-om-bilar
cyber-chats-chill
rss-militarsnack
rss-racevecka
rss-powerboat-sverige-podcast
rss-milpodden