Current Overscroll System Architecture Deep Dive
Blink28629 Sep 2025

Current Overscroll System Architecture Deep Dive

The provided document offers an in-depth technical architectural overview of the overscroll system, primarily within the Chromium browser. It explains how browsers handle scroll gestures that go beyond content boundaries to produce effects like elastic bounce, pull-to-refresh, and history navigation (overscroll navigation). Central to this system is the OverscrollController, which resides in the browser process and manages gesture state, working in conjunction with an OverscrollControllerDelegate to execute high-level actions such as reloading a page or navigating history. Furthermore, the document details the compositor's role in generating smooth, platform-consistent visual feedback, like the rubber-banding effect, often using off-main-thread animations for performance. Finally, it notes that developers can use the CSS overscroll-behavior property to customize or disable these built-in browser effects.

Avsnitt(403)

blink::TransformPaintPropertyNode / ClipPaintPropertyNode / EffectPaintPropertyNode / ScrollPaintPropertyNode

blink::TransformPaintPropertyNode / ClipPaintPropertyNode / EffectPaintPropertyNode / ScrollPaintPropertyNode

These are the nodes within those four trees. Every piece of painted content (a “paint chunk”) is associated with a tuple of (Transform, Clip, Effect, Scroll) nodes—its PropertyTreeState. This precisel...

10 Okt 202533min

blink::PaintPropertyTreeBuilder

blink::PaintPropertyTreeBuilder

builds/updates paint property trees.Consumes the layout/fragment data and produces the four paint property trees (Transform, Clip, Effect, Scroll) for the current frame. These trees encode coordinate ...

10 Okt 202547min

blink::PrePaintTreeWalk

blink::PrePaintTreeWalk

cross‑frame pre‑paint traversal. Runs in the InPrePaint lifecycle phase. Walks the entire layout tree starting at the root LocalFrameView, updating paint invalidation state and computing the context n...

10 Okt 202531min

blink::NGPhysicalFragment and friends

blink::NGPhysicalFragment and friends

Layout takes the styled DOM and produces a fragment tree of positioned boxes. In modern Blink this is LayoutNG; the core artifact is NGPhysicalFragment, which stores geometry and is used downstream fo...

10 Okt 202537min

blink::StyleEngine

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 ...

10 Okt 202534min

blink::Document & blink::DocumentLifecycle

blink::Document & blink::DocumentLifecycle

states that gate phases. The document owns the DOM and keeps a DocumentLifecycle state machine that ensures we do things in phase order (style before layout, pre‑paint before paint, etc.). Lifecycle t...

10 Okt 202535min

blink::LocalFrameView

blink::LocalFrameView

orchestrates style → layout → pre‑paint/paint for a frame. This is the workhorse that actually runs lifecycle phases. On a frame tick from WebFrameWidgetImpl, it goes through style recalc, layout (Lay...

9 Okt 202544min

blink::LocalFrame

blink::LocalFrame

the document host and local‑root boundary.
The local frame owns the Document and its LocalFrameView. The local root frame coordinates lifecycle for its subtree (including OOPIF boundaries handled late...

9 Okt 202532min

Populärt inom Teknik

uppgang-och-fall
bilar-med-sladd
market-makers
elbilsveckan
rss-elektrikerpodden
bosse-bildoktorn-och-hasse-p
rss-veckans-ai
skogsforum-podcast
rss-laddstationen-med-elbilen-i-sverige
natets-morka-sida
bli-saker-podden
garagehang
developers-mer-an-bara-kod
rss-it-sakerhetspodden
rss-digitala-influencer-podden
rss-en-ai-till-kaffet
rss-technokratin
toms-laskpodd-och-annat
cyber-chats-chill
rss-racevecka