Changeset 231511 in webkit
- Timestamp:
- May 8, 2018 2:19:36 PM (6 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r231510 r231511 1 2018-05-08 Brian Burg <bburg@apple.com> 2 3 REGRESSION(r230743): Mousemove events are not coalesced properly, mousemove/drag is very laggy 4 https://bugs.webkit.org/show_bug.cgi?id=185425 5 <rdar://problem/39323336> 6 7 Reviewed by Simon Fraser. 8 9 When mousemove events come in faster than they can be processed, we should coalesce 10 pending mousemoves that have not yet been sent to WebProcess. This has the effect of 11 processing the most recent mousemove location, which is the old behavior that regressed. 12 13 * UIProcess/WebPageProxy.cpp: 14 (WebKit::WebPageProxy::handleMouseEvent): 15 If there is >1 event in the mouse queue, then the first one is being processed by WebProcess 16 and the second one is eligible for coalescing. Replace it if the last event and new event 17 are both mousemoves. 18 1 19 2018-05-08 Per Arne Vollan <pvollan@apple.com> 2 20 -
trunk/Source/WebKit/UIProcess/WebPageProxy.cpp
r231507 r231511 1929 1929 return; 1930 1930 1931 LOG(MouseHandling, "UIProcess: enqueued mouse event %s (queue size %zu)", webMouseEventTypeString(event.type()), m_mouseEventQueue.size()); 1932 m_mouseEventQueue.append(event); 1931 // If we receive multiple mousemove events and the most recent mousemove event has not been 1932 // sent to WebProcess for processing, replace the pending mousemove event with a new one. 1933 if (event.type() == WebEvent::MouseMove && m_mouseEventQueue.size() > 1 && m_mouseEventQueue.last().type() == WebEvent::MouseMove) { 1934 LOG(MouseHandling, "UIProcess: updated pending mousemove event (queue size %zu)", m_mouseEventQueue.size()); 1935 m_mouseEventQueue.removeLast(); 1936 m_mouseEventQueue.append(event); 1937 } else { 1938 LOG(MouseHandling, "UIProcess: enqueued mouse event %s (queue size %zu)", webMouseEventTypeString(event.type()), m_mouseEventQueue.size()); 1939 m_mouseEventQueue.append(event); 1940 } 1933 1941 if (m_mouseEventQueue.size() == 1) // Otherwise, called from DidReceiveEvent message handler. 1934 1942 processNextQueuedMouseEvent();
Note: See TracChangeset
for help on using the changeset viewer.