WebKit Bugzilla
Attachment 339874 Details for
Bug 185425
: REGRESSION(r230743): Mousemove events are not coalesced properly, mousemove/drag is very laggy
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
For EWS
bug-185425-20180508140653.patch (text/plain), 2.68 KB, created by
BJ Burg
on 2018-05-08 14:06:54 PDT
(
hide
)
Description:
For EWS
Filename:
MIME Type:
Creator:
BJ Burg
Created:
2018-05-08 14:06:54 PDT
Size:
2.68 KB
patch
obsolete
>Subversion Revision: 231508 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 5b14e10b391baaee02a3e2bab2f76ca8d9a2bb10..ee258d0d5a61c09e77be2e436feaffd292a276d8 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,21 @@ >+2018-05-08 Brian Burg <bburg@apple.com> >+ >+ REGRESSION(r230743): Mousemove events are not coalesced properly, mousemove/drag is very laggy >+ https://bugs.webkit.org/show_bug.cgi?id=185425 >+ <rdar://problem/39323336> >+ >+ Reviewed by Simon Fraser. >+ >+ When mousemove events come in faster than they can be processed, we should coalesce >+ pending mousemoves that have not yet been sent to WebProcess. This has the effect of >+ processing the most recent mousemove location, which is the old behavior that regressed. >+ >+ * UIProcess/WebPageProxy.cpp: >+ (WebKit::WebPageProxy::handleMouseEvent): >+ If there is >1 event in the mouse queue, then the first one is being processed by WebProcess >+ and the second one is eligible for coalescing. Replace it if the last event and new event >+ are both mousemoves. >+ > 2018-05-08 Dean Jackson <dino@apple.com> > > System Preview links should trigger a download >diff --git a/Source/WebKit/UIProcess/WebPageProxy.cpp b/Source/WebKit/UIProcess/WebPageProxy.cpp >index 30d58605dd4d7a5ce5532b0efc666c302f09e12e..d7df4cf81669d23ec70f89f1a4e87d4fa4092aaf 100644 >--- a/Source/WebKit/UIProcess/WebPageProxy.cpp >+++ b/Source/WebKit/UIProcess/WebPageProxy.cpp >@@ -1928,8 +1928,16 @@ void WebPageProxy::handleMouseEvent(const NativeWebMouseEvent& event) > if (!isValid()) > return; > >- LOG(MouseHandling, "UIProcess: enqueued mouse event %s (queue size %zu)", webMouseEventTypeString(event.type()), m_mouseEventQueue.size()); >- m_mouseEventQueue.append(event); >+ // If we receive multiple mousemove events and the most recent mousemove event has not been >+ // sent to WebProcess for processing, replace the pending mousemove event with a new one. >+ if (event.type() == WebEvent::MouseMove && m_mouseEventQueue.size() > 1 && m_mouseEventQueue.last().type() == WebEvent::MouseMove) { >+ LOG(MouseHandling, "UIProcess: updated pending mousemove event (queue size %zu)", m_mouseEventQueue.size()); >+ m_mouseEventQueue.removeLast(); >+ m_mouseEventQueue.append(event); >+ } else { >+ LOG(MouseHandling, "UIProcess: enqueued mouse event %s (queue size %zu)", webMouseEventTypeString(event.type()), m_mouseEventQueue.size()); >+ m_mouseEventQueue.append(event); >+ } > if (m_mouseEventQueue.size() == 1) // Otherwise, called from DidReceiveEvent message handler. > processNextQueuedMouseEvent(); > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 185425
:
339824
|
339863
| 339874