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

Side by Side Diff: content/browser/renderer_host/render_widget_host_unittest.cc

Issue 12225056: Coalesce scrollUpdate and pinchUpdate on gesture_event queue (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix build error Created 7 years, 10 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/basictypes.h" 5 #include "base/basictypes.h"
6 #include "base/memory/scoped_ptr.h" 6 #include "base/memory/scoped_ptr.h"
7 #include "base/shared_memory.h" 7 #include "base/shared_memory.h"
8 #include "base/timer.h" 8 #include "base/timer.h"
9 #include "content/browser/browser_thread_impl.h" 9 #include "content/browser/browser_thread_impl.h"
10 #include "content/browser/renderer_host/backing_store.h" 10 #include "content/browser/renderer_host/backing_store.h"
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 }; 133 };
134 134
135 bool unresponsive_timer_fired() const { 135 bool unresponsive_timer_fired() const {
136 return unresponsive_timer_fired_; 136 return unresponsive_timer_fired_;
137 } 137 }
138 138
139 void set_hung_renderer_delay_ms(int delay_ms) { 139 void set_hung_renderer_delay_ms(int delay_ms) {
140 hung_renderer_delay_ms_ = delay_ms; 140 hung_renderer_delay_ms_ = delay_ms;
141 } 141 }
142 142
143 unsigned GestureEventLastQueueEventSize() {
144 return gesture_event_filter_->coalesced_gesture_events_.size();
145 }
146
147 WebGestureEvent GestureEventSecondFromLastQueueEvent() {
148 return gesture_event_filter_->coalesced_gesture_events_.at(
149 GestureEventLastQueueEventSize() - 2);
150 }
151
143 WebGestureEvent GestureEventLastQueueEvent() { 152 WebGestureEvent GestureEventLastQueueEvent() {
144 return gesture_event_filter_->coalesced_gesture_events_.back(); 153 return gesture_event_filter_->coalesced_gesture_events_.back();
145 } 154 }
146 155
147 unsigned GestureEventLastQueueEventSize() {
148 return gesture_event_filter_->coalesced_gesture_events_.size();
149 }
150
151 unsigned GestureEventDebouncingQueueSize() { 156 unsigned GestureEventDebouncingQueueSize() {
152 return gesture_event_filter_->debouncing_deferral_queue_.size(); 157 return gesture_event_filter_->debouncing_deferral_queue_.size();
153 } 158 }
154 159
155 WebGestureEvent GestureEventQueueEventAt(int i) { 160 WebGestureEvent GestureEventQueueEventAt(int i) {
156 return gesture_event_filter_->coalesced_gesture_events_.at(i); 161 return gesture_event_filter_->coalesced_gesture_events_.at(i);
157 } 162 }
158 163
159 bool shouldDeferTapDownEvents() { 164 bool shouldDeferTapDownEvents() {
160 return gesture_event_filter_->maximum_tap_gap_time_ms_ != 0; 165 return gesture_event_filter_->maximum_tap_gap_time_ms_ != 0;
161 } 166 }
162 167
163 bool ScrollingInProgress() { 168 bool ScrollingInProgress() {
164 return gesture_event_filter_->scrolling_in_progress_; 169 return gesture_event_filter_->scrolling_in_progress_;
165 } 170 }
166 171
167 bool FlingInProgress() { 172 bool FlingInProgress() {
168 return gesture_event_filter_->fling_in_progress_; 173 return gesture_event_filter_->fling_in_progress_;
169 } 174 }
170 175
176 bool WillIgnoreNextACK() {
177 return gesture_event_filter_->ignore_next_ack_;
178 }
179
171 TapSuppressionState TapSuppressionControllerState() { 180 TapSuppressionState TapSuppressionControllerState() {
172 return static_cast<TapSuppressionState>( 181 return static_cast<TapSuppressionState>(
173 gesture_event_filter_->tap_suppression_controller_->state_); 182 gesture_event_filter_->tap_suppression_controller_->state_);
174 } 183 }
175 184
176 void SetupForOverscrollControllerTest() { 185 void SetupForOverscrollControllerTest() {
177 SetOverscrollControllerEnabled(true); 186 SetOverscrollControllerEnabled(true);
178 overscroll_delegate_.reset(new TestOverscrollDelegate); 187 overscroll_delegate_.reset(new TestOverscrollDelegate);
179 overscroll_controller_->set_delegate(overscroll_delegate_.get()); 188 overscroll_controller_->set_delegate(overscroll_delegate_.get());
180 } 189 }
(...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after
580 589
581 void SimulateGestureScrollUpdateEvent(float dX, float dY, int modifiers) { 590 void SimulateGestureScrollUpdateEvent(float dX, float dY, int modifiers) {
582 WebGestureEvent gesture_event; 591 WebGestureEvent gesture_event;
583 gesture_event.data.scrollUpdate.deltaX = dX; 592 gesture_event.data.scrollUpdate.deltaX = dX;
584 gesture_event.data.scrollUpdate.deltaY = dY; 593 gesture_event.data.scrollUpdate.deltaY = dY;
585 gesture_event.modifiers = modifiers; 594 gesture_event.modifiers = modifiers;
586 SimulateGestureEventCore(WebInputEvent::GestureScrollUpdate, 595 SimulateGestureEventCore(WebInputEvent::GestureScrollUpdate,
587 WebGestureEvent::Touchscreen, &gesture_event); 596 WebGestureEvent::Touchscreen, &gesture_event);
588 } 597 }
589 598
599 void SimulateGesturePinchUpdateEvent(float scale,
600 float anchorX,
601 float anchorY,
602 int modifiers) {
603 WebGestureEvent gesture_event;
604 gesture_event.data.pinchUpdate.scale = scale;
605 gesture_event.x = anchorX;
606 gesture_event.y = anchorY;
607 gesture_event.modifiers = modifiers;
608 SimulateGestureEventCore(WebInputEvent::GesturePinchUpdate,
609 WebGestureEvent::Touchscreen, &gesture_event);
610 }
611
590 // Inject synthetic GestureFlingStart events. 612 // Inject synthetic GestureFlingStart events.
591 void SimulateGestureFlingStartEvent( 613 void SimulateGestureFlingStartEvent(
592 float velocityX, 614 float velocityX,
593 float velocityY, 615 float velocityY,
594 WebGestureEvent::SourceDevice sourceDevice) { 616 WebGestureEvent::SourceDevice sourceDevice) {
595 WebGestureEvent gesture_event; 617 WebGestureEvent gesture_event;
596 gesture_event.data.flingStart.velocityX = velocityX; 618 gesture_event.data.flingStart.velocityX = velocityX;
597 gesture_event.data.flingStart.velocityY = velocityY; 619 gesture_event.data.flingStart.velocityY = velocityY;
598 SimulateGestureEventCore(WebInputEvent::GestureFlingStart, sourceDevice, 620 SimulateGestureEventCore(WebInputEvent::GestureFlingStart, sourceDevice,
599 &gesture_event); 621 &gesture_event);
(...skipping 554 matching lines...) Expand 10 before | Expand all | Expand 10 after
1154 GetInputEventFromMessage(*process_->sink().GetMessageAt(2)); 1176 GetInputEventFromMessage(*process_->sink().GetMessageAt(2));
1155 ASSERT_EQ(WebInputEvent::MouseWheel, input_event->type); 1177 ASSERT_EQ(WebInputEvent::MouseWheel, input_event->type);
1156 const WebMouseWheelEvent* wheel_event = 1178 const WebMouseWheelEvent* wheel_event =
1157 static_cast<const WebMouseWheelEvent*>(input_event); 1179 static_cast<const WebMouseWheelEvent*>(input_event);
1158 ASSERT_EQ(WebMouseWheelEvent::PhaseEnded, wheel_event->phase); 1180 ASSERT_EQ(WebMouseWheelEvent::PhaseEnded, wheel_event->phase);
1159 1181
1160 input_event = GetInputEventFromMessage(*process_->sink().GetMessageAt(3)); 1182 input_event = GetInputEventFromMessage(*process_->sink().GetMessageAt(3));
1161 EXPECT_EQ(WebInputEvent::GestureScrollEnd, input_event->type); 1183 EXPECT_EQ(WebInputEvent::GestureScrollEnd, input_event->type);
1162 } 1184 }
1163 1185
1164 TEST_F(RenderWidgetHostTest, CoalescesGesturesEvents) { 1186 TEST_F(RenderWidgetHostTest, CoalescesScrollGestureEvents) {
1165 // Turn off debounce handling for test isolation. 1187 // Turn off debounce handling for test isolation.
1166 host_->set_debounce_interval_time_ms(0); 1188 host_->set_debounce_interval_time_ms(0);
1167 process_->sink().ClearMessages(); 1189 process_->sink().ClearMessages();
1168 // Only GestureScrollUpdate events can be coalesced. 1190 // Test coalescing of only GestureScrollUpdate events.
1169 // Simulate gesture events. 1191 // Simulate gesture events.
1170 1192
1171 // Sent. 1193 // Sent.
1172 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, 1194 SimulateGestureEvent(WebInputEvent::GestureScrollBegin,
1173 WebGestureEvent::Touchscreen); 1195 WebGestureEvent::Touchscreen);
1174 1196
1175 // Enqueued. 1197 // Enqueued.
1176 SimulateGestureScrollUpdateEvent(8, -5, 0); 1198 SimulateGestureScrollUpdateEvent(8, -5, 0);
1177 1199
1178 // Make sure that the queue contains what we think it should. 1200 // Make sure that the queue contains what we think it should.
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
1235 ViewMsg_HandleInputEvent::ID)); 1257 ViewMsg_HandleInputEvent::ID));
1236 process_->sink().ClearMessages(); 1258 process_->sink().ClearMessages();
1237 1259
1238 // After the final ack, the queue should be empty. 1260 // After the final ack, the queue should be empty.
1239 SendInputEventACK(WebInputEvent::GestureScrollEnd, 1261 SendInputEventACK(WebInputEvent::GestureScrollEnd,
1240 INPUT_EVENT_ACK_STATE_CONSUMED); 1262 INPUT_EVENT_ACK_STATE_CONSUMED);
1241 MessageLoop::current()->RunUntilIdle(); 1263 MessageLoop::current()->RunUntilIdle();
1242 EXPECT_EQ(0U, process_->sink().message_count()); 1264 EXPECT_EQ(0U, process_->sink().message_count());
1243 } 1265 }
1244 1266
1267 TEST_F(RenderWidgetHostTest, CoalescesScrollAndPinchEvents) {
1268 // Turn off debounce handling for test isolation.
1269 host_->set_debounce_interval_time_ms(0);
1270 process_->sink().ClearMessages();
1271 // Test coalescing of only GestureScrollUpdate events.
1272 // Simulate gesture events.
1273
1274 // Sent.
1275 SimulateGestureEvent(WebInputEvent::GestureScrollBegin,
1276 WebGestureEvent::Touchscreen);
1277
1278 // Sent.
1279 SimulateGestureEvent(WebInputEvent::GesturePinchBegin,
1280 WebGestureEvent::Touchscreen);
1281
1282 // Enqueued.
1283 SimulateGestureScrollUpdateEvent(8, -4, 1);
1284
1285 // Make sure that the queue contains what we think it should.
1286 WebGestureEvent merged_event = host_->GestureEventLastQueueEvent();
1287 EXPECT_EQ(3U, host_->GestureEventLastQueueEventSize());
1288 EXPECT_EQ(WebInputEvent::GestureScrollUpdate, merged_event.type);
1289
1290 // Coalesced without changing event order. Note anchor at (60, 60). Anchoring
1291 // from a poinht that is not the origin should still give us the wight scroll.
1292 SimulateGesturePinchUpdateEvent(1.5, 60, 60, 1);
1293 EXPECT_EQ(4U, host_->GestureEventLastQueueEventSize());
1294 merged_event = host_->GestureEventLastQueueEvent();
1295 EXPECT_EQ(WebInputEvent::GesturePinchUpdate, merged_event.type);
1296 EXPECT_EQ(1.5, merged_event.data.pinchUpdate.scale);
1297 EXPECT_EQ(1, merged_event.modifiers);
1298 merged_event = host_->GestureEventSecondFromLastQueueEvent();
1299 EXPECT_EQ(WebInputEvent::GestureScrollUpdate, merged_event.type);
1300 EXPECT_EQ(8, merged_event.data.scrollUpdate.deltaX);
1301 EXPECT_EQ(-4, merged_event.data.scrollUpdate.deltaY);
1302 EXPECT_EQ(1, merged_event.modifiers);
1303
1304 // Enqueued.
1305 SimulateGestureScrollUpdateEvent(6, -3, 1);
1306
1307 // Check whether coalesced correctly.
1308 EXPECT_EQ(4U, host_->GestureEventLastQueueEventSize());
1309 merged_event = host_->GestureEventLastQueueEvent();
1310 EXPECT_EQ(WebInputEvent::GesturePinchUpdate, merged_event.type);
1311 EXPECT_EQ(1.5, merged_event.data.pinchUpdate.scale);
1312 EXPECT_EQ(1, merged_event.modifiers);
1313 merged_event = host_->GestureEventSecondFromLastQueueEvent();
1314 EXPECT_EQ(WebInputEvent::GestureScrollUpdate, merged_event.type);
1315 EXPECT_EQ(12, merged_event.data.scrollUpdate.deltaX);
1316 EXPECT_EQ(-6, merged_event.data.scrollUpdate.deltaY);
1317 EXPECT_EQ(1, merged_event.modifiers);
1318
1319 // Enqueued.
1320 SimulateGesturePinchUpdateEvent(2, 60, 60, 1);
1321
1322 // Check whether coalesced correctly.
1323 EXPECT_EQ(4U, host_->GestureEventLastQueueEventSize());
1324 merged_event = host_->GestureEventLastQueueEvent();
1325 EXPECT_EQ(WebInputEvent::GesturePinchUpdate, merged_event.type);
1326 EXPECT_EQ(3, merged_event.data.pinchUpdate.scale);
1327 EXPECT_EQ(1, merged_event.modifiers);
1328 merged_event = host_->GestureEventSecondFromLastQueueEvent();
1329 EXPECT_EQ(WebInputEvent::GestureScrollUpdate, merged_event.type);
1330 EXPECT_EQ(12, merged_event.data.scrollUpdate.deltaX);
1331 EXPECT_EQ(-6, merged_event.data.scrollUpdate.deltaY);
1332 EXPECT_EQ(1, merged_event.modifiers);
1333
1334 // Enqueued.
1335 SimulateGesturePinchUpdateEvent(2, 60, 60, 1);
1336
1337 // Check whether coalesced correctly.
1338 EXPECT_EQ(4U, host_->GestureEventLastQueueEventSize());
1339 merged_event = host_->GestureEventLastQueueEvent();
1340 EXPECT_EQ(WebInputEvent::GesturePinchUpdate, merged_event.type);
1341 EXPECT_EQ(6, merged_event.data.pinchUpdate.scale);
1342 EXPECT_EQ(1, merged_event.modifiers);
1343 merged_event = host_->GestureEventSecondFromLastQueueEvent();
1344 EXPECT_EQ(WebInputEvent::GestureScrollUpdate, merged_event.type);
1345 EXPECT_EQ(12, merged_event.data.scrollUpdate.deltaX);
1346 EXPECT_EQ(-6, merged_event.data.scrollUpdate.deltaY);
1347 EXPECT_EQ(1, merged_event.modifiers);
1348
1349 // Check that only the first event was sent.
1350 EXPECT_EQ(1U, process_->sink().message_count());
1351 EXPECT_TRUE(process_->sink().GetUniqueMessageMatching(
1352 ViewMsg_HandleInputEvent::ID));
1353 process_->sink().ClearMessages();
1354
1355 // Check that the ACK sends the second message.
1356 SendInputEventACK(WebInputEvent::GestureScrollBegin,
1357 INPUT_EVENT_ACK_STATE_CONSUMED);
1358 MessageLoop::current()->RunUntilIdle();
1359 EXPECT_EQ(1U, process_->sink().message_count());
1360 EXPECT_TRUE(process_->sink().GetUniqueMessageMatching(
1361 ViewMsg_HandleInputEvent::ID));
1362 process_->sink().ClearMessages();
1363
1364 // Enqueued.
1365 SimulateGestureScrollUpdateEvent(6, -6, 1);
1366
1367 // Check whether coalesced correctly.
1368 EXPECT_EQ(3U, host_->GestureEventLastQueueEventSize());
1369 merged_event = host_->GestureEventLastQueueEvent();
1370 EXPECT_EQ(WebInputEvent::GesturePinchUpdate, merged_event.type);
1371 EXPECT_EQ(6, merged_event.data.pinchUpdate.scale);
1372 EXPECT_EQ(1, merged_event.modifiers);
1373 merged_event = host_->GestureEventSecondFromLastQueueEvent();
1374 EXPECT_EQ(WebInputEvent::GestureScrollUpdate, merged_event.type);
1375 EXPECT_EQ(13, merged_event.data.scrollUpdate.deltaX);
1376 EXPECT_EQ(-7, merged_event.data.scrollUpdate.deltaY);
1377 EXPECT_EQ(1, merged_event.modifiers);
1378
1379 // At this point ACKs shouldn't be getting ignored.
1380 EXPECT_FALSE(host_->WillIgnoreNextACK());
1381
1382 // Check that the ACK sends both scroll and pinch updates.
1383 SendInputEventACK(WebInputEvent::GesturePinchBegin,
1384 INPUT_EVENT_ACK_STATE_CONSUMED);
1385 MessageLoop::current()->RunUntilIdle();
1386 EXPECT_EQ(2U, process_->sink().message_count());
1387 EXPECT_TRUE(process_->sink().GetFirstMessageMatching(
1388 ViewMsg_HandleInputEvent::ID));
1389 EXPECT_FALSE(process_->sink().GetUniqueMessageMatching(
1390 ViewMsg_HandleInputEvent::ID));
1391 process_->sink().ClearMessages();
1392
1393 // The next ACK should be getting ignored.
1394 EXPECT_TRUE(host_->WillIgnoreNextACK());
1395
1396 // Enqueued.
1397 SimulateGestureScrollUpdateEvent(1, -1, 1);
1398
1399 // Check whether coalesced correctly.
1400 EXPECT_EQ(3U, host_->GestureEventLastQueueEventSize());
1401 merged_event = host_->GestureEventLastQueueEvent();
1402 EXPECT_EQ(WebInputEvent::GestureScrollUpdate, merged_event.type);
1403 EXPECT_EQ(1, merged_event.data.scrollUpdate.deltaX);
1404 EXPECT_EQ(-1, merged_event.data.scrollUpdate.deltaY);
1405 EXPECT_EQ(1, merged_event.modifiers);
1406 merged_event = host_->GestureEventSecondFromLastQueueEvent();
1407 EXPECT_EQ(WebInputEvent::GesturePinchUpdate, merged_event.type);
1408 EXPECT_EQ(6, merged_event.data.pinchUpdate.scale);
1409 EXPECT_EQ(1, merged_event.modifiers);
1410
1411 // Enqueued.
1412 SimulateGestureScrollUpdateEvent(2, -2, 1);
1413
1414 // Coalescing scrolls should still work.
1415 EXPECT_EQ(3U, host_->GestureEventLastQueueEventSize());
1416 merged_event = host_->GestureEventLastQueueEvent();
1417 EXPECT_EQ(WebInputEvent::GestureScrollUpdate, merged_event.type);
1418 EXPECT_EQ(3, merged_event.data.scrollUpdate.deltaX);
1419 EXPECT_EQ(-3, merged_event.data.scrollUpdate.deltaY);
1420 EXPECT_EQ(1, merged_event.modifiers);
1421 merged_event = host_->GestureEventSecondFromLastQueueEvent();
1422 EXPECT_EQ(WebInputEvent::GesturePinchUpdate, merged_event.type);
1423 EXPECT_EQ(6, merged_event.data.pinchUpdate.scale);
1424 EXPECT_EQ(1, merged_event.modifiers);
1425
1426 // Enqueued.
1427 SimulateGesturePinchUpdateEvent(0.5, 60, 60, 1);
1428
1429 // Check whether coalesced correctly.
1430 EXPECT_EQ(4U, host_->GestureEventLastQueueEventSize());
1431 merged_event = host_->GestureEventLastQueueEvent();
1432 EXPECT_EQ(WebInputEvent::GesturePinchUpdate, merged_event.type);
1433 EXPECT_EQ(0.5, merged_event.data.pinchUpdate.scale);
1434 EXPECT_EQ(1, merged_event.modifiers);
1435 merged_event = host_->GestureEventSecondFromLastQueueEvent();
1436 EXPECT_EQ(WebInputEvent::GestureScrollUpdate, merged_event.type);
1437 EXPECT_EQ(3, merged_event.data.scrollUpdate.deltaX);
1438 EXPECT_EQ(-3, merged_event.data.scrollUpdate.deltaY);
1439 EXPECT_EQ(1, merged_event.modifiers);
1440
1441 // Check that the ACK gets ignored.
1442 SendInputEventACK(WebInputEvent::GestureScrollUpdate,
1443 INPUT_EVENT_ACK_STATE_CONSUMED);
1444 MessageLoop::current()->RunUntilIdle();
1445 EXPECT_EQ(0U, process_->sink().message_count());
1446 // The flag should have been flipped back to false.
1447 EXPECT_FALSE(host_->WillIgnoreNextACK());
1448
1449 // Enqueued.
1450 SimulateGestureScrollUpdateEvent(2, -2, 2);
1451
1452 // Shouldn't coalesce with different modifiers.
1453 EXPECT_EQ(4U, host_->GestureEventLastQueueEventSize());
1454 merged_event = host_->GestureEventLastQueueEvent();
1455 EXPECT_EQ(WebInputEvent::GestureScrollUpdate, merged_event.type);
1456 EXPECT_EQ(2, merged_event.data.scrollUpdate.deltaX);
1457 EXPECT_EQ(-2, merged_event.data.scrollUpdate.deltaY);
1458 EXPECT_EQ(2, merged_event.modifiers);
1459 merged_event = host_->GestureEventSecondFromLastQueueEvent();
1460 EXPECT_EQ(WebInputEvent::GesturePinchUpdate, merged_event.type);
1461 EXPECT_EQ(0.5, merged_event.data.pinchUpdate.scale);
1462 EXPECT_EQ(1, merged_event.modifiers);
1463
1464 // Check that the ACK sends the next scroll pinch pair.
1465 SendInputEventACK(WebInputEvent::GesturePinchUpdate,
1466 INPUT_EVENT_ACK_STATE_CONSUMED);
1467 MessageLoop::current()->RunUntilIdle();
1468 EXPECT_EQ(2U, process_->sink().message_count());
1469 EXPECT_TRUE(process_->sink().GetFirstMessageMatching(
1470 ViewMsg_HandleInputEvent::ID));
1471 EXPECT_FALSE(process_->sink().GetUniqueMessageMatching(
1472 ViewMsg_HandleInputEvent::ID));
1473 process_->sink().ClearMessages();
1474
1475 // Check that the ACK sends the second message.
1476 SendInputEventACK(WebInputEvent::GestureScrollUpdate,
1477 INPUT_EVENT_ACK_STATE_CONSUMED);
1478 MessageLoop::current()->RunUntilIdle();
1479 EXPECT_EQ(0U, process_->sink().message_count());
1480
1481 // Check that the ACK sends the second message.
1482 SendInputEventACK(WebInputEvent::GesturePinchUpdate,
1483 INPUT_EVENT_ACK_STATE_CONSUMED);
1484 MessageLoop::current()->RunUntilIdle();
1485 EXPECT_EQ(1U, process_->sink().message_count());
1486 EXPECT_TRUE(process_->sink().GetUniqueMessageMatching(
1487 ViewMsg_HandleInputEvent::ID));
1488 process_->sink().ClearMessages();
1489
1490 // Check that the queue is empty after ACK and no messages get sent.
1491 SendInputEventACK(WebInputEvent::GestureScrollUpdate,
1492 INPUT_EVENT_ACK_STATE_CONSUMED);
1493 MessageLoop::current()->RunUntilIdle();
1494 EXPECT_EQ(0U, process_->sink().message_count());
1495 EXPECT_EQ(0U, host_->GestureEventLastQueueEventSize());
1496 }
1497
1245 #if GTEST_HAS_PARAM_TEST 1498 #if GTEST_HAS_PARAM_TEST
1246 TEST_P(RenderWidgetHostWithSourceTest, GestureFlingCancelsFiltered) { 1499 TEST_P(RenderWidgetHostWithSourceTest, GestureFlingCancelsFiltered) {
1247 WebGestureEvent::SourceDevice source_device = GetParam(); 1500 WebGestureEvent::SourceDevice source_device = GetParam();
1248 1501
1249 // Turn off debounce handling for test isolation. 1502 // Turn off debounce handling for test isolation.
1250 host_->set_debounce_interval_time_ms(0); 1503 host_->set_debounce_interval_time_ms(0);
1251 process_->sink().ClearMessages(); 1504 process_->sink().ClearMessages();
1252 // GFC without previous GFS is dropped. 1505 // GFC without previous GFS is dropped.
1253 SimulateGestureEvent(WebInputEvent::GestureFlingCancel, source_device); 1506 SimulateGestureEvent(WebInputEvent::GestureFlingCancel, source_device);
1254 EXPECT_EQ(0U, process_->sink().message_count()); 1507 EXPECT_EQ(0U, process_->sink().message_count());
(...skipping 2367 matching lines...) Expand 10 before | Expand all | Expand 10 after
3622 EXPECT_EQ(0U, host_->GestureEventDebouncingQueueSize()); 3875 EXPECT_EQ(0U, host_->GestureEventDebouncingQueueSize());
3623 3876
3624 SendInputEventACK(WebKit::WebInputEvent::GestureScrollEnd, 3877 SendInputEventACK(WebKit::WebInputEvent::GestureScrollEnd,
3625 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 3878 INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
3626 EXPECT_EQ(0U, process_->sink().message_count()); 3879 EXPECT_EQ(0U, process_->sink().message_count());
3627 EXPECT_EQ(0U, host_->GestureEventLastQueueEventSize()); 3880 EXPECT_EQ(0U, host_->GestureEventLastQueueEventSize());
3628 EXPECT_EQ(0U, host_->GestureEventDebouncingQueueSize()); 3881 EXPECT_EQ(0U, host_->GestureEventDebouncingQueueSize());
3629 } 3882 }
3630 3883
3631 } // namespace content 3884 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698