Stop sending an async touchmove for the app slop region
commit635c6ec3ee861ee290cecf66e81b98a000ad23cd
authorjdduke <jdduke@chromium.org>
Wed, 28 Jan 2015 21:32:21 +0000 (28 13:32 -0800)
committerCommit bot <commit-bot@chromium.org>
Wed, 28 Jan 2015 21:34:04 +0000 (28 21:34 +0000)
tree5c79bc8877fbdfdb00c18fd7bda93e9eeb547933
parent4b372c24dd8ddbea9e0d639b462c9f1df3a93f45
Stop sending an async touchmove for the app slop region

With throttled, async touch dispatch, an uncancelable touchmove is sent
as soon as the touch sequence exceeds an arbitrarily defined
application slop region, separate from the platform slop region. The
intent in doing so was to allow web apps to clear any tap/press-related
state after a scroll has begun. However, the sending of this touchmove
at the start of a scroll sequence can be problematic; the early part of
a scroll sequence is often sensitive to minor bottlenecks, and the
dispatch of an additional touchmove can conceivably push the app into
high latency mode by delaying frame production.

Stop sending this slop-exceeding touchmove, instead relying on the
existing timer-based async touchmove dispatch.

Note that while this may regress touch behavior on certain sites (e.g.,
causing faulty tap interpretation), it's likely that behavior on such
sites was already racy and fragile, subject to the arbitrary value of
the fixed "application" slop region.

BUG=449275

Review URL: https://codereview.chromium.org/872633005

Cr-Commit-Position: refs/heads/master@{#313588}
content/browser/renderer_host/input/touch_event_queue.cc
content/browser/renderer_host/input/touch_event_queue.h
content/browser/renderer_host/input/touch_event_queue_unittest.cc