Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(218)

Issue 586553002: Allow repeated handler removal/addition with the TouchEventQueue (Closed)

Created:
6 years, 3 months ago by jdduke (slow)
Modified:
6 years, 3 months ago
Reviewers:
sadrul, Rick Byers
CC:
chromium-reviews, darin-cc_chromium.org, jdduke+watch_chromium.org, jam
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Project:
chromium
Visibility:
Public.

Description

Allow repeated handler removal/addition with the TouchEventQueue A valid scenario, observed in the wild, is a touchstart handler removing itself and adding a touchmove handler. If those are the only touch handlers on the document, the renderer will forward two distinct handler existence notifications to the browser. This causes the TouchEventQueue to effectively drop the remainder of the touch sequence, even though the element targetted by the touchstart now has a touchmove. Fix this scenario by making the TouchEventQueue effectively idempotent to repeated addition and removal of touch handlers. In practice, this means simplifying its statefulness and instead relying on the existing pointer id state map to determine whether to forward touches for the remainder of the sequence. BUG=412723 Committed: https://crrev.com/c883176fd86dee2be74dd5e3c6a101f0e4f93bee Cr-Commit-Position: refs/heads/master@{#296205}

Patch Set 1 #

Patch Set 2 : Comment #

Total comments: 8

Patch Set 3 : Code review #

Patch Set 4 : git st #

Patch Set 5 : Fix RWHVAuraTest #

Patch Set 6 : Rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+266 lines, -220 lines) Patch
M content/browser/renderer_host/input/input_router_impl_unittest.cc View 2 chunks +12 lines, -25 lines 0 comments Download
M content/browser/renderer_host/input/touch_event_queue.h View 1 2 3 4 5 6 chunks +23 lines, -24 lines 0 comments Download
M content/browser/renderer_host/input/touch_event_queue.cc View 1 2 3 4 5 18 chunks +85 lines, -125 lines 0 comments Download
M content/browser/renderer_host/input/touch_event_queue_unittest.cc View 8 chunks +139 lines, -44 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_view_aura_unittest.cc View 1 2 3 1 chunk +1 line, -1 line 0 comments Download
M ui/events/gesture_detection/bitset_32.h View 1 2 3 chunks +6 lines, -1 line 0 comments Download

Messages

Total messages: 19 (5 generated)
jdduke (slow)
rbyers@: PTAL, thanks. This isn't quite as simple as I'd like, but it's a step. ...
6 years, 3 months ago (2014-09-18 23:03:50 UTC) #2
Rick Byers
Seems like a nice improvement in complexity overall, thanks! I have to admit though, after ...
6 years, 3 months ago (2014-09-19 17:54:07 UTC) #3
jdduke (slow)
Thanks for review! https://codereview.chromium.org/586553002/diff/20001/content/browser/renderer_host/input/input_router_impl_unittest.cc File content/browser/renderer_host/input/input_router_impl_unittest.cc (left): https://codereview.chromium.org/586553002/diff/20001/content/browser/renderer_host/input/input_router_impl_unittest.cc#oldcode1123 content/browser/renderer_host/input/input_router_impl_unittest.cc:1123: // the timeout will not apply ...
6 years, 3 months ago (2014-09-22 16:30:14 UTC) #4
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/586553002/40001
6 years, 3 months ago (2014-09-22 16:31:19 UTC) #6
Rick Byers
On 2014/09/22 16:30:14, jdduke wrote: > Thanks for review! > > https://codereview.chromium.org/586553002/diff/20001/content/browser/renderer_host/input/input_router_impl_unittest.cc > File content/browser/renderer_host/input/input_router_impl_unittest.cc ...
6 years, 3 months ago (2014-09-22 16:37:11 UTC) #7
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_chromeos_rel_swarming on tryserver.chromium.linux (http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_rel_swarming/builds/16611)
6 years, 3 months ago (2014-09-22 17:14:16 UTC) #9
jdduke (slow)
sadrul@: Can you think of any problems this might introduce? That is, now we forward ...
6 years, 3 months ago (2014-09-22 17:32:47 UTC) #11
sadrul
On 2014/09/22 17:32:47, jdduke wrote: > sadrul@: Can you think of any problems this might ...
6 years, 3 months ago (2014-09-23 14:39:17 UTC) #12
jdduke (slow)
On 2014/09/23 14:39:17, sadrul wrote: > Another way to work around the multiple has-touch-handler notification ...
6 years, 3 months ago (2014-09-23 15:07:08 UTC) #13
jdduke (slow)
On 2014/09/23 15:07:08, jdduke wrote: > On 2014/09/23 14:39:17, sadrul wrote: > > Another way ...
6 years, 3 months ago (2014-09-23 15:55:52 UTC) #14
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/586553002/100001
6 years, 3 months ago (2014-09-23 15:57:12 UTC) #16
Rick Byers
On 2014/09/23 15:55:52, jdduke wrote: > On 2014/09/23 15:07:08, jdduke wrote: > > On 2014/09/23 ...
6 years, 3 months ago (2014-09-23 16:01:17 UTC) #17
commit-bot: I haz the power
Committed patchset #6 (id:100001) as b5e09f78c8732b03c45b49213366965825f2d138
6 years, 3 months ago (2014-09-23 16:49:29 UTC) #18
commit-bot: I haz the power
6 years, 3 months ago (2014-09-23 16:50:17 UTC) #19
Message was sent while issue was closed.
Patchset 6 (id:??) landed as
https://crrev.com/c883176fd86dee2be74dd5e3c6a101f0e4f93bee
Cr-Commit-Position: refs/heads/master@{#296205}

Powered by Google App Engine
This is Rietveld 408576698