Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 72773d6ba85502c8ac50d778341baa8e8d1dcdae
      
https://github.com/WebKit/WebKit/commit/72773d6ba85502c8ac50d778341baa8e8d1dcdae
  Author: Simon Fraser <[email protected]>
  Date:   2023-02-16 (Thu, 16 Feb 2023)

  Changed paths:
    M 
Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h

  Log Message:
  -----------
  [UI-side compositing] History swipe on pages with horizontal scrollers 
doesn't work
https://bugs.webkit.org/show_bug.cgi?id=252446
rdar://105525566

Reviewed by Tim Horton.

History swipes only happen if a gesture won't result in a scroll on the page, 
so on
pages that could potentially horizontally scroll, we need to tell the 
ViewGestureRecognizer
that the wheel event was never handled. For non-UI-side compositing, this 
happened via
`WebPageProxy::didReceiveEvent()`. For UI-side compositing, we need to run 
equivalent
code from WebPageProxy::handleWheelEvent() when the UI-side scrolling 
coordinator does
not handle the event.

We also need to push the "rubberbandable edges" state onto the ScrollingTree, 
just
like EventDispatcher does. These data reflect whether rubberbanding is allowed 
on an
edge, which is a combination of what the client wants (e.g. Safari's Continuous 
Reading List
can disable top and bottom rubberbanding), and whether there is a history item 
to swipe to.

Tested by swipe/pushstate-with-manual-scrollrestoration.html

* Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::handleWheelEvent):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::handleWheelEvent):
(WebKit::WebPageProxy::sendWheelEvent):
(WebKit::WebPageProxy::wheelEventWasNotHandled):
(WebKit::WebPageProxy::rubberBandableEdgesRespectingHistorySwipe const):
(WebKit::WebPageProxy::didReceiveEvent):
* Source/WebKit/UIProcess/WebPageProxy.h:

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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to