summaryrefslogtreecommitdiffstats
path: root/content/browser/renderer_host/input/input_router_impl_unittest.cc
diff options
context:
space:
mode:
authorjdduke@chromium.org <jdduke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-13 17:24:55 +0000
committerjdduke@chromium.org <jdduke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-13 17:24:55 +0000
commit34afe10fc3ddc58ef60d971ca05e930778f50c9a (patch)
treeff1c53f67ceb52460d7d5db76f77a50c359a2881 /content/browser/renderer_host/input/input_router_impl_unittest.cc
parent45d6679ef39dccfa8988404072040a03f260e49b (diff)
downloadchromium_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.cc14
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