Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1116)

Unified Diff: content/renderer/input/input_event_filter_unittest.cc

Issue 2162143002: Don't use PostTask queueing between compositor and main thread. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Don't ack mouse move right away send them unthrottled Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/input/input_event_filter_unittest.cc
diff --git a/content/renderer/input/input_event_filter_unittest.cc b/content/renderer/input/input_event_filter_unittest.cc
index 48d1354ec9f0bef3ee616b96a10d961314302340..580a878e7df2151ee0d773ed57d24d1369fa3c79 100644
--- a/content/renderer/input/input_event_filter_unittest.cc
+++ b/content/renderer/input/input_event_filter_unittest.cc
@@ -210,20 +210,20 @@ TEST_F(InputEventFilterTest, Basic) {
event_recorder_.set_send_to_widget(true);
AddEventsToFilter(filter_.get(), kEvents, arraysize(kEvents));
- EXPECT_EQ(arraysize(kEvents), ipc_sink_.message_count());
+ EXPECT_EQ(2 * arraysize(kEvents), ipc_sink_.message_count());
EXPECT_EQ(2 * arraysize(kEvents), event_recorder_.record_count());
- EXPECT_EQ(arraysize(kEvents), message_recorder_.message_count());
+ EXPECT_EQ(1u, message_recorder_.message_count());
- for (size_t i = 0; i < arraysize(kEvents); ++i) {
- const IPC::Message& message = message_recorder_.message_at(i);
+ {
tdresser 2016/07/20 20:52:27 Should we get rid of the {}?
dtapuska 2016/07/27 05:29:00 I was trying to scope the local variables that I w
+ const IPC::Message& message = message_recorder_.message_at(0);
ASSERT_EQ(InputMsg_HandleInputEvent::ID, message.type());
InputMsg_HandleInputEvent::Param params;
EXPECT_TRUE(InputMsg_HandleInputEvent::Read(&message, &params));
const WebInputEvent* event = std::get<0>(params);
- EXPECT_EQ(kEvents[i].size, event->size);
- EXPECT_TRUE(memcmp(&kEvents[i], event, event->size) == 0);
+ EXPECT_EQ(kEvents[2].size, event->size);
+ EXPECT_TRUE(memcmp(&kEvents[2], event, event->size) == 0);
}
// Now reset everything, and test that DidHandleInputEvent is called.
@@ -313,7 +313,7 @@ TEST_F(InputEventFilterTest, PreserveRelativeOrder) {
TEST_F(InputEventFilterTest, NonBlockingWheel) {
WebMouseWheelEvent kEvents[4] = {
- SyntheticWebMouseWheelEventBuilder::Build(10, 10, 0, 53, 0, false),
+ SyntheticWebMouseWheelEventBuilder::Build(10, 10, 0, 53, 1, false),
SyntheticWebMouseWheelEventBuilder::Build(20, 20, 0, 53, 0, false),
SyntheticWebMouseWheelEventBuilder::Build(30, 30, 0, 53, 1, false),
SyntheticWebMouseWheelEventBuilder::Build(30, 30, 0, 53, 1, false),
@@ -327,27 +327,7 @@ TEST_F(InputEventFilterTest, NonBlockingWheel) {
EXPECT_EQ(arraysize(kEvents), event_recorder_.record_count());
ASSERT_EQ(4u, ipc_sink_.message_count());
- // First event is sent right away.
- EXPECT_EQ(1u, message_recorder_.message_count());
-
- // Second event was queued; ack the first.
- filter_->NotifyInputEventHandled(kTestRoutingID, WebInputEvent::MouseWheel,
- INPUT_EVENT_ACK_STATE_CONSUMED);
- base::RunLoop().RunUntilIdle();
- ASSERT_EQ(4u, ipc_sink_.message_count());
- EXPECT_EQ(2u, message_recorder_.message_count());
-
- // Third event won't be coalesced into the second because modifiers are
- // different.
- filter_->NotifyInputEventHandled(kTestRoutingID, WebInputEvent::MouseWheel,
- INPUT_EVENT_ACK_STATE_CONSUMED);
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(3u, message_recorder_.message_count());
-
- // The last events will be coalesced.
- filter_->NotifyInputEventHandled(kTestRoutingID, WebInputEvent::MouseWheel,
- INPUT_EVENT_ACK_STATE_CONSUMED);
- base::RunLoop().RunUntilIdle();
+ // All events are handled, one is coalesced.
EXPECT_EQ(3u, message_recorder_.message_count());
// First two messages should be identical.
@@ -364,7 +344,7 @@ TEST_F(InputEventFilterTest, NonBlockingWheel) {
kEvents[i].dispatchType =
WebInputEvent::DispatchType::ListenersNonBlockingPassive;
EXPECT_TRUE(memcmp(&kEvents[i], event, event->size) == 0);
- EXPECT_EQ(InputEventDispatchType::DISPATCH_TYPE_NON_BLOCKING_NOTIFY_MAIN,
+ EXPECT_EQ(InputEventDispatchType::DISPATCH_TYPE_NON_BLOCKING,
dispatch_type);
}
@@ -384,7 +364,7 @@ TEST_F(InputEventFilterTest, NonBlockingWheel) {
EXPECT_EQ(kEvents[2].size, event->size);
EXPECT_EQ(kEvents[2].deltaX + kEvents[3].deltaX, event->deltaX);
EXPECT_EQ(kEvents[2].deltaY + kEvents[3].deltaY, event->deltaY);
- EXPECT_EQ(InputEventDispatchType::DISPATCH_TYPE_NON_BLOCKING_NOTIFY_MAIN,
+ EXPECT_EQ(InputEventDispatchType::DISPATCH_TYPE_NON_BLOCKING,
dispatch_type);
}
}
@@ -408,27 +388,7 @@ TEST_F(InputEventFilterTest, NonBlockingTouch) {
EXPECT_EQ(arraysize(kEvents), event_recorder_.record_count());
ASSERT_EQ(4u, ipc_sink_.message_count());
- // First event is sent right away.
- EXPECT_EQ(1u, message_recorder_.message_count());
-
- // Second event was queued; ack the first.
- filter_->NotifyInputEventHandled(kTestRoutingID, WebInputEvent::TouchStart,
- INPUT_EVENT_ACK_STATE_CONSUMED);
- base::RunLoop().RunUntilIdle();
- ASSERT_EQ(4u, ipc_sink_.message_count());
- EXPECT_EQ(2u, message_recorder_.message_count());
-
- // Third event won't be coalesced into the second because modifiers are
- // different.
- filter_->NotifyInputEventHandled(kTestRoutingID, WebInputEvent::TouchMove,
- INPUT_EVENT_ACK_STATE_CONSUMED);
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(3u, message_recorder_.message_count());
-
- // The last events will be coalesced.
- filter_->NotifyInputEventHandled(kTestRoutingID, WebInputEvent::TouchMove,
- INPUT_EVENT_ACK_STATE_CONSUMED);
- base::RunLoop().RunUntilIdle();
+ // All events are handled and one set was coalesced.
EXPECT_EQ(3u, message_recorder_.message_count());
// First two messages should be identical.
@@ -445,7 +405,7 @@ TEST_F(InputEventFilterTest, NonBlockingTouch) {
kEvents[i].dispatchType =
WebInputEvent::DispatchType::ListenersNonBlockingPassive;
EXPECT_TRUE(memcmp(&kEvents[i], event, event->size) == 0);
- EXPECT_EQ(InputEventDispatchType::DISPATCH_TYPE_NON_BLOCKING_NOTIFY_MAIN,
+ EXPECT_EQ(InputEventDispatchType::DISPATCH_TYPE_NON_BLOCKING,
dispatch_type);
}
@@ -464,7 +424,7 @@ TEST_F(InputEventFilterTest, NonBlockingTouch) {
EXPECT_EQ(1u, kEvents[3].touchesLength);
EXPECT_EQ(kEvents[3].touches[0].position.x, event->touches[0].position.x);
EXPECT_EQ(kEvents[3].touches[0].position.y, event->touches[0].position.y);
- EXPECT_EQ(InputEventDispatchType::DISPATCH_TYPE_NON_BLOCKING_NOTIFY_MAIN,
+ EXPECT_EQ(InputEventDispatchType::DISPATCH_TYPE_NON_BLOCKING,
dispatch_type);
}
}
@@ -488,11 +448,9 @@ TEST_F(InputEventFilterTest, IntermingledNonBlockingTouch) {
EXPECT_EQ(arraysize(kEvents) + arraysize(kBlockingEvents),
event_recorder_.record_count());
ASSERT_EQ(3u, event_recorder_.record_count());
+ EXPECT_EQ(3u, message_recorder_.message_count());
{
- // First event is sent right away.
- EXPECT_EQ(1u, message_recorder_.message_count());
-
const IPC::Message& message = message_recorder_.message_at(0);
ASSERT_EQ(InputMsg_HandleInputEvent::ID, message.type());
InputMsg_HandleInputEvent::Param params;
@@ -504,17 +462,11 @@ TEST_F(InputEventFilterTest, IntermingledNonBlockingTouch) {
kEvents[0].dispatchType =
WebInputEvent::DispatchType::ListenersNonBlockingPassive;
EXPECT_TRUE(memcmp(&kEvents[0], event, event->size) == 0);
- EXPECT_EQ(InputEventDispatchType::DISPATCH_TYPE_NON_BLOCKING_NOTIFY_MAIN,
+ EXPECT_EQ(InputEventDispatchType::DISPATCH_TYPE_NON_BLOCKING,
dispatch_type);
}
{
- // Second event was queued; ack the first.
- filter_->NotifyInputEventHandled(kTestRoutingID, WebInputEvent::TouchStart,
- INPUT_EVENT_ACK_STATE_CONSUMED);
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(2u, message_recorder_.message_count());
-
const IPC::Message& message = message_recorder_.message_at(1);
ASSERT_EQ(InputMsg_HandleInputEvent::ID, message.type());
InputMsg_HandleInputEvent::Param params;
@@ -526,17 +478,11 @@ TEST_F(InputEventFilterTest, IntermingledNonBlockingTouch) {
kEvents[1].dispatchType =
WebInputEvent::DispatchType::ListenersNonBlockingPassive;
EXPECT_TRUE(memcmp(&kEvents[1], event, event->size) == 0);
- EXPECT_EQ(InputEventDispatchType::DISPATCH_TYPE_NON_BLOCKING_NOTIFY_MAIN,
+ EXPECT_EQ(InputEventDispatchType::DISPATCH_TYPE_NON_BLOCKING,
dispatch_type);
}
{
- // Third event should be put in the queue.
- filter_->NotifyInputEventHandled(kTestRoutingID, WebInputEvent::TouchEnd,
- INPUT_EVENT_ACK_STATE_CONSUMED);
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(3u, message_recorder_.message_count());
-
const IPC::Message& message = message_recorder_.message_at(2);
ASSERT_EQ(InputMsg_HandleInputEvent::ID, message.type());
InputMsg_HandleInputEvent::Param params;
@@ -546,8 +492,7 @@ TEST_F(InputEventFilterTest, IntermingledNonBlockingTouch) {
EXPECT_EQ(kBlockingEvents[0].size, event->size);
EXPECT_TRUE(memcmp(&kBlockingEvents[0], event, event->size) == 0);
- EXPECT_EQ(InputEventDispatchType::DISPATCH_TYPE_BLOCKING_NOTIFY_MAIN,
- dispatch_type);
+ EXPECT_EQ(InputEventDispatchType::DISPATCH_TYPE_BLOCKING, dispatch_type);
}
}

Powered by Google App Engine
This is Rietveld 408576698