Stop deferring gestures in FlingBooster

Today, FlingBooster works by observing gestures during a fling. While it
decides whether or not the fling will be boosted, the incoming gestures
are filtered. This leads to a loss of responsiveness in this period.

In this CL, we radically simplify the FlingBooster/FlingController. We
no longer defer gestures during an active fling. When a FlingCancel is
received, the current fling is immediately stopped. The fling booster
still tracks gestures in the same way but allows them to be dispatched
so that scrolling remains responsive. If a fling occurs and meets all
the existing criteria for boosting, we start a new fling and add the
previous fling's velocity to it.

This change makes scrolling feel more responsive during a fling and also
significantly simplifies the fling and gesture code since we're no
longer modifying the gesture stream.

Change-Id: I47c0466861395f2064c4ce68d300955afd3668ec
Bug: 905593
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1630537
Reviewed-by: Navid Zolghadr <nzolghadr@chromium.org>
Reviewed-by: Timothy Dresser <tdresser@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Sahel Sharify <sahel@chromium.org>
Auto-Submit: David Bokan <bokan@chromium.org>
Commit-Queue: David Bokan <bokan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#670141}
21 files changed