-
jdduke authored
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 Review URL: https://codereview.chromium.org/586553002 Cr-Commit-Position: refs/heads/master@{#296205}
c883176f