[Webkit-unassigned] [Bug 173354] [Mac] Don't use the scrolling tree to handle wheel events when it contains transforms

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Jun 14 02:08:41 PDT 2017


https://bugs.webkit.org/show_bug.cgi?id=173354

Frédéric Wang (:fredw) <fred.wang at free.fr> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
                 CC|                            |fred.wang at free.fr
           Assignee|webkit-unassigned at lists.web |fred.wang at free.fr
                   |kit.org                     |

--- Comment #1 from Frédéric Wang (:fredw) <fred.wang at free.fr> ---
Created attachment 312871

  --> https://bugs.webkit.org/attachment.cgi?id=312871&action=review

Patch

(In reply to Frédéric Wang (:fredw) from comment #30)
> Created attachment 311503 [details]
> Patch (do not use async scrolling when there are transformed nodes)
> 
> This is an attempt to avoid async scrolling when there are transformed
> nodes, but it does not work.

I debugged this again and my attempt was actually correct... When there is a transform on the scrolling tree, ScrollingTree::shouldHandleWheelEventSynchronously will return true, tryToHandleWheelEvent will return SendToMainThread and EventDispatcher will thus pass the event to the main thread instead of calling ScrollingTree::handleWheelEvent. However, at the end the the following call stack is executed:

ScrollingTree::handleWheelEvent (scrolling thread)
ThreadedScrollingTree::handleWheelEvent (scrolling thread)
ScrollingCoordinatorMac::handleWheelEvent (main thread)
FrameView::wheelEvent (main thread)
EventHandlerMac's EventHandler::platformCompleteWheelEvent (main thread)
EventHandler::handleWheelEvent (main thread)

so the event is still handled by the scrolling thread!

@Simon: I commented the guilty part out in FrameView::wheelEvent, so that ScrollableArea::handleWheelEvent is called instead and things work as I expected, but I wonder what would be the proper way to fix that?

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20170614/a76de0e3/attachment.html>


More information about the webkit-unassigned mailing list