| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "content/browser/renderer_host/input/mouse_wheel_event_queue.h" | 5 #include "content/browser/renderer_host/input/mouse_wheel_event_queue.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/location.h" | 10 #include "base/location.h" |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 67 EXPECT_EQ(scroll_units, event->data.scrollUpdate.deltaUnits); \ | 67 EXPECT_EQ(scroll_units, event->data.scrollUpdate.deltaUnits); \ |
| 68 EXPECT_EQ(kWheelScrollX, event->x); \ | 68 EXPECT_EQ(kWheelScrollX, event->x); \ |
| 69 EXPECT_EQ(kWheelScrollY, event->y); \ | 69 EXPECT_EQ(kWheelScrollY, event->y); \ |
| 70 EXPECT_EQ(kWheelScrollGlobalX, event->globalX); \ | 70 EXPECT_EQ(kWheelScrollGlobalX, event->globalX); \ |
| 71 EXPECT_EQ(kWheelScrollGlobalY, event->globalY); | 71 EXPECT_EQ(kWheelScrollGlobalY, event->globalY); |
| 72 | 72 |
| 73 #define EXPECT_GESTURE_SCROLL_UPDATE(event) \ | 73 #define EXPECT_GESTURE_SCROLL_UPDATE(event) \ |
| 74 EXPECT_GESTURE_SCROLL_UPDATE_IMPL(event); \ | 74 EXPECT_GESTURE_SCROLL_UPDATE_IMPL(event); \ |
| 75 EXPECT_FALSE(event->data.scrollUpdate.inertial); | 75 EXPECT_FALSE(event->data.scrollUpdate.inertial); |
| 76 | 76 |
| 77 #define EXPECT_GESTURE_SCROLL_UPDATE(event) \ |
| 78 EXPECT_GESTURE_SCROLL_UPDATE_IMPL(event); \ |
| 79 EXPECT_FALSE(event->data.scrollUpdate.inertial); |
| 80 |
| 77 #define EXPECT_INERTIAL_GESTURE_SCROLL_UPDATE(event) \ | 81 #define EXPECT_INERTIAL_GESTURE_SCROLL_UPDATE(event) \ |
| 78 EXPECT_GESTURE_SCROLL_UPDATE_IMPL(event); \ | 82 EXPECT_GESTURE_SCROLL_UPDATE_IMPL(event); \ |
| 79 EXPECT_TRUE(event->data.scrollUpdate.inertial); | 83 EXPECT_TRUE(event->data.scrollUpdate.inertial); |
| 80 | 84 |
| 81 #define EXPECT_GESTURE_SCROLL_END_IMPL(event) \ | 85 #define EXPECT_GESTURE_SCROLL_END_IMPL(event) \ |
| 82 EXPECT_EQ(WebInputEvent::GestureScrollEnd, event->type); \ | 86 EXPECT_EQ(WebInputEvent::GestureScrollEnd, event->type); \ |
| 83 EXPECT_EQ(scroll_units, event->data.scrollEnd.deltaUnits); \ | 87 EXPECT_EQ(scroll_units, event->data.scrollEnd.deltaUnits); \ |
| 84 EXPECT_EQ(kWheelScrollX, event->x); \ | 88 EXPECT_EQ(kWheelScrollX, event->x); \ |
| 85 EXPECT_EQ(kWheelScrollY, event->y); \ | 89 EXPECT_EQ(kWheelScrollY, event->y); \ |
| 86 EXPECT_EQ(kWheelScrollGlobalX, event->globalX); \ | 90 EXPECT_EQ(kWheelScrollGlobalX, event->globalX); \ |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 184 queue_->ProcessMouseWheelAck(ack_result, ui::LatencyInfo()); | 188 queue_->ProcessMouseWheelAck(ack_result, ui::LatencyInfo()); |
| 185 } | 189 } |
| 186 | 190 |
| 187 void SendMouseWheel(float x, | 191 void SendMouseWheel(float x, |
| 188 float y, | 192 float y, |
| 189 float global_x, | 193 float global_x, |
| 190 float global_y, | 194 float global_y, |
| 191 float dX, | 195 float dX, |
| 192 float dY, | 196 float dY, |
| 193 int modifiers, | 197 int modifiers, |
| 198 bool high_precision, |
| 199 WebInputEvent::RailsMode rails_mode) { |
| 200 WebMouseWheelEvent event = SyntheticWebMouseWheelEventBuilder::Build( |
| 201 x, y, global_x, global_y, dX, dY, modifiers, high_precision); |
| 202 event.railsMode = rails_mode; |
| 203 queue_->QueueEvent(MouseWheelEventWithLatencyInfo(event)); |
| 204 } |
| 205 |
| 206 void SendMouseWheel(float x, |
| 207 float y, |
| 208 float global_x, |
| 209 float global_y, |
| 210 float dX, |
| 211 float dY, |
| 212 int modifiers, |
| 194 bool high_precision) { | 213 bool high_precision) { |
| 195 queue_->QueueEvent(MouseWheelEventWithLatencyInfo( | 214 SendMouseWheel(x, y, global_x, global_y, dX, dY, modifiers, high_precision, |
| 196 SyntheticWebMouseWheelEventBuilder::Build( | 215 WebInputEvent::RailsModeFree); |
| 197 x, y, global_x, global_y, dX, dY, modifiers, high_precision))); | |
| 198 } | 216 } |
| 199 | |
| 200 void SendMouseWheelWithPhase( | 217 void SendMouseWheelWithPhase( |
| 201 float x, | 218 float x, |
| 202 float y, | 219 float y, |
| 203 float global_x, | 220 float global_x, |
| 204 float global_y, | 221 float global_y, |
| 205 float dX, | 222 float dX, |
| 206 float dY, | 223 float dY, |
| 207 int modifiers, | 224 int modifiers, |
| 208 bool high_precision, | 225 bool high_precision, |
| 209 blink::WebMouseWheelEvent::Phase phase, | 226 blink::WebMouseWheelEvent::Phase phase, |
| (...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 468 EXPECT_EQ(0U, queued_event_count()); | 485 EXPECT_EQ(0U, queued_event_count()); |
| 469 EXPECT_FALSE(event_in_flight()); | 486 EXPECT_FALSE(event_in_flight()); |
| 470 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type); | 487 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type); |
| 471 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 488 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
| 472 EXPECT_EQ(2U, all_sent_events().size()); | 489 EXPECT_EQ(2U, all_sent_events().size()); |
| 473 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); | 490 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); |
| 474 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); | 491 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); |
| 475 EXPECT_EQ(2U, GetAndResetSentEventCount()); | 492 EXPECT_EQ(2U, GetAndResetSentEventCount()); |
| 476 } | 493 } |
| 477 | 494 |
| 495 TEST_F(MouseWheelEventQueueTest, GestureRailScrolling) { |
| 496 SetUpForGestureTesting(true); |
| 497 const WebGestureEvent::ScrollUnits scroll_units = WebGestureEvent::Pixels; |
| 498 |
| 499 SendMouseWheel(kWheelScrollX, kWheelScrollY, kWheelScrollGlobalX, |
| 500 kWheelScrollGlobalY, 1, 1, 0, false, |
| 501 WebInputEvent::RailsModeHorizontal); |
| 502 EXPECT_EQ(0U, queued_event_count()); |
| 503 EXPECT_TRUE(event_in_flight()); |
| 504 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
| 505 |
| 506 // Receive an ACK for the mouse wheel event. |
| 507 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
| 508 EXPECT_EQ(0U, queued_event_count()); |
| 509 EXPECT_FALSE(event_in_flight()); |
| 510 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type); |
| 511 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
| 512 EXPECT_EQ(2U, all_sent_events().size()); |
| 513 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); |
| 514 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); |
| 515 EXPECT_EQ(1U, sent_gesture_event(1)->data.scrollUpdate.deltaX); |
| 516 EXPECT_EQ(0U, sent_gesture_event(1)->data.scrollUpdate.deltaY); |
| 517 EXPECT_EQ(2U, GetAndResetSentEventCount()); |
| 518 |
| 519 RunTasksAndWait(DefaultScrollEndTimeoutDelay() * 2); |
| 520 EXPECT_EQ(1U, all_sent_events().size()); |
| 521 EXPECT_GESTURE_SCROLL_END(sent_gesture_event(0)); |
| 522 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
| 523 |
| 524 SendMouseWheel(kWheelScrollX, kWheelScrollY, kWheelScrollGlobalX, |
| 525 kWheelScrollGlobalY, 1, 1, 0, false, |
| 526 WebInputEvent::RailsModeVertical); |
| 527 EXPECT_EQ(0U, queued_event_count()); |
| 528 EXPECT_TRUE(event_in_flight()); |
| 529 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
| 530 |
| 531 // Receive an ACK for the mouse wheel event. |
| 532 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
| 533 EXPECT_EQ(0U, queued_event_count()); |
| 534 EXPECT_FALSE(event_in_flight()); |
| 535 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type); |
| 536 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
| 537 EXPECT_EQ(2U, all_sent_events().size()); |
| 538 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); |
| 539 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); |
| 540 EXPECT_EQ(0U, sent_gesture_event(1)->data.scrollUpdate.deltaX); |
| 541 EXPECT_EQ(1U, sent_gesture_event(1)->data.scrollUpdate.deltaY); |
| 542 EXPECT_EQ(2U, GetAndResetSentEventCount()); |
| 543 } |
| 544 |
| 478 } // namespace content | 545 } // namespace content |
| OLD | NEW |