Dual Architecture of Blink Smooth Scroll Animators
Blink2861 Maalis

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.