blink::GraphicsContext
Blink28610 Loka 2025

blink::GraphicsContext

immediate drawing API that records to a display list.

Painters for layout objects use GraphicsContext to “draw”—but in modern Blink those calls get recorded into a display list (PaintRecord) backed by Skia commands. This recording is scoped and batched between BeginRecording(...)/EndRecording(). (Chromium Git Repositories)

Key methods (how display items get their pixels)

  • Recording: BeginRecording(const FloatRect&) → sk_sp<PaintRecord> EndRecording() — wraps a run of drawing commands for later replay. (Chromium Git Repositories)

  • Draw ops (representative): DrawRect, DrawImage(...), DrawText(...), BeginLayer/EndLayer — the stuff that becomes Skia ops inside display items. (Chromium Git Repositories)

Important fields

  • cc::PaintCanvas* canvas_ (owned by recorder), PaintRecorder paint_recorder_ — actual recording guts;

  • float device_scale_factor_, state stacks/flags — needed for correct pixel snapping/appearance. (Chromium Git Repositories)

Hands off to: PaintController, which packages these recorded ops into chunks/items.


Jaksot(394)

Browser Rendering: Calculating Draw Properties

Browser Rendering: Calculating Draw Properties

The source provides an extensive explanation of the internal browser rendering mechanism used in Blink and Chrome, specifically focusing on the CalculateDrawProperties algorithm. This process translat...

5 Loka 202539min

Chrome Compositor Transform Updates on Scroll

Chrome Compositor Transform Updates on Scroll

These sources provide an extensive technical explanation of how the Chrome compositor manages dynamic properties, specifically focusing on transformations and scrolling, using a structure called Prope...

4 Loka 202532min

Chrome Compositor Architecture: LayerTreeHost and LayerTreeHostImpl

Chrome Compositor Architecture: LayerTreeHost and LayerTreeHostImpl

The sources provide an extensive architectural overview of the Chrome cc compositor module, focusing on the collaboration between three critical classes: LayerTreeHost (LTH), LayerTreeHostImpl (LTHI),...

3 Loka 202534min

Chromium Blink's Layer Recycle Tree Optimization

Chromium Blink's Layer Recycle Tree Optimization

The sources provide an extensive technical explanation of the Chromium/Blink rendering pipeline, focusing specifically on the compositor's layer trees and a performance optimization known as the Recyc...

3 Loka 202529min

Chromium Compositor's CalculateDrawProperties: Scrolling and Overscroll

Chromium Compositor's CalculateDrawProperties: Scrolling and Overscroll

The sources provide an extremely detailed, line-by-line breakdown of the Chromium compositor function CalculateDrawProperties, explaining how it prepares the active layer tree for rendering. A primary...

3 Loka 202530min

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