blink::EventHandler (Blink core input handling)
Blink28623 Syys 2025

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 . It determines how scroll events propagate up through parent containers and when to terminate the chain. Crucially, it respects the CSS overscroll-behavior of each element to decide if overscroll should propagate or stop at that element. For example, if an inner element is scrolled to its boundary, by default the scroll chains to its parent – but if that element’s style has overscroll-behavior: contain or none, the chain is broken and the overscroll is handled locally . To implement non-root elastic overscroll, one must modify how EventHandler (and associated scroll logic) interprets these style flags and sends overscroll events: instead of always bubbling to the root, it should allow an overscroll at the element itself when appropriate. In short, EventHandler is where the blink style system meets input: it ensures the scroll chain and overscroll-behavior rules are applied, so the developer must understand it to route overscroll to non-root scrollers.

Jaksot(392)

Blink’s Scrolling Engine: The PaintLayerScrollableArea Deep Dive

Blink’s Scrolling Engine: The PaintLayerScrollableArea Deep Dive

The provided text explains the PaintLayerScrollableArea, a central component within the Blink rendering engine that manages scrolling for web elements and viewports. It describes how this object bridg...

30 Joulu 202531min

Understanding PropagatedData in Blink’s LayoutNG Fragment Tree

Understanding PropagatedData in Blink’s LayoutNG Fragment Tree

In Blink’s LayoutNG engine, PropagatedData serves as a specialized, light-weight container used to carry critical layout information upward through the fragment tree. This garbage-collected object is ...

30 Joulu 202530min

Self-Painting Layers in Blink: Architecture and Implementation Decisions

Self-Painting Layers in Blink: Architecture and Implementation Decisions

In the Blink rendering engine, PaintLayers form a specialized hierarchy used to manage the visual assembly of a webpage, separate from the standard layout tree. These layers are created for elements r...

30 Joulu 202539min

[EXTENDED] PaintLayer Parent Hierarchies in the Blink Rendering Engine

[EXTENDED] PaintLayer Parent Hierarchies in the Blink Rendering Engine

In the Blink rendering engine, the PaintLayer system utilizes multiple hierarchical relationships to manage how web content is displayed and organized. While the structural parent defines the primary ...

30 Joulu 202536min

PaintLayer Parent Hierarchies in the Blink Rendering Engine

PaintLayer Parent Hierarchies in the Blink Rendering Engine

The provided text details the Blink rendering engine’s PaintLayer system, specifically focusing on the complex "parent" hierarchies used to manage web page display. It explains that while the structur...

29 Joulu 202532min

Blink PrePaint: Fragment Traversal and Paint Property Tree Construction

Blink PrePaint: Fragment Traversal and Paint Property Tree Construction

The provided text explains the PrePaint phase within Blink’s rendering engine, a critical stage where the system prepares for visual output by invalidating old paint and building property trees. Durin...

29 Joulu 202559min

Blink Core Paint Rendering Architecture

Blink Core Paint Rendering Architecture

This documentation details the Blink rendering engine's process for converting a LayoutObject tree into a format the compositor can process. The operation is split into two primary phases: PrePaint, w...

29 Joulu 202541min

Architectural Guide to the Blink PaintLayer System

Architectural Guide to the Blink PaintLayer System

The Blink PaintLayer system serves as a specialized infrastructure within the Chromium rendering engine designed to manage complex visual tasks like stacking, clipping, and compositing. Instead of cre...

29 Joulu 202528min