Reconcile scroll and overscroll stretch when they disagree
If the scroll and the overscroll stretch are pointing in different
directions, then reconcile the two by adding the scroll to the
overscroll stretch (up to the point where the overscroll stretch
vanishes), and subtracting the same amount from the scroll.
Apply this operation just before drawing the frame so that there are no
glimpses of odd content.
Simplify the interface to the ScrollElasticityHelper, querying the
scroll offset and maximum scroll offset directly (from which the other
properties can be inferred).
As it is necessary that the InputScrollElasticityController be informed
of any of these reconciliations, have that structure be the one to do
the work, being called into via the InputHandlerProxy's cc::InputHandler
interface.
BUG=133097
Review URL: https://codereview.chromium.org/813123003
Cr-Commit-Position: refs/heads/master@{#309528}
diff --git a/cc/input/input_handler.h b/cc/input/input_handler.h
index 7b83e4b2..4912ac8 100644
--- a/cc/input/input_handler.h
+++ b/cc/input/input_handler.h
@@ -48,6 +48,7 @@
virtual void WillShutdown() = 0;
virtual void Animate(base::TimeTicks time) = 0;
virtual void MainThreadHasStoppedFlinging() = 0;
+ virtual void ReconcileElasticOverscrollAndRootScroll() = 0;
protected:
InputHandlerClient() {}