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

Hazard Pointers: Lock-Free Memory Reclamation in C++

Hazard Pointers: Lock-Free Memory Reclamation in C++

The provided sources discuss Hazard Pointers, a crucial technique for safe memory reclamation in lock-free concurrent programming, particularly within C++. They explain how hazard pointers address the...

14 Elo 20251h 27min

Remote Blink Development with Zsh, SSH, VS Code, and tmux

Remote Blink Development with Zsh, SSH, VS Code, and tmux

This comprehensive guide details establishing an efficient remote development environment, specifically for Chrome's Blink engine, by integrating several powerful tools. It explains how Zsh, a feature...

13 Elo 20251h 2min

The Genesis of Web Standard Features

The Genesis of Web Standard Features

This compilation explores recent and upcoming CSS/HTML features that are significantly shaping web development. It provides case studies on Container Queries, the :has() pseudo-class, CSS Nesting, and...

10 Elo 202556min

Blink Feature Launch: From Idea to Chrome Stable

Blink Feature Launch: From Idea to Chrome Stable

This comprehensive guide, likely from Chromium's internal documentation, outlines the structured feature launch processfor new HTML/CSS functionalities within the Blink team. It details a multi-stage ...

10 Elo 202530min

Web Standards: From Idea to Implementation

Web Standards: From Idea to Implementation

The provided text outlines the comprehensive process of web standards development for HTML and CSS, particularly for engineers on the Blink team. It details the roles of key organizations like WHATWG ...

10 Elo 202557min

Blink Performance: Tooling, Metrics, and Real-World Impact

Blink Performance: Tooling, Metrics, and Real-World Impact

9 Elo 20251h 3min

Web Standards: Literacy and Consensus Building

Web Standards: Literacy and Consensus Building

9 Elo 20251h 6min

Blink Engineering: Build, CI, and Safe Releases

Blink Engineering: Build, CI, and Safe Releases

9 Elo 202547min