Dual Architecture of Blink Smooth Scroll Animators
Blink2861 Mars

Dual Architecture of Blink Smooth Scroll Animators

The provided text explains how the Blink rendering engine manages scrolling by utilizing two distinct animation controllers within the ScrollableArea class. One controller, the ScrollAnimatorBase, is dedicated to user-driven input like mouse wheels, while the ProgrammaticScrollAnimator handles web API requests and CSS-driven smooth scrolling. These systems remain separate because they utilize different state machines, logic for target updates, and coordination methods with the compositor thread. To ensure a smooth experience, the engine typically cancels one animation type when the other begins, preventing conflicting movements. This architectural split allows the engine to accurately report scroll types and maintain precise control over frame-based updates. Ultimately, the dual-animator design provides the necessary flexibility to distinguish between continuous human interaction and fixed-destination scripted commands.

Avsnitt(497)

cc::PropertyTrees

cc::PropertyTrees

(TransformTree / ClipTree / EffectTree / ScrollTree) with nodes cc::TransformNode / ClipNode / EffectNode / ScrollNode — The impl‑side property‑tree state that positions, clips, blends, and scrolls co...

22 Sep 202534min

cc::LayerTreeHostImpl

cc::LayerTreeHostImpl

The compositor‑thread twin that owns the active/pending trees, runs impl‑side animations/scroll, and prepares draw. Implements cc::InputHandler for threaded scrolling/pinch.

22 Sep 202546min

main —> impl cc::LayerTreeHost

main —> impl cc::LayerTreeHost

Packages updated layers/property trees; kicks a commit to the compositor thread (via the proxy).

22 Sep 202536min

blink::PropertyTreeManager

blink::PropertyTreeManager

Bridges Blink’s paint property trees into cc property trees: creates/updates cc TransformNode, ClipNode, EffectNode, and ScrollNode (including inner/outer viewport scroll nodes).

22 Sep 202539min

blink::PaintArtifactCompositor

blink::PaintArtifactCompositor

Decides what needs to be composited and prepares the main‑thread representation to feed cc (layers if needed, scrollbar compositing, etc.).

22 Sep 202542min

blink::PaintArtifact

blink::PaintArtifact

The immutable package of paint chunks + display items for this frame, used to drive compositing without re‑painting.

21 Sep 202536min

blink::TransformPaintPropertyNode / ClipPaintPropertyNode / EffectPaintPropertyNode / ScrollPaintPropertyNode

blink::TransformPaintPropertyNode / ClipPaintPropertyNode / EffectPaintPropertyNode / ScrollPaintPropertyNode

The paint property trees captured during painting (transform, clip, effect/opacity, scroll offset) that define visual & coordinate‑space state.

21 Sep 202541min

blink::PaintController

blink::PaintController

Records drawing into a DisplayItemList, segmenting it into PaintChunks keyed by property‑tree state. (Output: a PaintArtifact.)

21 Sep 202533min

Populärt inom Teknik

uppgang-och-fall
elbilsveckan
bilar-med-sladd
market-makers
rss-uppgang-och-fall
rss-elektrikerpodden
rss-veckans-ai
skogsforum-podcast
gubbar-som-tjotar-om-bilar
developers-mer-an-bara-kod
rss-laddstationen-med-elbilen-i-sverige
rss-powerboat-sverige-podcast
hej-bruksbil
rss-technokratin
rss-en-ai-till-kaffet
har-vi-akt-till-mars-an
bli-saker-podden
natets-morka-sida
rss-snacka-om-ai
rss-digitala-influencer-podden