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

Side by Side Diff: content/browser/renderer_host/input/input_router_impl.cc

Issue 258503003: Remove smiluate-touch-screen-with-mouse content flag. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed compile. Created 6 years, 7 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 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 "content/browser/renderer_host/input/input_router_impl.h" 5 #include "content/browser/renderer_host/input/input_router_impl.h"
6 6
7 #include "base/auto_reset.h" 7 #include "base/auto_reset.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/metrics/histogram.h" 9 #include "base/metrics/histogram.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 return TouchEventQueue::TOUCH_SCROLLING_MODE_ASYNC_TOUCHMOVE; 92 return TouchEventQueue::TOUCH_SCROLLING_MODE_ASYNC_TOUCHMOVE;
93 if (modeString == switches::kTouchScrollingModeSyncTouchmove) 93 if (modeString == switches::kTouchScrollingModeSyncTouchmove)
94 return TouchEventQueue::TOUCH_SCROLLING_MODE_SYNC_TOUCHMOVE; 94 return TouchEventQueue::TOUCH_SCROLLING_MODE_SYNC_TOUCHMOVE;
95 if (modeString == switches::kTouchScrollingModeTouchcancel) 95 if (modeString == switches::kTouchScrollingModeTouchcancel)
96 return TouchEventQueue::TOUCH_SCROLLING_MODE_TOUCHCANCEL; 96 return TouchEventQueue::TOUCH_SCROLLING_MODE_TOUCHCANCEL;
97 if (modeString != "") 97 if (modeString != "")
98 LOG(ERROR) << "Invalid --touch-scrolling-mode option: " << modeString; 98 LOG(ERROR) << "Invalid --touch-scrolling-mode option: " << modeString;
99 return TouchEventQueue::TOUCH_SCROLLING_MODE_DEFAULT; 99 return TouchEventQueue::TOUCH_SCROLLING_MODE_DEFAULT;
100 } 100 }
101 101
102 GestureEventWithLatencyInfo MakeGestureEvent(WebInputEvent::Type type,
103 double timestamp_seconds,
104 int x,
105 int y,
106 int modifiers,
107 const ui::LatencyInfo& latency) {
108 WebGestureEvent result;
109
110 result.type = type;
111 result.x = x;
112 result.y = y;
113 result.sourceDevice = WebGestureEvent::Touchscreen;
114 result.timeStampSeconds = timestamp_seconds;
115 result.modifiers = modifiers;
116
117 return GestureEventWithLatencyInfo(result, latency);
118 }
119
120 const char* GetEventAckName(InputEventAckState ack_result) { 102 const char* GetEventAckName(InputEventAckState ack_result) {
121 switch(ack_result) { 103 switch(ack_result) {
122 case INPUT_EVENT_ACK_STATE_UNKNOWN: return "UNKNOWN"; 104 case INPUT_EVENT_ACK_STATE_UNKNOWN: return "UNKNOWN";
123 case INPUT_EVENT_ACK_STATE_CONSUMED: return "CONSUMED"; 105 case INPUT_EVENT_ACK_STATE_CONSUMED: return "CONSUMED";
124 case INPUT_EVENT_ACK_STATE_NOT_CONSUMED: return "NOT_CONSUMED"; 106 case INPUT_EVENT_ACK_STATE_NOT_CONSUMED: return "NOT_CONSUMED";
125 case INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS: return "NO_CONSUMER_EXISTS"; 107 case INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS: return "NO_CONSUMER_EXISTS";
126 case INPUT_EVENT_ACK_STATE_IGNORED: return "IGNORED"; 108 case INPUT_EVENT_ACK_STATE_IGNORED: return "IGNORED";
127 } 109 }
128 DLOG(WARNING) << "Unhandled InputEventAckState in GetEventAckName."; 110 DLOG(WARNING) << "Unhandled InputEventAckState in GetEventAckName.";
129 return ""; 111 return "";
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 case InputMsg_HandleInputEvent::ID: 159 case InputMsg_HandleInputEvent::ID:
178 NOTREACHED() << "WebInputEvents should never be sent via SendInput."; 160 NOTREACHED() << "WebInputEvents should never be sent via SendInput.";
179 return false; 161 return false;
180 default: 162 default:
181 return Send(message.release()); 163 return Send(message.release());
182 } 164 }
183 } 165 }
184 166
185 void InputRouterImpl::SendMouseEvent( 167 void InputRouterImpl::SendMouseEvent(
186 const MouseEventWithLatencyInfo& mouse_event) { 168 const MouseEventWithLatencyInfo& mouse_event) {
187 // Order is important here; we need to convert all MouseEvents before they
188 // propagate further, e.g., to the tap suppression controller.
189 if (CommandLine::ForCurrentProcess()->HasSwitch(
190 switches::kSimulateTouchScreenWithMouse)) {
191 SimulateTouchGestureWithMouse(mouse_event);
192 return;
193 }
194
195 if (mouse_event.event.type == WebInputEvent::MouseDown && 169 if (mouse_event.event.type == WebInputEvent::MouseDown &&
196 gesture_event_queue_.GetTouchpadTapSuppressionController()-> 170 gesture_event_queue_.GetTouchpadTapSuppressionController()->
197 ShouldDeferMouseDown(mouse_event)) 171 ShouldDeferMouseDown(mouse_event))
198 return; 172 return;
199 if (mouse_event.event.type == WebInputEvent::MouseUp && 173 if (mouse_event.event.type == WebInputEvent::MouseUp &&
200 gesture_event_queue_.GetTouchpadTapSuppressionController()-> 174 gesture_event_queue_.GetTouchpadTapSuppressionController()->
201 ShouldSuppressMouseUp()) 175 ShouldSuppressMouseUp())
202 return; 176 return;
203 177
204 SendMouseEventImmediately(mouse_event); 178 SendMouseEventImmediately(mouse_event);
(...skipping 516 matching lines...) Expand 10 before | Expand all | Expand 10 after
721 return; 695 return;
722 696
723 OverscrollController* controller = client_->GetOverscrollController(); 697 OverscrollController* controller = client_->GetOverscrollController();
724 if (!controller) 698 if (!controller)
725 return; 699 return;
726 700
727 controller->ReceivedEventACK( 701 controller->ReceivedEventACK(
728 event, (INPUT_EVENT_ACK_STATE_CONSUMED == ack_result)); 702 event, (INPUT_EVENT_ACK_STATE_CONSUMED == ack_result));
729 } 703 }
730 704
731 void InputRouterImpl::SimulateTouchGestureWithMouse(
732 const MouseEventWithLatencyInfo& event) {
733 const WebMouseEvent& mouse_event = event.event;
734 int x = mouse_event.x, y = mouse_event.y;
735 float dx = mouse_event.movementX, dy = mouse_event.movementY;
736 static int startX = 0, startY = 0;
737
738 switch (mouse_event.button) {
739 case WebMouseEvent::ButtonLeft:
740 if (mouse_event.type == WebInputEvent::MouseDown) {
741 startX = x;
742 startY = y;
743 SendGestureEvent(MakeGestureEvent(
744 WebInputEvent::GestureScrollBegin, mouse_event.timeStampSeconds,
745 x, y, 0, event.latency));
746 }
747 if (dx != 0 || dy != 0) {
748 GestureEventWithLatencyInfo gesture_event = MakeGestureEvent(
749 WebInputEvent::GestureScrollUpdate, mouse_event.timeStampSeconds,
750 x, y, 0, event.latency);
751 gesture_event.event.data.scrollUpdate.deltaX = dx;
752 gesture_event.event.data.scrollUpdate.deltaY = dy;
753 SendGestureEvent(gesture_event);
754 }
755 if (mouse_event.type == WebInputEvent::MouseUp) {
756 SendGestureEvent(MakeGestureEvent(
757 WebInputEvent::GestureScrollEnd, mouse_event.timeStampSeconds,
758 x, y, 0, event.latency));
759 }
760 break;
761 case WebMouseEvent::ButtonMiddle:
762 if (mouse_event.type == WebInputEvent::MouseDown) {
763 startX = x;
764 startY = y;
765 SendGestureEvent(MakeGestureEvent(
766 WebInputEvent::GestureShowPress, mouse_event.timeStampSeconds,
767 x, y, 0, event.latency));
768 SendGestureEvent(MakeGestureEvent(
769 WebInputEvent::GestureTapDown, mouse_event.timeStampSeconds,
770 x, y, 0, event.latency));
771 }
772 if (mouse_event.type == WebInputEvent::MouseUp) {
773 SendGestureEvent(MakeGestureEvent(
774 WebInputEvent::GestureTap, mouse_event.timeStampSeconds,
775 x, y, 0, event.latency));
776 }
777 break;
778 case WebMouseEvent::ButtonRight:
779 if (mouse_event.type == WebInputEvent::MouseDown) {
780 startX = x;
781 startY = y;
782 SendGestureEvent(MakeGestureEvent(
783 WebInputEvent::GestureScrollBegin, mouse_event.timeStampSeconds,
784 x, y, 0, event.latency));
785 SendGestureEvent(MakeGestureEvent(
786 WebInputEvent::GesturePinchBegin, mouse_event.timeStampSeconds,
787 x, y, 0, event.latency));
788 }
789 if (dx != 0 || dy != 0) {
790 dx = pow(dy < 0 ? 0.998f : 1.002f, fabs(dy));
791 GestureEventWithLatencyInfo gesture_event = MakeGestureEvent(
792 WebInputEvent::GesturePinchUpdate, mouse_event.timeStampSeconds,
793 startX, startY, 0, event.latency);
794 gesture_event.event.data.pinchUpdate.scale = dx;
795 SendGestureEvent(gesture_event);
796 }
797 if (mouse_event.type == WebInputEvent::MouseUp) {
798 SendGestureEvent(MakeGestureEvent(
799 WebInputEvent::GesturePinchEnd, mouse_event.timeStampSeconds,
800 x, y, 0, event.latency));
801 SendGestureEvent(MakeGestureEvent(
802 WebInputEvent::GestureScrollEnd, mouse_event.timeStampSeconds,
803 x, y, 0, event.latency));
804 }
805 break;
806 case WebMouseEvent::ButtonNone:
807 break;
808 }
809 }
810
811 void InputRouterImpl::UpdateTouchAckTimeoutEnabled() { 705 void InputRouterImpl::UpdateTouchAckTimeoutEnabled() {
812 if (!touch_ack_timeout_supported_) { 706 if (!touch_ack_timeout_supported_) {
813 touch_event_queue_.SetAckTimeoutEnabled(false, base::TimeDelta()); 707 touch_event_queue_.SetAckTimeoutEnabled(false, base::TimeDelta());
814 return; 708 return;
815 } 709 }
816 710
817 // Mobile sites tend to be well-behaved with respect to touch handling, so 711 // Mobile sites tend to be well-behaved with respect to touch handling, so
818 // they have less need for the touch timeout fallback. 712 // they have less need for the touch timeout fallback.
819 const bool fixed_page_scale = (current_view_flags_ & FIXED_PAGE_SCALE) != 0; 713 const bool fixed_page_scale = (current_view_flags_ & FIXED_PAGE_SCALE) != 0;
820 const bool mobile_viewport = (current_view_flags_ & MOBILE_VIEWPORT) != 0; 714 const bool mobile_viewport = (current_view_flags_ & MOBILE_VIEWPORT) != 0;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
852 select_range_pending_ || 746 select_range_pending_ ||
853 move_caret_pending_; 747 move_caret_pending_;
854 } 748 }
855 749
856 bool InputRouterImpl::IsInOverscrollGesture() const { 750 bool InputRouterImpl::IsInOverscrollGesture() const {
857 OverscrollController* controller = client_->GetOverscrollController(); 751 OverscrollController* controller = client_->GetOverscrollController();
858 return controller && controller->overscroll_mode() != OVERSCROLL_NONE; 752 return controller && controller->overscroll_mode() != OVERSCROLL_NONE;
859 } 753 }
860 754
861 } // namespace content 755 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/renderer_host/input/input_router_impl.h ('k') | content/public/common/content_switches.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698