Re-entrancy in PassthroughTouchEventQueue fragile. |
|||
Issue descriptionI'm attempting to fix the way we deal with unique touch event ids, and it's causing the PassThroughTouchEventQueue to break. In particular, when InputRouterImpl::SendGestureEvent receives a gesture scroll begin, it calls PassThroughTouchEventQueue::PrependTouchScrollNotification, and then queues the event. However, the call to PrependTouchScrollNotification can cause later gestures to be dispatched, resulting in out of order gesture dispatch. I've attached the patch which tickles this behavior.
,
Apr 13 2017
Issue 600773 (which I closed because it was about an old code) has some debug dump some of which could still be useful here.
,
Apr 18 2017
I don't think this patch actually works because you will end up double ack'ng non-blocking events that have already been ack'd. Perhaps that is causing the issue.
,
Apr 18 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7df0af6216babebfbe1a71090bac6b8397d9ae7c commit 7df0af6216babebfbe1a71090bac6b8397d9ae7c Author: dtapuska <dtapuska@chromium.org> Date: Tue Apr 18 20:57:10 2017 Fix recursion in handling touch input events acks. Event ack notification could cause some issues due to recursion. Add a test ensuring that the recursion doesn't occur. BUG= 711325 Review-Url: https://codereview.chromium.org/2826673005 Cr-Commit-Position: refs/heads/master@{#465367} [modify] https://crrev.com/7df0af6216babebfbe1a71090bac6b8397d9ae7c/content/browser/renderer_host/input/passthrough_touch_event_queue.cc [modify] https://crrev.com/7df0af6216babebfbe1a71090bac6b8397d9ae7c/content/browser/renderer_host/input/passthrough_touch_event_queue.h [modify] https://crrev.com/7df0af6216babebfbe1a71090bac6b8397d9ae7c/content/browser/renderer_host/input/passthrough_touch_event_queue_unittest.cc
,
Apr 19 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/401d48085b5a5db8bab875c9a6732f61f23a42b1 commit 401d48085b5a5db8bab875c9a6732f61f23a42b1 Author: dtapuska <dtapuska@chromium.org> Date: Wed Apr 19 01:28:38 2017 Fix latency info tracking for coalesced events. Keep the oldest touch event id so the latency info will be associated with that object. Don't adjust the dispatch type for an event that gets coalesced since it it should carry the same type as the touch id ack. BUG= 711325 Review-Url: https://codereview.chromium.org/2822293002 Cr-Commit-Position: refs/heads/master@{#465457} [modify] https://crrev.com/401d48085b5a5db8bab875c9a6732f61f23a42b1/content/renderer/input/main_thread_event_queue.cc [modify] https://crrev.com/401d48085b5a5db8bab875c9a6732f61f23a42b1/content/renderer/input/main_thread_event_queue_unittest.cc [modify] https://crrev.com/401d48085b5a5db8bab875c9a6732f61f23a42b1/ui/events/blink/blink_event_util.cc
,
Apr 19 2017
|
|||
►
Sign in to add a comment |
|||
Comment 1 by tdres...@chromium.org
, Apr 13 2017