Summary: | [Mac] Don't use the scrolling tree to handle wheel events when it contains transforms that are not axis-aligned | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Frédéric Wang (:fredw) <fred.wang> | ||||||
Component: | Frames | Assignee: | Frédéric Wang (:fredw) <fred.wang> | ||||||
Status: | ASSIGNED --- | ||||||||
Severity: | Normal | CC: | fred.wang, rbuis, simon.fraser, webkit-bug-importer | ||||||
Priority: | P2 | Keywords: | InRadar | ||||||
Version: | Other | ||||||||
Hardware: | Unspecified | ||||||||
OS: | Unspecified | ||||||||
Bug Depends on: | 172917 | ||||||||
Bug Blocks: | 171667 | ||||||||
Attachments: |
|
Description
Frédéric Wang (:fredw)
2017-06-14 00:59:49 PDT
Created attachment 312871 [details] 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? Created attachment 355487 [details]
Patch
Rebasing...
We'll need this at some point (I am not working on this currently). |