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)

Git Rebase and Interactive Rebase for Chromium Development

Git Rebase and Interactive Rebase for Chromium Development

The sources provide a comprehensive guide to Git rebasing and interactive rebasing, explaining how these powerful tools rewrite commit history to maintain a clean, linear project record. They detail t...

2 Loka 202536min

Chrome Finch System Technical Guide and Rollouts

Chrome Finch System Technical Guide and Rollouts

The source text provides an exhaustive technical guide to Chrome’s Finch (Variations) system, a mechanism used for running field trials and A/B experiments to control browser features remotely. This s...

1 Loka 20251h 14min

Chromium Compositor Input: Handler and Proxy Deep Dive

Chromium Compositor Input: Handler and Proxy Deep Dive

The source provides a detailed technical analysis of how the Chromium web browser manages user input to ensure a responsive and smooth user experience, even when the main thread is occupied. It center...

1 Loka 202531min

Current Overscroll System Architecture Deep Dive

Current Overscroll System Architecture Deep Dive

The provided document offers an in-depth technical architectural overview of the overscroll system, primarily within the Chromium browser. It explains how browsers handle scroll gestures that go beyon...

29 Syys 202535min

cc Transform and Scroll Trees

cc Transform and Scroll Trees

The source text details the architecture of Chromium's compositor, focusing on the tandem operation of two critical data structures: the Transform Tree and the Scroll Tree. The Transform Tree manages ...

28 Syys 202527min

GDB Debugging for Chrome Blink Renderer Process

GDB Debugging for Chrome Blink Renderer Process

This source provides a comprehensive guide for using the GNU Debugger (GDB), primarily targeted at debugging the C++ code within the Chromium (Chrome) browser's renderer process (Blink) in a Linux dev...

27 Syys 202554min

Tmux Guide for Cloudtop Chrome Development

Tmux Guide for Cloudtop Chrome Development

The document provides an extensive tutorial and reference guide for using tmux, a terminal multiplexer, specifically tailored for Chrome development in a remote Debian Linux environment like Google Cl...

27 Syys 202543min

cc::Viewport: Engine of Compositor Interaction

cc::Viewport: Engine of Compositor Interaction

The source provides a detailed architectural examination of Chromium’s cc::Viewport class, which is a critical, stateful controller within the rendering engine's compositor responsible for all high-pe...

27 Syys 202543min