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(396)

The Mechanics of Inline Block and Fragmentation

The Mechanics of Inline Block and Fragmentation

These technical documents describe how Blink’s modern LayoutNG engine manages inline-block elements through a specialized physical fragment tree. Within this system, an inline-block is classified as a...

13 Helmi 26min

Inside Chromium: The Architecture of DevTools

Inside Chromium: The Architecture of DevTools

The provided text explains the architecture and inner workings of Chromium DevTools, describing it as a client-server system that bridges a user-facing front-end with the browser’s back-end. This comm...

12 Helmi 40min

Chromium Blink Printing Mode Analysis

Chromium Blink Printing Mode Analysis

These sources analyze how the Chromium Blink engine manages printing mode and its impact on layout behavior. The documentation clarifies that printing does not automatically disable a view's status as...

12 Helmi 28min

Blink Fragment Propagation and Sticky Descendant Boundaries

Blink Fragment Propagation and Sticky Descendant Boundaries

The provided text explains how Blink's LayoutView manages sticky descendant propagation within the fragment tree. Under standard conditions, sticky elements bubble upward through ancestor fragments un...

12 Helmi 29min

Oilpan: The Garbage Collector for Blink in Chrome

Oilpan: The Garbage Collector for Blink in Chrome

Oilpan is a specialized garbage collection system for the Blink rendering engine in Chrome, specifically designed to manage C++ objects and eliminate memory safety issues like use-after-free bugs. It ...

11 Helmi 38min

Iframe Layout Coordination and Cooperative Sizing in Blink

Iframe Layout Coordination and Cooperative Sizing in Blink

The provided text describes the technical evolution of iframe layout coordination within Google's Blink rendering engine. Traditionally, browsers treat iframes as isolated boxes with a default size of...

9 Helmi 37min

Chrome Scheduler: Frame Orchestrator

Chrome Scheduler: Frame Orchestrator

9 Helmi 35min

Blink Rendering Engine: Frame, Document, and View Lifecycle

Blink Rendering Engine: Frame, Document, and View Lifecycle

In the Blink rendering engine, LocalFrame, LocalFrameView, and Document form a specialized triad that manages the structure and display of web content. The LocalFrame acts as the primary controller fo...

8 Helmi 34min