diff options
author | jdduke@chromium.org <jdduke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-13 17:24:55 +0000 |
---|---|---|
committer | jdduke@chromium.org <jdduke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-13 17:24:55 +0000 |
commit | 34afe10fc3ddc58ef60d971ca05e930778f50c9a (patch) | |
tree | ff1c53f67ceb52460d7d5db76f77a50c359a2881 /content/browser/renderer_host/input/input_router_impl_unittest.cc | |
parent | 45d6679ef39dccfa8988404072040a03f260e49b (diff) | |
download | chromium_src-34afe10fc3ddc58ef60d971ca05e930778f50c9a.zip chromium_src-34afe10fc3ddc58ef60d971ca05e930778f50c9a.tar.gz chromium_src-34afe10fc3ddc58ef60d971ca05e930778f50c9a.tar.bz2 |
Stop sending input event ack messages for ignored ack types
A subset of input event types always ignore their ack messages responses from
the renderer. Stop sending ack messages for those types.
BUG=302852
Review URL: https://codereview.chromium.org/109433014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240686 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/renderer_host/input/input_router_impl_unittest.cc')
-rw-r--r-- | content/browser/renderer_host/input/input_router_impl_unittest.cc | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/content/browser/renderer_host/input/input_router_impl_unittest.cc b/content/browser/renderer_host/input/input_router_impl_unittest.cc index ba94e80..f51264b 100644 --- a/content/browser/renderer_host/input/input_router_impl_unittest.cc +++ b/content/browser/renderer_host/input/input_router_impl_unittest.cc @@ -718,11 +718,13 @@ TEST_F(InputRouterImplTest, TouchTypesIgnoringAck) { INPUT_EVENT_ACK_STATE_CONSUMED); ASSERT_EQ(1U, GetSentMessageCountAndResetSink()); ASSERT_EQ(1U, ack_handler_->GetAndResetAckCount()); + ASSERT_EQ(0, client_->in_flight_event_count()); } SimulateTouchEvent(type); EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount()); + EXPECT_EQ(0, client_->in_flight_event_count()); SendInputEventACK(type, INPUT_EVENT_ACK_STATE_NOT_CONSUMED); EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); EXPECT_EQ(0U, ack_handler_->GetAndResetAckCount()); @@ -740,6 +742,7 @@ TEST_F(InputRouterImplTest, GestureTypesIgnoringAck) { SimulateGestureEvent(type, WebGestureEvent::Touchscreen); EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount()); + EXPECT_EQ(0, client_->in_flight_event_count()); SendInputEventACK(type, INPUT_EVENT_ACK_STATE_NOT_CONSUMED); EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); EXPECT_EQ(0U, ack_handler_->GetAndResetAckCount()); @@ -756,11 +759,13 @@ TEST_F(InputRouterImplTest, GestureTypesIgnoringAckInterleaved) { WebGestureEvent::Touchscreen); ASSERT_EQ(1U, GetSentMessageCountAndResetSink()); EXPECT_EQ(0U, ack_handler_->GetAndResetAckCount()); + EXPECT_EQ(1, client_->in_flight_event_count()); SimulateGestureEvent(WebInputEvent::GestureTapDown, WebGestureEvent::Touchscreen); EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); EXPECT_EQ(0U, ack_handler_->GetAndResetAckCount()); + EXPECT_EQ(1, client_->in_flight_event_count()); SimulateGestureEvent(WebInputEvent::GesturePinchUpdate, WebGestureEvent::Touchscreen); @@ -784,39 +789,46 @@ TEST_F(InputRouterImplTest, GestureTypesIgnoringAckInterleaved) { // Now ack each event. Ack-ignoring events should not be dispatched until all // prior events which observe ack disposition have been fired, at which - // point they should be sent immediately. + // point they should be sent immediately. They should also have no effect + // on the in-flight event count. SendInputEventACK(WebInputEvent::GesturePinchUpdate, INPUT_EVENT_ACK_STATE_NOT_CONSUMED); EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); EXPECT_EQ(2U, ack_handler_->GetAndResetAckCount()); + EXPECT_EQ(1, client_->in_flight_event_count()); // For events which ignore ack disposition, non-synthetic acks are ignored. SendInputEventACK(WebInputEvent::GestureTapDown, INPUT_EVENT_ACK_STATE_NOT_CONSUMED); EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); EXPECT_EQ(0U, ack_handler_->GetAndResetAckCount()); + EXPECT_EQ(1, client_->in_flight_event_count()); SendInputEventACK(WebInputEvent::GesturePinchUpdate, INPUT_EVENT_ACK_STATE_NOT_CONSUMED); EXPECT_EQ(2U, GetSentMessageCountAndResetSink()); EXPECT_EQ(2U, ack_handler_->GetAndResetAckCount()); + EXPECT_EQ(1, client_->in_flight_event_count()); // For events which ignore ack disposition, non-synthetic acks are ignored. SendInputEventACK(WebInputEvent::GestureShowPress, INPUT_EVENT_ACK_STATE_NOT_CONSUMED); EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); EXPECT_EQ(0U, ack_handler_->GetAndResetAckCount()); + EXPECT_EQ(1, client_->in_flight_event_count()); SendInputEventACK(WebInputEvent::GesturePinchUpdate, INPUT_EVENT_ACK_STATE_NOT_CONSUMED); EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); EXPECT_EQ(2U, ack_handler_->GetAndResetAckCount()); + EXPECT_EQ(0, client_->in_flight_event_count()); // For events which ignore ack disposition, non-synthetic acks are ignored. SendInputEventACK(WebInputEvent::GestureTapCancel, INPUT_EVENT_ACK_STATE_NOT_CONSUMED); EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); EXPECT_EQ(0U, ack_handler_->GetAndResetAckCount()); + EXPECT_EQ(0, client_->in_flight_event_count()); } // Test that GestureShowPress events don't get out of order due to |