blink::StyleEngine
Blink28610 Loka 2025

blink::StyleEngine

style invalidation & resolution (recalc). 
Given DOM/style changes since the last frame, StyleEngine computes updated ComputedStyles, manages active stylesheets/media query state, and marks the right subtrees dirty for style/layout. This sets up accurate inputs to layout. (Chromium Git Repositories)

Key fields

* StyleResolver* resolver_ — the style resolver used to compute ComputedStyles; created lazily. (Chromium Git Repositories)

* PendingInvalidations pending_invalidations_ — tracks nodes needing restyle due to stylesheet/DOM/class/attribute changes. (Chromium Git Repositories)

Most important methods (and how they push pixels forward)

* StyleResolver& EnsureResolver() — makes sure a resolver is ready before recalc. (Chromium Git Repositories)

* void UpdateActiveStyle() — updates active sheets/media‑query driven state before resolving. (Chromium Git Repositories)

* void RecalcStyle(StyleRecalcChange) — does the actual style recalc walk, marking what changed for layout/paint. (Chromium Git Repositories)

* A large set of ...ChangedForElement(...) and ScheduleInvalidations...(...) helpers — turn DOM/sheet churn into precise invalidations (minimizing layout/paint cost). (Chromium Git Repositories)

Hands off to: Layout (LayoutNG) with up‑to‑date ComputedStyle.

Jaksot(448)

FragmentBuilder: Architecture and Role

FragmentBuilder: Architecture and Role

In Blink’s LayoutNG engine, the FragmentBuilder class serves as a vital instrument for generating immutable fragment trees, which represent the final geometric output of the layout process. This syste...

2 Tammi 37min

ObjectPaintProperties: Linking Layout and Painting in Blink Engine

ObjectPaintProperties: Linking Layout and Painting in Blink Engine

In the Blink rendering engine, the ObjectPaintProperties structure serves as a vital bridge between the layout and painting phases. It functions by organizing specific visual property nodes—such as tr...

2 Tammi 33min

BoxFragmentBuilder and Layout Architecture in Blink's LayoutNG

BoxFragmentBuilder and Layout Architecture in Blink's LayoutNG

The provided text details the BoxFragmentBuilder, a vital component within the Blink LayoutNG engine that constructs physical representations of layout elements. It acts as a transitional bridge, taki...

2 Tammi 39min

Pseudo-Elements in Blink's Layout Tree

Pseudo-Elements in Blink's Layout Tree

In the Blink rendering engine, CSS pseudo-elements are managed through specialized C++ classes and internal structures that link them to their originating DOM elements. These entities are dynamically ...

2 Tammi 42min

Clip Nodes in the Blink and Chromium Compositor

Clip Nodes in the Blink and Chromium Compositor

The provided text explains how Chromium’s Blink engine and the compositor utilize clip nodes within property trees to manage page geometry and visual masking. These nodes define specific regions where...

2 Tammi 35min

Blink Runtime-Enabled Features in Chromium

Blink Runtime-Enabled Features in Chromium

Blink runtime-enabled features serve as internal configuration flags that allow Chromium developers to manage new web platform capabilities without rebuilding the browser. These flags facilitate safel...

1 Tammi 41min

Upward Propagation Mechanisms in Blink LayoutNG

Upward Propagation Mechanisms in Blink LayoutNG

The provided text explains how Chromium’s LayoutNG engine utilizes upward propagation to transfer critical layout data from child elements to their ancestors. By aggregating information such as intrin...

31 Joulu 202528min

Blink Sticky Positioning: Constraint Updates and Paint Invalidation

Blink Sticky Positioning: Constraint Updates and Paint Invalidation

The provided documentation details how the Blink rendering engine manages sticky positioning through specific methods within the PaintLayerScrollableArea class. It explains that the system first calcu...

30 Joulu 202530min