Changeset 196264 in webkit
- Timestamp:
- Feb 8, 2016 11:41:09 AM (8 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r196260 r196264 1 2016-02-08 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 Infinite loop when processing mouse events synchronously 4 https://bugs.webkit.org/show_bug.cgi?id=153995 5 6 Reviewed by Darin Adler. 7 8 This happened with WTR in the GTK+ port after landing patch in bug 9 #153740. The thing is that WTR forces events handling IPC messages 10 to be synchronous. When a drag and drop operation is in progress, 11 the web process ignores mouse move events and replies with 12 DidReceiveEvent signal. The DidReceiveEvent message handler in 13 WebPageProxy checks if we have a m_nextMouseMoveEvent and handles 14 it, but when all this happens synchronously the 15 m_nextMouseMoveEvent is the current one because we haven't 16 returned yet from handleMouseEvent(). We need to invalidate the 17 m_nextMouseMoveEvent before calling handleMouseEvent(). 18 19 * UIProcess/WebPageProxy.cpp: 20 (WebKit::WebPageProxy::didReceiveEvent): 21 1 22 2016-02-08 Jeremy Jones <jeremyj@apple.com> 2 23 -
trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp
r196223 r196264 4577 4577 case WebEvent::MouseMove: 4578 4578 m_processingMouseMoveEvent = false; 4579 if (m_nextMouseMoveEvent) { 4580 handleMouseEvent(*m_nextMouseMoveEvent); 4581 m_nextMouseMoveEvent = nullptr; 4582 } 4579 if (m_nextMouseMoveEvent) 4580 handleMouseEvent(*std::exchange(m_nextMouseMoveEvent, nullptr)); 4583 4581 break; 4584 4582 case WebEvent::MouseDown:
Note: See TracChangeset
for help on using the changeset viewer.