| Index: content/browser/renderer_host/overscroll_controller.h
|
| diff --git a/content/browser/renderer_host/overscroll_controller.h b/content/browser/renderer_host/overscroll_controller.h
|
| index 4e6134d91f0415908a581a74d95535718a64385e..d23b2a9c75a0ae47404b89a511ba45d0715e5ad6 100644
|
| --- a/content/browser/renderer_host/overscroll_controller.h
|
| +++ b/content/browser/renderer_host/overscroll_controller.h
|
| @@ -7,6 +7,7 @@
|
|
|
| #include "base/compiler_specific.h"
|
| #include "base/macros.h"
|
| +#include "content/common/content_export.h"
|
| #include "third_party/WebKit/public/platform/WebGestureEvent.h"
|
| #include "third_party/WebKit/public/platform/WebInputEvent.h"
|
|
|
| @@ -38,8 +39,11 @@ enum class OverscrollSource {
|
| // status accordingly.
|
| class OverscrollController {
|
| public:
|
| - OverscrollController();
|
| - virtual ~OverscrollController();
|
| + // Exported for testing.
|
| + // TODO(mcnee): Tests needing this are BrowserPlugin specific
|
| + // (crbug.com/533069).
|
| + CONTENT_EXPORT OverscrollController();
|
| + CONTENT_EXPORT virtual ~OverscrollController();
|
|
|
| // This must be called when dispatching any event from the
|
| // RenderWidgetHostView so that the state of the overscroll gesture can be
|
| @@ -49,7 +53,12 @@ class OverscrollController {
|
|
|
| // This must be called when the ACK for any event comes in. This updates the
|
| // overscroll gesture status as appropriate.
|
| - void ReceivedEventACK(const blink::WebInputEvent& event, bool processed);
|
| + // Virtual and exported for testing.
|
| + // TODO(mcnee): Tests needing this are BrowserPlugin specific
|
| + // (crbug.com/533069).
|
| + CONTENT_EXPORT virtual void ReceivedEventACK(
|
| + const blink::WebInputEvent& event,
|
| + bool processed);
|
|
|
| // This must be called when a gesture event is filtered out and not sent to
|
| // the renderer.
|
| @@ -68,10 +77,11 @@ class OverscrollController {
|
| // delegate if necessary), and resets internal states.
|
| void Cancel();
|
|
|
| - private:
|
| - friend class RenderWidgetHostViewAuraOverscrollTest;
|
| -
|
| + protected:
|
| // Different scrolling states.
|
| + // Protected for testing.
|
| + // TODO(mcnee): Tests needing this are BrowserPlugin specific
|
| + // (crbug.com/533069).
|
| enum ScrollState {
|
| STATE_UNKNOWN,
|
| STATE_PENDING,
|
| @@ -79,6 +89,19 @@ class OverscrollController {
|
| STATE_OVERSCROLLING,
|
| };
|
|
|
| + // Used to keep track of the scrolling state.
|
| + // If scrolling starts, and some scroll events are consumed at the beginning
|
| + // of the scroll (i.e. some content on the web-page was scrolled), then do not
|
| + // process any of the subsequent scroll events for generating overscroll
|
| + // gestures.
|
| + // Protected for testing.
|
| + // TODO(mcnee): Tests needing this are BrowserPlugin specific
|
| + // (crbug.com/533069).
|
| + ScrollState scroll_state_;
|
| +
|
| + private:
|
| + friend class RenderWidgetHostViewAuraOverscrollTest;
|
| +
|
| // Returns true if the event indicates that the in-progress overscroll gesture
|
| // can now be completed.
|
| bool DispatchEventCompletesAction(
|
| @@ -113,13 +136,6 @@ class OverscrollController {
|
| // The current state of overscroll gesture.
|
| OverscrollMode overscroll_mode_;
|
|
|
| - // Used to keep track of the scrolling state.
|
| - // If scrolling starts, and some scroll events are consumed at the beginning
|
| - // of the scroll (i.e. some content on the web-page was scrolled), then do not
|
| - // process any of the subsequent scroll events for generating overscroll
|
| - // gestures.
|
| - ScrollState scroll_state_;
|
| -
|
| // The amount of overscroll in progress. These values are invalid when
|
| // |overscroll_mode_| is set to OVERSCROLL_NONE.
|
| float overscroll_delta_x_;
|
|
|