Blink's Rendering: Fragment Tree to Layer Tree Conversion
Blink2865 Syys 2025

Blink's Rendering: Fragment Tree to Layer Tree Conversion

The provided text details Blink's rendering pipeline, specifically focusing on the conversion of the Fragment Tree to the Layer Tree within Chromium's RenderingNG architecture. It explains how layout outputs, captured as an immutable Fragment Tree, are processed through a Pre-Paint phase to build paint property trees (for transforms, clips, effects, and scrolls). Subsequently, the Paint phase generates display items grouped into paint chunks, each associated with a property tree state. Finally, the layerization algorithm (handled by the PaintArtifactCompositor) evaluates these paint chunks, applying merging heuristics and compositing reasons, to create a cc::Layer tree ready for GPU rasterization and display, with CompositorElementIds ensuring efficient synchronization for animations and scrolling.

Jaksot(391)

Chromium Architecture: Input, Synchronization, and Animation Pipelines

Chromium Architecture: Input, Synchronization, and Animation Pipelines

These sources provide an extensive architectural overview of the core C++ classes that implement Chromium's input handling, synchronization, and animation systems. The documents detail the multi-proce...

25 Syys 202540min

CSS View Transition Pseudo-elements Explained

CSS View Transition Pseudo-elements Explained

These sources provide a detailed, technical explanation of the View Transition API implementation within the Chromium web browser, focusing on how CSS pseudo-elements enable smooth animations. The fir...

24 Syys 202538min

gpu::SkiaOutputSurfaceImplOnGpu / gpu::CommandBuffer

gpu::SkiaOutputSurfaceImplOnGpu / gpu::CommandBuffer

Bridges Skia’s recorded commands to the GPU command buffer; submits and SwapBuffers to present. (Backend: GL/Vulkan/Metal via GPU process.)

23 Syys 202532min

viz::SkiaRenderer

viz::SkiaRenderer

Renderer that turns quads into Skia operations (recording DDLs / drawing to the output surface).

23 Syys 202552min

viz::Display

viz::Display

The display compositor that walks the aggregated render passes and issues draw commands for the final output.

23 Syys 202538min

cc::LayerTreeHostImpl (Input Handler & Scroll Logic)

cc::LayerTreeHostImpl (Input Handler & Scroll Logic)

Scroll processing and overscroll detection in the compositor. The LayerTreeHostImpl in cc implements the compositor-thread InputHandler that processes gesture scroll updates and flings. It manages the...

23 Syys 202527min

blink::EventHandler (Blink core input handling)

blink::EventHandler (Blink core input handling)

Scroll chain builder and overscroll chaining logic. Blink’s EventHandler is responsible for building the scroll chain (the sequence of nested scrollable ancestors) when the user scrolls an element . I...

23 Syys 202526min

blink::ElasticOverscrollController

blink::ElasticOverscrollController

Overscroll orchestration and animation. This Blink-side controller manages the rubber-banding (elastic stretch and rebound) effect when a scrollable area is overscrolled. It observes gesture scroll ev...

23 Syys 202526min