Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 2a62dc2f4ea5e52e11f52f6a53a2fceeb3c20236
https://github.com/WebKit/WebKit/commit/2a62dc2f4ea5e52e11f52f6a53a2fceeb3c20236
Author: Abrar Rahman Protyasha <[email protected]>
Date: 2026-09-23 (Wed, 23 Sep 2026)
Changed paths:
M Source/WebCore/page/scrolling/ScrollingStateNode.h
M Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.cpp
M Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h
M Source/WebCore/page/scrolling/ScrollingTreeScrollingNodeDelegate.h
M Source/WebCore/page/scrolling/mac/ScrollerMac.h
M Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h
M Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm
M Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.h
M Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm
M Source/WebCore/platform/graphics/cocoa/WebCoreCALayerExtras.h
M Source/WebCore/platform/graphics/cocoa/WebCoreCALayerExtras.mm
M Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteScrollingTreeMac.mm
M Tools/TestWebKitAPI/Tests/WebKit/WebPage/AppKit Gesture
Tests/BasicAppKitGesturesTests.swift
M Tools/TestWebKitAPI/Tests/WebKit/WebPage/WebPageScrollbarTests.swift
Log Message:
-----------
[AppKit Gestures] quip.com: Cannot drag notification bar's scrollbar
https://bugs.webkit.org/show_bug.cgi?id=325063
rdar://187826694
Reviewed by Tim Horton and Richard Robinson.
The notification bar in quip.com is an overflow scroller, so we expect
that mouse tracking will win when dragging over its scrollbar. However,
isPointInScrollbar() only checked the main frame's scrollbars, so our
scrollbar dragging path did not work.
In this patch, we refactor isPointInScrollbar() to instead consult every
scrolling node's scrollbars (subframe, overflow, and plugins included).
Note that a scrollbar only counts if it's the front-most hittable layer
at a point. For overlay scrollbars, we chose to count them when the web
process considers them visible (ScrollerMac::visibilityChanged()) rather
than when their knob is drawn, and custom scrollbars always count.
In service of this patch, we do a couple of drive-by refactors:
1. We drop the PlatformLayerHolder type alias, which is a bit
duplicative in light of PlatformLayerContainer.
2. We convert LayerAndPoint from a std::pair type alias to a proper
struct. `.first/.second` does not read nearly as cleanly as
`.layer/.point` do; we needed to do one such field read in this PR.
Tests: Tools/TestWebKitAPI/Tests/WebKit/WebPage/AppKit Gesture
Tests/BasicAppKitGesturesTests.swift
Tools/TestWebKitAPI/Tests/WebKit/WebPage/WebPageScrollbarTests.swift
Canonical link: https://commits.webkit.org/321757@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications