blink::WebFrameWidgetImpl
Blink2869 Loka 2025

blink::WebFrameWidgetImpl

renderer‑main entry to Blink’s lifecycle.


This is where a compositor BeginFrame (coming in via content/public and mojo plumbing) first turns into Blink work on the renderer main thread. It receives the frame tick, decides what lifecycle phases to run (e.g. style/layout/paint), and pushes the work into the local root’s LocalFrameView. (Chromium Git Repositories)

Key fields (why they matter)

* scoped_refptr root_layer_ — holds the Blink‑owned root cc layer for this widget’s subtree; exists so Blink can update properties before the commit boundary. (Chromium Git Repositories)

* std::unique_ptr animation_host_ — lets main‑thread animations be driven and ticked in sync with lifecycle updates. (Chromium Git Repositories)

* std::unique_ptr layer_tree_view_ — the view side of the compositor connection that WebFrameWidgetImpl closes/tears down when the widget goes away. (Chromium Git Repositories)

Most important methods (how they advance the pixel)

* void BeginMainFrame(base::TimeTicks last_frame_time) — entry point for a new main‑thread frame; schedules lifecycle phase execution in Blink. (Chromium Git Repositories)

* void UpdateLifecycle(WebLifecycleUpdate requested_update, DocumentUpdateReason reason) — runs the Blink lifecycle (style → layout → pre‑paint/paint) as needed for this frame. (Chromium Git Repositories)

* void RecordEndOfFrameMetrics(base::TimeTicks frame_begin_time) — stamps timing for UMA/UKM; not directly pixel‑producing but tied to the same lifecycle boundary. (Chromium Git Repositories)

Hands off to: LocalFrameView of the local root to perform style/layout/paint.

Jaksot(403)

LayerTreeHost Core Lifecycle and Commit Methods

LayerTreeHost Core Lifecycle and Commit Methods

The provided text comprises extensive documentation of the LayerTreeHost class, a foundational component in a compositing system (likely Chromium's cc layer). It thoroughly details the object's lifecy...

18 Marras 202543min

Layer Tree Host Impl: Core Compositor Pipeline

Layer Tree Host Impl: Core Compositor Pipeline

The sources provide detailed excerpts from the C++ implementation of the LayerTreeHostImpl class, a fundamental component of the Chromium compositor that manages rendering operations and state on the ...

17 Marras 202542min

cc Elastic Overscroll Architecture Deep Dive

cc Elastic Overscroll Architecture Deep Dive

The source provides an architectural overview of how elastic overscroll (the "rubber-banding" effect) is implemented within the Chromium Compositor (CC) for both the main viewport and individual scrol...

16 Marras 202533min

SyncedProperty: Cross-Thread Compositor Synchronization

SyncedProperty: Cross-Thread Compositor Synchronization

The source provides a detailed technical exploration of SyncedProperty, a critical synchronization mechanism within Chromium's compositor (cc) designed to manage properties updated concurrently on bot...

16 Marras 202532min

Blink's PendingLayer: Bridge Between Paint and Compositor

Blink's PendingLayer: Bridge Between Paint and Compositor

The document provides an extensive technical overview of the PendingLayer class, a critical internal component within Blink’s Composite After Paint (CAP) architecture. PendingLayer acts as a liaison, ...

15 Marras 202530min

RasterSource and Rendering Pipeline

RasterSource and Rendering Pipeline

The source provides an extensive technical overview of the RasterSource concept within the Chromium browser's rendering pipeline. This component serves as a crucial, immutable, and thread-safe contain...

14 Marras 202532min

Containing Blocks in CSS and Blink Layout

Containing Blocks in CSS and Blink Layout

The source provides a highly technical, in-depth analysis of the concept of containing blocks in CSS layout, explaining how these invisible boundaries determine the sizing and positioning of elements,...

13 Marras 202554min

Chromium Compositor Scroll and Gesture Event Handling

Chromium Compositor Scroll and Gesture Event Handling

The source text explains how Chromium handles gesture and scroll events within its input pipeline, particularly focusing on the interaction between the Blink/UI thread and the compositor thread. It de...

12 Marras 202536min