DescriptionAllow 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 #
Messages
Total messages: 19 (5 generated)
|