blink::PaintController
Blink28610 Okt 2025

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 keyed by the current property‑tree state). It also handles reuse of cached items to avoid repaint when nothing visually changed. Output is an immutable PaintArtifact. (Chromium Git Repositories)

Key fields

  • PaintArtifact* new_paint_artifact_ — being built for this frame;

  • PaintArtifact* old_paint_artifact_ — previous frame for cache matching;

  • PaintChunker paint_chunker_ — forms chunk boundaries based on property state;

  • PaintControllerPersistentData* persistent_data_ — holds prior artifact & subsequences. (Chromium Git Repositories)

Most important methods

  • UpdateCurrentPaintChunkProperties(const PropertyTreeStateOrAlias&) — starts/updates the current chunk when property state changes. (Chromium Git Repositories)

  • template <class T> CreateAndAppend(...) — appends a display item (records drawing op + metadata). (Chromium Git Repositories)

  • bool UseCachedItemIfPossible(...) — reuses prior items to skip repaints. (Chromium Git Repositories)

  • void BeginFrame(const void* frame) / FrameFirstPaint EndFrame(const void* frame) — delimit a painting pass for metrics + cache book‑keeping. (Chromium Git Repositories)

  • (Internals also maintain id→index maps to support O(1)/linear cache lookups.) (Chromium Git Repositories)

Hands off to: the PaintArtifact it produces.


Episoder(403)

Trees in Viz: Chrome's Centralized Compositing Engine

Trees in Viz: Chrome's Centralized Compositing Engine

The source details a significant re-architecture of the Chromium rendering pipeline, known as JellyMander, centered on the feature Trees in Viz (TiV). This change shifts the core task of frame composi...

30 Nov 202530min

PaintLayerPainter: Blink's Bridge from Layout to Rendering

PaintLayerPainter: Blink's Bridge from Layout to Rendering

The source material provides an exhaustive technical analysis of Blink’s PaintLayerPainter, the central coordinator responsible for executing the CSS painting algorithm to generate visual output. This...

30 Nov 202541min

Blink Property Trees: Scene Graph for Compositing

Blink Property Trees: Scene Graph for Compositing

The sources provide a comprehensive technical analysis of the Paint Property Tree Builder (PPTB) in Blink, which is the mechanism responsible for creating the crucial intermediate data structures know...

30 Nov 202540min

The Architecture of Chromium's Safe Callback Cancellation

The Architecture of Chromium's Safe Callback Cancellation

The source material provides a comprehensive examination of Chromium's CancelableCallback utility, which was introduced to allow for the safe and explicit cancellation of tasks that have been schedule...

29 Nov 202539min

B6: RenderProcessHost: Lifecycle and Architecture Management

B6: RenderProcessHost: Lifecycle and Architecture Management

The provided documents outline the essential functions of the RenderProcessHost (RPH), a crucial component within Chromium's multi-process architecture that resides in the browser process to manage a ...

28 Nov 202532min

B5: Platform View Architecture

B5: Platform View Architecture

The source provides an architectural overview of Layer 5 in Chromium, which is responsible for interfacing the browser’s content output with the native operating system view layer. This layer is struc...

28 Nov 202533min

B4: Render Host Layer: RVH and RWH

B4: Render Host Layer: RVH and RWH

The technical documentation provides an extensive overview of two crucial browser-side components in Chromium's multi-process architecture: the RenderViewHost (RVH) and the RenderWidgetHost(RWH). The ...

28 Nov 202539min

B3: RenderFrameHost: Core Document Lifeline

B3: RenderFrameHost: Core Document Lifeline

The source documentation provides a detailed analysis of the RenderFrameHost (RFH) and its implementing class, RenderFrameHostImpl, which constitute the essential browser-side representation of every ...

28 Nov 202534min

Populært innen Teknologi

lydartikler-fra-aftenposten
romkapsel
rss-avskiltet
smart-forklart
teknisk-sett
nasjonal-sikkerhetsmyndighet-nsm
energi-og-klima
rss-impressions-2
tomprat-med-gunnar-tjomlid
shifter
teknologi-og-mennesker
fornybaren
elektropodden
rss-heis
hans-petter-og-co
i-loopen
pedagogisk-intelligens
rss-alt-vi-kan
rss-for-alarmen-gar
rss-polypod