Index: content/browser/renderer_host/input/gesture_event_filter.h |
diff --git a/content/browser/renderer_host/input/gesture_event_filter.h b/content/browser/renderer_host/input/gesture_event_filter.h |
index b0c378222eaa1d19ab320500a7c9f62231cd4323..1db6d57a27fc7ec872101926e2c5af69e0848f73 100644 |
--- a/content/browser/renderer_host/input/gesture_event_filter.h |
+++ b/content/browser/renderer_host/input/gesture_event_filter.h |
@@ -54,7 +54,7 @@ class GestureEventFilter { |
// Indicates that the caller has received an acknowledgement from the renderer |
// with state |processed| and event |type|. May send events if the queue is |
// not empty. |
- void ProcessGestureAck(bool processed, int type); |
+ void ProcessGestureAck(bool processed, WebKit::WebInputEvent::Type type); |
// Sets the state of the |fling_in_progress_| field to indicate that a fling |
// is definitely not in progress. |
@@ -77,6 +77,8 @@ class GestureEventFilter { |
void ForwardGestureEventSkipDeferral( |
const GestureEventWithLatencyInfo& gesture_event); |
+ static bool IsGestureEventTypeAsync(WebKit::WebInputEvent::Type type); |
+ |
private: |
friend class MockRenderWidgetHost; |
friend class ImmediateInputRouterTest; |
@@ -146,6 +148,10 @@ class GestureEventFilter { |
gfx::Transform GetTransformForEvent( |
const GestureEventWithLatencyInfo& gesture_event) const; |
+ // Pops and sends async events from the head of |coalesced_gesture_events_| |
+ // until the queue is empty or the event at the head is synchronous. |
+ void SendAsyncEvents(); |
+ |
// The receiver of all forwarded gesture events. |
InputRouter* input_router_; |
@@ -183,7 +189,12 @@ class GestureEventFilter { |
typedef std::deque<GestureEventWithLatencyInfo> GestureEventQueue; |
- // Queue of coalesced gesture events not yet sent to the renderer. |
+ // Queue of coalesced gesture events not yet sent to the renderer. If |
+ // |ignore_next_ack_| is false, then the event at the front of the queue has |
+ // been sent and is awaiting an ACK, and all other events have yet to be sent. |
+ // If |ignore_next_ack_| is true, then the two events at the front of the |
+ // queue have been sent, and the second is awaiting an ACK. All other events |
+ // have yet to be sent. |
GestureEventQueue coalesced_gesture_events_; |
// Tap gesture event currently subject to deferral. |