| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "ui/events/blink/input_handler_proxy.h" | 5 #include "ui/events/blink/input_handler_proxy.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 | 10 |
| (...skipping 496 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 507 input_handler_->MouseUp(); | 507 input_handler_->MouseUp(); |
| 508 } | 508 } |
| 509 return DID_NOT_HANDLE; | 509 return DID_NOT_HANDLE; |
| 510 } | 510 } |
| 511 case WebInputEvent::MouseMove: { | 511 case WebInputEvent::MouseMove: { |
| 512 const WebMouseEvent& mouse_event = | 512 const WebMouseEvent& mouse_event = |
| 513 static_cast<const WebMouseEvent&>(event); | 513 static_cast<const WebMouseEvent&>(event); |
| 514 // TODO(davemoore): This should never happen, but bug #326635 showed some | 514 // TODO(davemoore): This should never happen, but bug #326635 showed some |
| 515 // surprising crashes. | 515 // surprising crashes. |
| 516 CHECK(input_handler_); | 516 CHECK(input_handler_); |
| 517 input_handler_->MouseMoveAt(gfx::Point(mouse_event.x, mouse_event.y)); | 517 input_handler_->MouseMoveAt( |
| 518 gfx::Point(mouse_event.position.x, mouse_event.position.y)); |
| 518 return DID_NOT_HANDLE; | 519 return DID_NOT_HANDLE; |
| 519 } | 520 } |
| 520 case WebInputEvent::MouseLeave: { | 521 case WebInputEvent::MouseLeave: { |
| 521 CHECK(input_handler_); | 522 CHECK(input_handler_); |
| 522 input_handler_->MouseLeave(); | 523 input_handler_->MouseLeave(); |
| 523 return DID_NOT_HANDLE; | 524 return DID_NOT_HANDLE; |
| 524 } | 525 } |
| 525 | 526 |
| 526 default: | 527 default: |
| 527 if (WebInputEvent::isKeyboardEventType(event.type())) { | 528 if (WebInputEvent::isKeyboardEventType(event.type())) { |
| (...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 698 if (touchpad_and_wheel_scroll_latching_enabled_) { | 699 if (touchpad_and_wheel_scroll_latching_enabled_) { |
| 699 if (gesture_scroll_on_impl_thread_) { | 700 if (gesture_scroll_on_impl_thread_) { |
| 700 TRACE_EVENT_INSTANT2("input", | 701 TRACE_EVENT_INSTANT2("input", |
| 701 "InputHandlerProxy::handle_input wheel scroll", | 702 "InputHandlerProxy::handle_input wheel scroll", |
| 702 TRACE_EVENT_SCOPE_THREAD, "deltaX", scroll_delta.x(), | 703 TRACE_EVENT_SCOPE_THREAD, "deltaX", scroll_delta.x(), |
| 703 "deltaY", scroll_delta.y()); | 704 "deltaY", scroll_delta.y()); |
| 704 | 705 |
| 705 cc::ScrollStateData scroll_state_update_data; | 706 cc::ScrollStateData scroll_state_update_data; |
| 706 scroll_state_update_data.delta_x = scroll_delta.x(); | 707 scroll_state_update_data.delta_x = scroll_delta.x(); |
| 707 scroll_state_update_data.delta_y = scroll_delta.y(); | 708 scroll_state_update_data.delta_y = scroll_delta.y(); |
| 708 scroll_state_update_data.position_x = wheel_event.x; | 709 scroll_state_update_data.position_x = wheel_event.position.x; |
| 709 scroll_state_update_data.position_y = wheel_event.y; | 710 scroll_state_update_data.position_y = wheel_event.position.y; |
| 710 cc::ScrollState scroll_state_update(scroll_state_update_data); | 711 cc::ScrollState scroll_state_update(scroll_state_update_data); |
| 711 | 712 |
| 712 cc::InputHandlerScrollResult scroll_result = | 713 cc::InputHandlerScrollResult scroll_result = |
| 713 input_handler_->ScrollBy(&scroll_state_update); | 714 input_handler_->ScrollBy(&scroll_state_update); |
| 714 HandleOverscroll(gfx::Point(wheel_event.x, wheel_event.y), scroll_result, | 715 HandleOverscroll( |
| 715 false); | 716 gfx::Point(wheel_event.position.x, wheel_event.position.y), |
| 717 scroll_result, false); |
| 716 if (scroll_result.did_scroll) { | 718 if (scroll_result.did_scroll) { |
| 717 return listener_properties == cc::EventListenerProperties::kPassive | 719 return listener_properties == cc::EventListenerProperties::kPassive |
| 718 ? DID_HANDLE_NON_BLOCKING | 720 ? DID_HANDLE_NON_BLOCKING |
| 719 : DID_HANDLE; | 721 : DID_HANDLE; |
| 720 } | 722 } |
| 721 | 723 |
| 722 return DROP_EVENT; | 724 return DROP_EVENT; |
| 723 } else { | 725 } else { |
| 724 return DID_NOT_HANDLE; | 726 return DID_NOT_HANDLE; |
| 725 } | 727 } |
| 726 } else { // !touchpad_and_wheel_scroll_latching_enabled_ | 728 } else { // !touchpad_and_wheel_scroll_latching_enabled_ |
| 727 cc::ScrollStateData scroll_state_begin_data; | 729 cc::ScrollStateData scroll_state_begin_data; |
| 728 scroll_state_begin_data.position_x = wheel_event.x; | 730 scroll_state_begin_data.position_x = wheel_event.position.x; |
| 729 scroll_state_begin_data.position_y = wheel_event.y; | 731 scroll_state_begin_data.position_y = wheel_event.position.y; |
| 730 scroll_state_begin_data.is_beginning = true; | 732 scroll_state_begin_data.is_beginning = true; |
| 731 cc::ScrollState scroll_state_begin(scroll_state_begin_data); | 733 cc::ScrollState scroll_state_begin(scroll_state_begin_data); |
| 732 cc::InputHandler::ScrollStatus scroll_status = input_handler_->ScrollBegin( | 734 cc::InputHandler::ScrollStatus scroll_status = input_handler_->ScrollBegin( |
| 733 &scroll_state_begin, cc::InputHandler::WHEEL); | 735 &scroll_state_begin, cc::InputHandler::WHEEL); |
| 734 | 736 |
| 735 RecordMainThreadScrollingReasons( | 737 RecordMainThreadScrollingReasons( |
| 736 blink::WebGestureDeviceTouchpad, | 738 blink::WebGestureDeviceTouchpad, |
| 737 scroll_status.main_thread_scrolling_reasons); | 739 scroll_status.main_thread_scrolling_reasons); |
| 738 | 740 |
| 739 mouse_wheel_result_ = | 741 mouse_wheel_result_ = |
| 740 (listener_properties == cc::EventListenerProperties::kPassive) | 742 (listener_properties == cc::EventListenerProperties::kPassive) |
| 741 ? DID_HANDLE_NON_BLOCKING | 743 ? DID_HANDLE_NON_BLOCKING |
| 742 : DROP_EVENT; | 744 : DROP_EVENT; |
| 743 RecordScrollingThreadStatus(blink::WebGestureDeviceTouchpad, | 745 RecordScrollingThreadStatus(blink::WebGestureDeviceTouchpad, |
| 744 scroll_status.main_thread_scrolling_reasons); | 746 scroll_status.main_thread_scrolling_reasons); |
| 745 | 747 |
| 746 switch (scroll_status.thread) { | 748 switch (scroll_status.thread) { |
| 747 case cc::InputHandler::SCROLL_ON_IMPL_THREAD: { | 749 case cc::InputHandler::SCROLL_ON_IMPL_THREAD: { |
| 748 TRACE_EVENT_INSTANT2("input", | 750 TRACE_EVENT_INSTANT2("input", |
| 749 "InputHandlerProxy::handle_input wheel scroll", | 751 "InputHandlerProxy::handle_input wheel scroll", |
| 750 TRACE_EVENT_SCOPE_THREAD, "deltaX", | 752 TRACE_EVENT_SCOPE_THREAD, "deltaX", |
| 751 scroll_delta.x(), "deltaY", scroll_delta.y()); | 753 scroll_delta.x(), "deltaY", scroll_delta.y()); |
| 752 | 754 |
| 753 cc::ScrollStateData scroll_state_update_data; | 755 cc::ScrollStateData scroll_state_update_data; |
| 754 scroll_state_update_data.delta_x = scroll_delta.x(); | 756 scroll_state_update_data.delta_x = scroll_delta.x(); |
| 755 scroll_state_update_data.delta_y = scroll_delta.y(); | 757 scroll_state_update_data.delta_y = scroll_delta.y(); |
| 756 scroll_state_update_data.position_x = wheel_event.x; | 758 scroll_state_update_data.position_x = wheel_event.position.x; |
| 757 scroll_state_update_data.position_y = wheel_event.y; | 759 scroll_state_update_data.position_y = wheel_event.position.y; |
| 758 cc::ScrollState scroll_state_update(scroll_state_update_data); | 760 cc::ScrollState scroll_state_update(scroll_state_update_data); |
| 759 | 761 |
| 760 cc::InputHandlerScrollResult scroll_result = | 762 cc::InputHandlerScrollResult scroll_result = |
| 761 input_handler_->ScrollBy(&scroll_state_update); | 763 input_handler_->ScrollBy(&scroll_state_update); |
| 762 HandleOverscroll(gfx::Point(wheel_event.x, wheel_event.y), | 764 HandleOverscroll( |
| 763 scroll_result, false); | 765 gfx::Point(wheel_event.position.x, wheel_event.position.y), |
| 766 scroll_result, false); |
| 764 | 767 |
| 765 cc::ScrollStateData scroll_state_end_data; | 768 cc::ScrollStateData scroll_state_end_data; |
| 766 scroll_state_end_data.is_ending = true; | 769 scroll_state_end_data.is_ending = true; |
| 767 cc::ScrollState scroll_state_end(scroll_state_end_data); | 770 cc::ScrollState scroll_state_end(scroll_state_end_data); |
| 768 input_handler_->ScrollEnd(&scroll_state_end); | 771 input_handler_->ScrollEnd(&scroll_state_end); |
| 769 | 772 |
| 770 if (scroll_result.did_scroll) { | 773 if (scroll_result.did_scroll) { |
| 771 return listener_properties == cc::EventListenerProperties::kPassive | 774 return listener_properties == cc::EventListenerProperties::kPassive |
| 772 ? DID_HANDLE_NON_BLOCKING | 775 ? DID_HANDLE_NON_BLOCKING |
| 773 : DID_HANDLE; | 776 : DID_HANDLE; |
| (...skipping 707 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1481 disposition = DID_NOT_HANDLE; | 1484 disposition = DID_NOT_HANDLE; |
| 1482 break; | 1485 break; |
| 1483 case cc::EventListenerProperties::kPassive: | 1486 case cc::EventListenerProperties::kPassive: |
| 1484 case cc::EventListenerProperties::kNone: { | 1487 case cc::EventListenerProperties::kNone: { |
| 1485 WebMouseWheelEvent synthetic_wheel(WebInputEvent::MouseWheel, | 1488 WebMouseWheelEvent synthetic_wheel(WebInputEvent::MouseWheel, |
| 1486 fling_parameters_.modifiers, | 1489 fling_parameters_.modifiers, |
| 1487 InSecondsF(base::TimeTicks::Now())); | 1490 InSecondsF(base::TimeTicks::Now())); |
| 1488 synthetic_wheel.deltaX = increment.width; | 1491 synthetic_wheel.deltaX = increment.width; |
| 1489 synthetic_wheel.deltaY = increment.height; | 1492 synthetic_wheel.deltaY = increment.height; |
| 1490 synthetic_wheel.hasPreciseScrollingDeltas = true; | 1493 synthetic_wheel.hasPreciseScrollingDeltas = true; |
| 1491 synthetic_wheel.x = fling_parameters_.point.x; | 1494 synthetic_wheel.position.x = fling_parameters_.point.x; |
| 1492 synthetic_wheel.y = fling_parameters_.point.y; | 1495 synthetic_wheel.position.y = fling_parameters_.point.y; |
| 1493 synthetic_wheel.globalX = fling_parameters_.globalPoint.x; | 1496 synthetic_wheel.screenPosition.x = fling_parameters_.globalPoint.x; |
| 1494 synthetic_wheel.globalY = fling_parameters_.globalPoint.y; | 1497 synthetic_wheel.screenPosition.y = fling_parameters_.globalPoint.y; |
| 1495 | 1498 |
| 1496 disposition = FlingScrollByMouseWheel(synthetic_wheel, properties); | 1499 disposition = FlingScrollByMouseWheel(synthetic_wheel, properties); |
| 1497 | 1500 |
| 1498 // Send the event over to the main thread. | 1501 // Send the event over to the main thread. |
| 1499 if (disposition == DID_HANDLE_NON_BLOCKING) { | 1502 if (disposition == DID_HANDLE_NON_BLOCKING) { |
| 1500 client_->DispatchNonBlockingEventToMainThread( | 1503 client_->DispatchNonBlockingEventToMainThread( |
| 1501 ui::WebInputEventTraits::Clone(synthetic_wheel), ui::LatencyInfo()); | 1504 ui::WebInputEventTraits::Clone(synthetic_wheel), ui::LatencyInfo()); |
| 1502 } | 1505 } |
| 1503 break; | 1506 break; |
| 1504 } | 1507 } |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1616 scroll_elasticity_controller_->GetWeakPtr(), gesture_event, | 1619 scroll_elasticity_controller_->GetWeakPtr(), gesture_event, |
| 1617 scroll_result)); | 1620 scroll_result)); |
| 1618 } | 1621 } |
| 1619 | 1622 |
| 1620 void InputHandlerProxy::SetTickClockForTesting( | 1623 void InputHandlerProxy::SetTickClockForTesting( |
| 1621 std::unique_ptr<base::TickClock> tick_clock) { | 1624 std::unique_ptr<base::TickClock> tick_clock) { |
| 1622 tick_clock_ = std::move(tick_clock); | 1625 tick_clock_ = std::move(tick_clock); |
| 1623 } | 1626 } |
| 1624 | 1627 |
| 1625 } // namespace ui | 1628 } // namespace ui |
| OLD | NEW |