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)

content::NavigationURLLoader / NavigationURLLoaderImpl

content::NavigationURLLoader / NavigationURLLoaderImpl

The source provides a highly technical explanation of the NavigationURLLoader system within the Chromium architecture, specifically focusing on its implementation, NavigationURLLoaderImpl. This compon...

23 Marras 202530min

content::NavigationRequest

content::NavigationRequest

The source provides a highly technical, in-depth analysis of the Chromium browser's navigation process under the modern PlzNavigate architecture, focusing specifically on the NavigationRequest class. ...

23 Marras 202540min

Browser to Blink: Chromium Navigation Byte Flow

Browser to Blink: Chromium Navigation Byte Flow

The source provides a highly technical, in-depth examination of the network byte flow during a web page navigation within the Chromium browser architecture. It meticulously details the progression of ...

22 Marras 202541min

Blink's View Transitions: Nesting and Compositing Mechanics

Blink's View Transitions: Nesting and Compositing Mechanics

The sources provide a technical overview and implementation details of the View Transition API within the Blink rendering engine, focusing on achieving smooth animated state changes in web pages. The ...

22 Marras 202533min

CSS Overscroll Behavior in Chrome

CSS Overscroll Behavior in Chrome

The source provides a comprehensive technical guide to the CSS overscroll-behavior properties, which allow web developers to control scroll chaining and boundary effects like pull-to-refresh or elasti...

21 Marras 202530min

Scroll-Driven Animations Architecture in Chromium Compositor

Scroll-Driven Animations Architecture in Chromium Compositor

The source provides an extensive architectural deep dive into the implementation of Scroll-driven Animations (SDA) within the Chromium project, specifically focusing on the Blink rendering engine and ...

20 Marras 202539min

Blink's Stacking Contexts and Rendering Pipeline

Blink's Stacking Contexts and Rendering Pipeline

The source provides a highly technical and comprehensive overview of CSS stacking contexts and their implementation within Blink, Chrome's rendering engine. It explains the conceptual role of a stacki...

20 Marras 202550min

Fragmentation in Blink LayoutNG

Fragmentation in Blink LayoutNG

The source provides a comprehensive overview of content fragmentation within the Blink rendering engine, focusing heavily on the transition from the legacy engine to the modern LayoutNG architecture. ...

19 Marras 202550min