blink::PaintController
Blink28610 Loka 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.


Jaksot(397)

WebMCP: AI Functionality for the Browser

WebMCP: AI Functionality for the Browser

The provided sources introduce and detail WebMCP (Web Model-Context Protocol), an emerging web standard designed to enable seamless, structured communication between AI agents (like LLM-based assistan...

6 Marras 202530min

React Fiber, Concurrency, and Reconciliation

React Fiber, Concurrency, and Reconciliation

The source provides an extensive overview of React's internal architecture, focusing on the Fiber reconciliation engine and the concept of concurrent rendering. It explains how declarative JSX is comp...

4 Marras 20251h 14min

SOLID Principles in Chromium Blink Compositor

SOLID Principles in Chromium Blink Compositor

The provided source is an in-depth analysis of the Chromium Blink cc Compositor module's architecture, viewed through the lens of the SOLID software design principles. This technical document, aimed a...

2 Marras 20251h 2min

cc::ScrollTree

cc::ScrollTree

The source text provides an exhaustive technical overview of the Scroll Property Tree (cc::ScrollTree) within the Chromium compositor architecture, which is critical for enabling smooth, off-main-thre...

2 Marras 202547min

cc::EffectTree

cc::EffectTree

The source provides an extensive technical explanation of the Effect Property Tree within the Chromium compositor, which is crucial for managing how visual effects are applied to web content. This tre...

2 Marras 20251h 1min

cc::ClipTree

cc::ClipTree

The source provides an extensive technical overview of the ClipTree within Chromium's compositor property tree architecture, explaining its critical role in managing geometric clipping. The ClipTree i...

1 Marras 20251h 13min

cc::TransformTree

cc::TransformTree

source provides a highly detailed technical overview of the Transform Property Tree within the Chromium compositor, which is a core component of the RenderingNG architecture responsible for all coordi...

1 Marras 20251h 11min

cc::LayerImpl: Compositor Layer Deep Dive

cc::LayerImpl: Compositor Layer Deep Dive

The sources provide an exhaustive technical explanation of the cc::LayerImpl class, which is the core representation of a visual element within Chromium's multi-threaded rendering pipeline. These laye...

1 Marras 20251h 8min