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

Reply via email to