Bug 185425

Summary: REGRESSION(r230743): Mousemove events are not coalesced properly, mousemove/drag is very laggy
Product: WebKit Reporter: Blaze Burg <bburg>
Component: DOMAssignee: Blaze Burg <bburg>
Status: RESOLVED FIXED    
Severity: Normal CC: bburg, cgarcia, simon.fraser, thorton, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
URL: https://bl.ocks.org/mbostock/4343214
Attachments:
Description Flags
Patch
none
For EWS
none
For EWS none

Blaze Burg
Reported 2018-05-08 09:00:01 PDT
Oops.
Attachments
Patch (2.73 KB, patch)
2018-05-08 09:16 PDT, Blaze Burg
no flags
For EWS (2.74 KB, patch)
2018-05-08 13:26 PDT, Blaze Burg
no flags
For EWS (2.68 KB, patch)
2018-05-08 14:06 PDT, Blaze Burg
no flags
Blaze Burg
Comment 1 2018-05-08 09:04:53 PDT
Blaze Burg
Comment 2 2018-05-08 09:16:39 PDT
Simon Fraser (smfr)
Comment 3 2018-05-08 10:43:58 PDT
Comment on attachment 339824 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=339824&action=review > Source/WebKit/UIProcess/WebPageProxy.cpp:1929 > + bool lastQueuedEventWasAMouseMove = m_mouseEventQueue.size() > 1 && m_mouseEventQueue.last().type() == WebEvent::MouseMove; Why not size() > 0 ? I would call it lastQueuedEventWasMouseMove or do away with the variable entirely.
Blaze Burg
Comment 4 2018-05-08 12:22:29 PDT
(In reply to Simon Fraser (smfr) from comment #3) > Comment on attachment 339824 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=339824&action=review > > > Source/WebKit/UIProcess/WebPageProxy.cpp:1929 > > + bool lastQueuedEventWasAMouseMove = m_mouseEventQueue.size() > 1 && m_mouseEventQueue.last().type() == WebEvent::MouseMove; > > Why not size() > 0 ? Events are dequeued when WebProcess is done handling them. If size 0, then nothing is being processed in WebProcess. If size 1, we sent the event and are waiting on the reply. If size 2, then the first event is being processed and the second event is queued and will be sent to WebProcess when the previous event is retired. So if there is only one event and it's a mousemove, we can't update it because it's already been sent. > I would call it lastQueuedEventWasMouseMove or do away with the variable > entirely.
Blaze Burg
Comment 5 2018-05-08 13:26:55 PDT
Blaze Burg
Comment 6 2018-05-08 14:06:54 PDT
Blaze Burg
Comment 7 2018-05-08 14:19:40 PDT
Lucas Forschler
Comment 8 2019-02-06 09:18:49 PST
Mass move bugs into the DOM component.
Note You need to log in before you can comment on or make changes to this bug.