Index: ui/events/blink/input_handler_proxy.h |
diff --git a/ui/events/blink/input_handler_proxy.h b/ui/events/blink/input_handler_proxy.h |
index a74be1c1232c91676f9f358d9fe29c78a2969680..a24ceb96e8cee797a821d0aa0b87514274886b59 100644 |
--- a/ui/events/blink/input_handler_proxy.h |
+++ b/ui/events/blink/input_handler_proxy.h |
@@ -15,16 +15,24 @@ |
#include "third_party/WebKit/public/platform/WebGestureEvent.h" |
#include "third_party/WebKit/public/platform/WebInputEvent.h" |
#include "third_party/WebKit/public/web/WebActiveWheelFlingParameters.h" |
+#include "ui/events/blink/blink_features.h" |
#include "ui/events/blink/input_scroll_elasticity_controller.h" |
#include "ui/events/blink/scoped_web_input_event.h" |
#include "ui/events/blink/synchronous_input_handler_proxy.h" |
+namespace base { |
+class TickClock; |
+} |
+ |
namespace ui { |
namespace test { |
class InputHandlerProxyTest; |
+class InputHandlerProxyEventQueueTest; |
} |
+class CompositorThreadEventQueue; |
+class EventWithCallback; |
class InputHandlerProxyClient; |
class InputScrollElasticityController; |
class SynchronousInputHandler; |
@@ -81,6 +89,7 @@ class InputHandlerProxy |
float page_scale_factor, |
float min_page_scale_factor, |
float max_page_scale_factor) override; |
+ void DeliverInputForBeginFrame() override; |
// SynchronousInputHandlerProxy implementation. |
void SetOnlySynchronouslyAnimateRootFlings( |
@@ -105,6 +114,11 @@ class InputHandlerProxy |
private: |
friend class test::InputHandlerProxyTest; |
+ friend class test::InputHandlerProxyEventQueueTest; |
+ |
+ void DispatchSingleInputEvent(std::unique_ptr<EventWithCallback>, |
+ const base::TimeTicks); |
+ void DispatchQueuedInputEvents(); |
// Helper functions for handling more complicated input events. |
EventDisposition HandleMouseWheel( |
@@ -163,6 +177,8 @@ class InputHandlerProxy |
const blink::WebGestureEvent& gesture_event, |
const cc::InputHandlerScrollResult& scroll_result); |
+ void SetTickClockForTesting(std::unique_ptr<base::TickClock> tick_clock); |
+ |
std::unique_ptr<blink::WebGestureCurve> fling_curve_; |
// Parameters for the active fling animation, stored in case we need to |
// transfer it out later. |
@@ -229,6 +245,11 @@ class InputHandlerProxy |
// supporting overscroll IPC notifications due to fling animation updates. |
std::unique_ptr<DidOverscrollParams> current_overscroll_params_; |
+ std::unique_ptr<CompositorThreadEventQueue> compositor_event_queue_; |
+ bool has_ongoing_compositor_scroll_pinch_; |
+ |
+ std::unique_ptr<base::TickClock> tick_clock_; |
+ |
DISALLOW_COPY_AND_ASSIGN(InputHandlerProxy); |
}; |