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

Chromium Compositor Implementation of CSS Sticky Positioning

Chromium Compositor Implementation of CSS Sticky Positioning

In Chromium, sticky positioning is managed by the compositor thread to ensure smooth scrolling without relying on the main layout engine. The process begins on the main thread, where layout constraint...

31 Tammi 31min

Modern Web Scrolling: Mechanics of Driven and Triggered Animations

Modern Web Scrolling: Mechanics of Driven and Triggered Animations

Modern web standards are evolving to support scroll-driven animations, which tie the progress of visual effects directly to a user’s scroll position rather than a standard clock. Traditionally, these ...

31 Tammi 31min

Mastering Piper and CitC in the Google3 Monorepo

Mastering Piper and CitC in the Google3 Monorepo

This documentation provides a comprehensive overview of Piper, the proprietary version control system used to manage Google’s massive Google3 monorepo. It details how developers use CitC to create vir...

31 Tammi 31min

Mastering CSS Pseudo-Elements: A Comprehensive Technical Guide

Mastering CSS Pseudo-Elements: A Comprehensive Technical Guide

CSS pseudo-elements act as "phantom" nodes that allow developers to style specific fragments of a document, such as the first line of a paragraph or user text selections, without altering the HTML str...

30 Tammi 35min

Mastering CSS Compositing and Blending Mechanisms

Mastering CSS Compositing and Blending Mechanisms

This text explores the technical architecture and practical application of CSS compositing and blending, detailing how web browsers combine visual elements with their backgrounds. It distinguishes bet...

30 Tammi 32min

CSS Backgrounds and Borders: A Technical Deep Dive

CSS Backgrounds and Borders: A Technical Deep Dive

This technical documentation provides an extensive analysis of CSS background and border properties, detailing their behavior, syntax, and implementation within modern browser engines like Blink. The ...

30 Tammi 36min

Engineering CSS Anchor Positioning in the Chromium Blink Engine

Engineering CSS Anchor Positioning in the Chromium Blink Engine

The provided text describes the CSS Anchor Positioning API, a transformative layout feature implemented within the Chromium Blink engine. This technology shifts the responsibility for positioning elem...

28 Tammi 35min

8 View Transition Lifecycle, Debugging, and Failure Handling

8 View Transition Lifecycle, Debugging, and Failure Handling

This lecture excerpt explores the technical lifecycle of the View Transition API in the Blink engine, focusing on how transitions conclude and handle errors. It details how specific JavaScript promise...

27 Tammi 30min