ladybird/Libraries/LibWeb
Aliaksandr Kalenik 21245e7adb LibWeb: Follow paint order for async wheel hit testing
Async wheel routing used scroll node scrollports as the hit-test
surface. That works while the scrollable content is the topmost content
under the pointer, but it ignores the rest of the painted scene. A
sibling with a higher z-index can visually cover a nested scroller
without being part of that scroller's subtree. In that case the
compositor could still pick the covered scroller from its scrollport
rect and consume the wheel event, even though normal hit testing would
target the covering element and let the page or an ancestor handle the
scroll.

Record wheel hit-test targets as display-list metadata in paint order
and resolve each target to the scroll frame that should receive wheel
deltas. The compositor can then walk those targets from front to back,
preserve non-passive wheel regions as main-thread barriers, and only
scroll the node associated with the topmost hit-testable box.
2026-05-14 15:32:03 +02:00
..
Animations LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
ARIA LibWeb: Shave 168 bytes off of ARIAMixin 2025-11-07 16:59:26 +01:00
Bindings LibWeb: Decouple ModuleScript from WebAssemblyModule 2026-05-14 12:19:38 +02:00
Clipboard LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
Compositor LibWeb: Follow paint order for async wheel hit testing 2026-05-14 15:32:03 +02:00
Compression LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
ContentSecurityPolicy LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
CookieStore LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
CredentialManagement LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
Crypto LibWeb: Treat raw-public key format as raw for all asymmetric algorithms 2026-05-12 13:58:38 +02:00
CSS LibWeb: Templatize for_each_matching_attribute callback 2026-05-14 13:28:19 +02:00
DOM LibWeb: Implement the required virtual owner_cell() on HTMLCollection 2026-05-14 13:27:56 +01:00
DOMURL LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
Editing LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
Encoding LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
EncryptedMediaExtensions LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
EntriesAPI LibWeb/Bindings: Emit one bindings header and cpp per IDL 2026-04-21 07:36:13 +02:00
EventTiming LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
Fetch LibWeb: Ignore stale link fetch body callbacks 2026-05-13 20:54:10 +02:00
FileAPI LibJS+LibWeb: Allow instantiating DataBlock with an external buffer 2026-05-10 16:41:42 +02:00
Fullscreen LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
Gamepad LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
Geolocation LibWeb: Support Geolocation permission 2026-05-11 21:01:01 +02:00
Geometry LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
GPC
HighResolutionTime LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
HTML LibWeb: Decouple ModuleScript from WebAssemblyModule 2026-05-14 12:19:38 +02:00
IndexedDB LibWeb: Seek IndexedDB record ranges 2026-05-11 11:01:46 +02:00
Infra LibTextCodec+LibWeb: Move isomorphic coders to LibTextCodec 2025-11-27 14:57:29 +01:00
Internals LibWeb: Follow paint order for async wheel hit testing 2026-05-14 15:32:03 +02:00
IntersectionObserver LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
Layout LibWeb: Preserve column indices across colgroups 2026-05-14 12:41:54 +01:00
Loader LibWeb+RequestServer: Send cached bytecode with responses 2026-05-06 08:20:06 +02:00
MathML LibWeb: Rename HTMLOrSVGElement to HTMLOrSVGOrMathMLElement 2026-05-06 17:42:36 +01:00
MediaCapabilitiesAPI LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
MediaCapture LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
MediaSourceExtensions LibMedia+LibWeb: Speculatively find keyframes near fast seek targets 2026-05-13 02:05:35 -05:00
MimeSniff LibHTTP+LibWeb+RequestServer: Move Fetch's HTTP header infra to LibHTTP 2025-11-27 14:57:29 +01:00
MixedContent LibWeb: Reduce recompilation impact of DOM/Document.h 2026-02-11 20:02:28 +01:00
NavigationTiming LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
NotificationsAPI LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
Page LibWeb: Rebuild async scrolling from display list 2026-05-13 18:36:07 +02:00
Painting LibWeb: Follow paint order for async wheel hit testing 2026-05-14 15:32:03 +02:00
PerformanceTimeline LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
PermissionsAPI LibWeb: Support Geolocation permission 2026-05-11 21:01:01 +02:00
PermissionsPolicy LibWeb/PermissionsPolicy: Allow autoplay of file:// media from file:// 2026-03-01 01:04:10 +01:00
Platform LibWeb: Keep active platform timers alive during GC 2026-05-10 10:58:11 +02:00
ReferrerPolicy LibWeb: Store HTTP methods and headers as ByteString 2025-11-26 09:15:06 -05:00
RequestIdleCallback LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
ResizeObserver LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
ResourceTiming LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
Rust LibWeb: Stream Rust CSS tokenizer tokens over FFI 2026-05-03 17:22:17 +02:00
SecureContexts LibWebView: Add bookmark import/export to about:bookmarks 2026-04-22 08:02:15 -04:00
Selection LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00
Serial LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
ServiceWorker LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
Speech LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
SRI
StorageAPI LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
Streams LibJS+LibWeb: Allow instantiating DataBlock with an external buffer 2026-05-10 16:41:42 +02:00
SVG LibWeb: Inline paint styles in display list commands 2026-05-10 19:49:29 +02:00
TrustedTypes LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
UIEvents LibWeb: Scroll the viewport on the compositor thread 2026-05-12 20:57:08 +02:00
URLPattern LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
UserTiming LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
ViewTransition LibGfx+LibWeb: Make DecodedImageFrame a value type 2026-05-07 16:08:13 +02:00
WebAssembly LibWasm+LibWeb: Properly track module lifetime with function refs 2026-05-10 16:41:42 +02:00
WebAudio LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
WebDriver LibGC: Move Web::WebDriver::HeapTimer to GC::Timer 2026-05-10 10:58:11 +02:00
WebGL LibJS+LibWeb: Allow instantiating DataBlock with an external buffer 2026-05-10 16:41:42 +02:00
WebIDL LibJS+LibWeb: Allow instantiating DataBlock with an external buffer 2026-05-10 16:41:42 +02:00
WebSockets LibJS+LibWeb: Allow instantiating DataBlock with an external buffer 2026-05-10 16:41:42 +02:00
WebVTT LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
WebXR LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
Worker LibWeb: Keep worker startup reachable until script load completes 2026-04-27 18:02:49 +02:00
XHR LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
XLink
XML LibWeb: Set fragment scripting mode from the context document 2026-04-14 23:01:36 +02:00
XPath LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
CMakeLists.txt LibWeb: Add compositor scroll state snapshots 2026-05-12 20:57:08 +02:00
Dump.cpp LibWeb/CSS: Insert a combinator before all pseudo-element selectors 2026-05-13 11:03:02 +01:00
Dump.h LibWeb: Rename show_cascaded_properties flag in dump_tree() 2026-05-05 16:02:23 +02:00
Forward.h LibWeb: Add EmptyOptionalStyleValue 2026-05-13 11:26:20 +01:00
GraphemeEdgeTracker.cpp LibWeb: Use the ASCII line segmenter for eligible text 2026-05-05 18:59:07 +02:00
GraphemeEdgeTracker.h LibWeb: Expose GraphemeEdgeTracker's find_line_start/find_line_end 2026-02-06 14:18:10 +00:00
idl_files.cmake LibWeb: Add basics for the Permissions API 2026-05-11 21:01:01 +02:00
InvalidateDisplayList.h
Namespace.cpp
Namespace.h
PixelUnits.cpp LibWeb: Inline CSSPixels methods and optimize device pixel math 2026-02-21 15:53:22 +01:00
PixelUnits.h LibWeb: Fix precision loss in CSSPixelFraction::to_float/to_double 2026-03-22 14:09:22 -05:00
RefCountedTreeNode.h LibWeb: Add RefCountedTreeNode 2026-05-07 15:03:44 +02:00
TraversalDecision.h
TraversalOrder.h
TreeNode.h LibWeb: Make Paintable tree ref-counted 2026-05-07 15:03:44 +02:00