[webkit-changes] [WebKit/WebKit] 6555fc: [UI-side compositing] History swipes can fail if y...

Simon Fraser noreply at github.com
Fri Mar 31 14:08:56 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6555fc3844aa98b68a90c8d907f15ee1cd6bceb4
      https://github.com/WebKit/WebKit/commit/6555fc3844aa98b68a90c8d907f15ee1cd6bceb4
  Author: Simon Fraser <simon.fraser at apple.com>
  Date:   2023-03-31 (Fri, 31 Mar 2023)

  Changed paths:
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp
    M Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteScrollingTreeMac.mm
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.h
    M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.mm
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.h
    M Source/WebKit/WebProcess/WebPage/WebPage.messages.in

  Log Message:
  -----------
  [UI-side compositing] History swipes can fail if you swipe over an element with a wheel event handler
https://bugs.webkit.org/show_bug.cgi?id=254837
rdar://107481980

Reviewed by Tim Horton.

`ThreadedScrollingCoordinator::handleWheelEventForScrolling()` checks to see if the current event
can start a swipe gesture, and we need to do the same in `RemoteScrollingCoordinator::handleWheelEventForScrolling()`.

However, we don't have a scrolling tree to ask in the web process, so we need to feed this information
down from the UI Process. So plumb `willStartSwipe` through and check it.

Tested by `LayoutTests/swipe` tests.

* Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::continueWheelEventHandling):
* Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteScrollingTreeMac.mm:
(WebKit::RemoteScrollingTreeMac::waitForEventDefaultHandlingCompletion):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::handleWheelEvent):
(WebKit::WebPageProxy::continueWheelEventHandling):
(WebKit::WebPageProxy::sendWheelEvent):
(WebKit::WebPageProxy::wheelEventHandlingCompleted):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.h:
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.mm:
(WebKit::RemoteScrollingCoordinator::handleWheelEventForScrolling):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::handleWheelEvent):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:

Canonical link: https://commits.webkit.org/262439@main




More information about the webkit-changes mailing list