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

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

Issue 138163016: [DevTools] Touch emulation in content. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Another approach in RWH unittest Created 6 years, 8 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
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 "content/browser/renderer_host/render_widget_host_impl.h" 5 #include "content/browser/renderer_host/render_widget_host_impl.h"
6 6
7 #include <math.h> 7 #include <math.h>
8 #include <set> 8 #include <set>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 20 matching lines...) Expand all
31 #include "content/browser/gpu/gpu_process_host_ui_shim.h" 31 #include "content/browser/gpu/gpu_process_host_ui_shim.h"
32 #include "content/browser/gpu/gpu_surface_tracker.h" 32 #include "content/browser/gpu/gpu_surface_tracker.h"
33 #include "content/browser/renderer_host/backing_store.h" 33 #include "content/browser/renderer_host/backing_store.h"
34 #include "content/browser/renderer_host/backing_store_manager.h" 34 #include "content/browser/renderer_host/backing_store_manager.h"
35 #include "content/browser/renderer_host/dip_util.h" 35 #include "content/browser/renderer_host/dip_util.h"
36 #include "content/browser/renderer_host/input/input_router_impl.h" 36 #include "content/browser/renderer_host/input/input_router_impl.h"
37 #include "content/browser/renderer_host/input/synthetic_gesture.h" 37 #include "content/browser/renderer_host/input/synthetic_gesture.h"
38 #include "content/browser/renderer_host/input/synthetic_gesture_controller.h" 38 #include "content/browser/renderer_host/input/synthetic_gesture_controller.h"
39 #include "content/browser/renderer_host/input/synthetic_gesture_target.h" 39 #include "content/browser/renderer_host/input/synthetic_gesture_target.h"
40 #include "content/browser/renderer_host/input/timeout_monitor.h" 40 #include "content/browser/renderer_host/input/timeout_monitor.h"
41 #include "content/browser/renderer_host/input/touch_emulator.h"
41 #include "content/browser/renderer_host/overscroll_controller.h" 42 #include "content/browser/renderer_host/overscroll_controller.h"
42 #include "content/browser/renderer_host/render_process_host_impl.h" 43 #include "content/browser/renderer_host/render_process_host_impl.h"
43 #include "content/browser/renderer_host/render_view_host_impl.h" 44 #include "content/browser/renderer_host/render_view_host_impl.h"
44 #include "content/browser/renderer_host/render_widget_helper.h" 45 #include "content/browser/renderer_host/render_widget_helper.h"
45 #include "content/browser/renderer_host/render_widget_host_delegate.h" 46 #include "content/browser/renderer_host/render_widget_host_delegate.h"
46 #include "content/common/accessibility_messages.h" 47 #include "content/common/accessibility_messages.h"
47 #include "content/common/content_constants_internal.h" 48 #include "content/common/content_constants_internal.h"
48 #include "content/common/cursors/webcursor.h" 49 #include "content/common/cursors/webcursor.h"
49 #include "content/common/gpu/gpu_messages.h" 50 #include "content/common/gpu/gpu_messages.h"
50 #include "content/common/input_messages.h" 51 #include "content/common/input_messages.h"
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 // If we're initially visible, tell the process host that we're alive. 237 // If we're initially visible, tell the process host that we're alive.
237 // Otherwise we'll notify the process host when we are first shown. 238 // Otherwise we'll notify the process host when we are first shown.
238 if (!hidden) 239 if (!hidden)
239 process_->WidgetRestored(); 240 process_->WidgetRestored();
240 241
241 accessibility_mode_ = 242 accessibility_mode_ =
242 BrowserAccessibilityStateImpl::GetInstance()->accessibility_mode(); 243 BrowserAccessibilityStateImpl::GetInstance()->accessibility_mode();
243 244
244 input_router_.reset(new InputRouterImpl(process_, this, this, routing_id_)); 245 input_router_.reset(new InputRouterImpl(process_, this, this, routing_id_));
245 246
247 touch_emulator_.reset();
248
246 #if defined(USE_AURA) 249 #if defined(USE_AURA)
247 bool overscroll_enabled = CommandLine::ForCurrentProcess()-> 250 bool overscroll_enabled = CommandLine::ForCurrentProcess()->
248 GetSwitchValueASCII(switches::kOverscrollHistoryNavigation) != "0"; 251 GetSwitchValueASCII(switches::kOverscrollHistoryNavigation) != "0";
249 SetOverscrollControllerEnabled(overscroll_enabled); 252 SetOverscrollControllerEnabled(overscroll_enabled);
250 #endif 253 #endif
251 254
252 if (GetProcess()->IsGuest() || !CommandLine::ForCurrentProcess()->HasSwitch( 255 if (GetProcess()->IsGuest() || !CommandLine::ForCurrentProcess()->HasSwitch(
253 switches::kDisableHangMonitor)) { 256 switches::kDisableHangMonitor)) {
254 hang_monitor_timeout_.reset(new TimeoutMonitor( 257 hang_monitor_timeout_.reset(new TimeoutMonitor(
255 base::Bind(&RenderWidgetHostImpl::RendererIsUnresponsive, 258 base::Bind(&RenderWidgetHostImpl::RendererIsUnresponsive,
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
476 IPC_MESSAGE_HANDLER(ViewHostMsg_SetTooltipText, OnSetTooltipText) 479 IPC_MESSAGE_HANDLER(ViewHostMsg_SetTooltipText, OnSetTooltipText)
477 IPC_MESSAGE_HANDLER_GENERIC(ViewHostMsg_SwapCompositorFrame, 480 IPC_MESSAGE_HANDLER_GENERIC(ViewHostMsg_SwapCompositorFrame,
478 msg_is_ok = OnSwapCompositorFrame(msg)) 481 msg_is_ok = OnSwapCompositorFrame(msg))
479 IPC_MESSAGE_HANDLER(ViewHostMsg_DidOverscroll, OnOverscrolled) 482 IPC_MESSAGE_HANDLER(ViewHostMsg_DidOverscroll, OnOverscrolled)
480 IPC_MESSAGE_HANDLER(ViewHostMsg_DidStopFlinging, OnFlingingStopped) 483 IPC_MESSAGE_HANDLER(ViewHostMsg_DidStopFlinging, OnFlingingStopped)
481 IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateRect, OnUpdateRect) 484 IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateRect, OnUpdateRect)
482 IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateIsDelayed, OnUpdateIsDelayed) 485 IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateIsDelayed, OnUpdateIsDelayed)
483 IPC_MESSAGE_HANDLER(ViewHostMsg_Focus, OnFocus) 486 IPC_MESSAGE_HANDLER(ViewHostMsg_Focus, OnFocus)
484 IPC_MESSAGE_HANDLER(ViewHostMsg_Blur, OnBlur) 487 IPC_MESSAGE_HANDLER(ViewHostMsg_Blur, OnBlur)
485 IPC_MESSAGE_HANDLER(ViewHostMsg_SetCursor, OnSetCursor) 488 IPC_MESSAGE_HANDLER(ViewHostMsg_SetCursor, OnSetCursor)
489 IPC_MESSAGE_HANDLER(ViewHostMsg_SetTouchEventEmulationEnabled,
490 OnSetTouchEventEmulationEnabled)
486 IPC_MESSAGE_HANDLER(ViewHostMsg_TextInputTypeChanged, 491 IPC_MESSAGE_HANDLER(ViewHostMsg_TextInputTypeChanged,
487 OnTextInputTypeChanged) 492 OnTextInputTypeChanged)
488 IPC_MESSAGE_HANDLER(ViewHostMsg_ImeCancelComposition, 493 IPC_MESSAGE_HANDLER(ViewHostMsg_ImeCancelComposition,
489 OnImeCancelComposition) 494 OnImeCancelComposition)
490 IPC_MESSAGE_HANDLER(ViewHostMsg_DidActivateAcceleratedCompositing, 495 IPC_MESSAGE_HANDLER(ViewHostMsg_DidActivateAcceleratedCompositing,
491 OnDidActivateAcceleratedCompositing) 496 OnDidActivateAcceleratedCompositing)
492 IPC_MESSAGE_HANDLER(ViewHostMsg_LockMouse, OnLockMouse) 497 IPC_MESSAGE_HANDLER(ViewHostMsg_LockMouse, OnLockMouse)
493 IPC_MESSAGE_HANDLER(ViewHostMsg_UnlockMouse, OnUnlockMouse) 498 IPC_MESSAGE_HANDLER(ViewHostMsg_UnlockMouse, OnUnlockMouse)
494 IPC_MESSAGE_HANDLER(ViewHostMsg_ShowDisambiguationPopup, 499 IPC_MESSAGE_HANDLER(ViewHostMsg_ShowDisambiguationPopup,
495 OnShowDisambiguationPopup) 500 OnShowDisambiguationPopup)
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
674 // If there is a pending mouse lock request, we don't want to reject it at 679 // If there is a pending mouse lock request, we don't want to reject it at
675 // this point. The user can switch focus back to this view and approve the 680 // this point. The user can switch focus back to this view and approve the
676 // request later. 681 // request later.
677 if (IsMouseLocked()) 682 if (IsMouseLocked())
678 view_->UnlockMouse(); 683 view_->UnlockMouse();
679 684
680 // If there is a pending overscroll, then that should be cancelled. 685 // If there is a pending overscroll, then that should be cancelled.
681 if (overscroll_controller_) 686 if (overscroll_controller_)
682 overscroll_controller_->Cancel(); 687 overscroll_controller_->Cancel();
683 688
689 if (touch_emulator_)
690 touch_emulator_->CancelTouch();
691
684 Send(new InputMsg_SetFocus(routing_id_, false)); 692 Send(new InputMsg_SetFocus(routing_id_, false));
685 } 693 }
686 694
687 void RenderWidgetHostImpl::LostCapture() { 695 void RenderWidgetHostImpl::LostCapture() {
696 if (touch_emulator_)
697 touch_emulator_->CancelTouch();
698
688 Send(new InputMsg_MouseCaptureLost(routing_id_)); 699 Send(new InputMsg_MouseCaptureLost(routing_id_));
689 } 700 }
690 701
691 void RenderWidgetHostImpl::SetActive(bool active) { 702 void RenderWidgetHostImpl::SetActive(bool active) {
692 Send(new ViewMsg_SetActive(routing_id_, active)); 703 Send(new ViewMsg_SetActive(routing_id_, active));
693 } 704 }
694 705
695 void RenderWidgetHostImpl::LostMouseLock() { 706 void RenderWidgetHostImpl::LostMouseLock() {
696 Send(new ViewMsg_MouseLockLost(routing_id_)); 707 Send(new ViewMsg_MouseLockLost(routing_id_));
697 } 708 }
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
991 CreateRWHLatencyInfoIfNotExist(&ui_latency, mouse_event.type); 1002 CreateRWHLatencyInfoIfNotExist(&ui_latency, mouse_event.type);
992 1003
993 for (size_t i = 0; i < mouse_event_callbacks_.size(); ++i) { 1004 for (size_t i = 0; i < mouse_event_callbacks_.size(); ++i) {
994 if (mouse_event_callbacks_[i].Run(mouse_event)) 1005 if (mouse_event_callbacks_[i].Run(mouse_event))
995 return; 1006 return;
996 } 1007 }
997 1008
998 if (IgnoreInputEvents()) 1009 if (IgnoreInputEvents())
999 return; 1010 return;
1000 1011
1012 if (touch_emulator_ && touch_emulator_->HandleMouseEvent(mouse_event))
1013 return;
1014
1001 input_router_->SendMouseEvent(MouseEventWithLatencyInfo(mouse_event, 1015 input_router_->SendMouseEvent(MouseEventWithLatencyInfo(mouse_event,
1002 latency_info)); 1016 latency_info));
1003 } 1017 }
1004 1018
1005 void RenderWidgetHostImpl::OnPointerEventActivate() { 1019 void RenderWidgetHostImpl::OnPointerEventActivate() {
1006 } 1020 }
1007 1021
1008 void RenderWidgetHostImpl::ForwardWheelEvent( 1022 void RenderWidgetHostImpl::ForwardWheelEvent(
1009 const WebMouseWheelEvent& wheel_event) { 1023 const WebMouseWheelEvent& wheel_event) {
1010 ForwardWheelEventWithLatencyInfo(wheel_event, ui::LatencyInfo()); 1024 ForwardWheelEventWithLatencyInfo(wheel_event, ui::LatencyInfo());
1011 } 1025 }
1012 1026
1013 void RenderWidgetHostImpl::ForwardWheelEventWithLatencyInfo( 1027 void RenderWidgetHostImpl::ForwardWheelEventWithLatencyInfo(
1014 const blink::WebMouseWheelEvent& wheel_event, 1028 const blink::WebMouseWheelEvent& wheel_event,
1015 const ui::LatencyInfo& ui_latency) { 1029 const ui::LatencyInfo& ui_latency) {
1016 TRACE_EVENT0("input", "RenderWidgetHostImpl::ForwardWheelEvent"); 1030 TRACE_EVENT0("input", "RenderWidgetHostImpl::ForwardWheelEvent");
1017 1031
1018 ui::LatencyInfo latency_info = 1032 ui::LatencyInfo latency_info =
1019 CreateRWHLatencyInfoIfNotExist(&ui_latency, wheel_event.type); 1033 CreateRWHLatencyInfoIfNotExist(&ui_latency, wheel_event.type);
1020 1034
1021 if (IgnoreInputEvents()) 1035 if (IgnoreInputEvents())
1022 return; 1036 return;
1023 1037
1038 if (touch_emulator_ && touch_emulator_->HandleMouseWheelEvent(wheel_event))
1039 return;
1040
1024 input_router_->SendWheelEvent(MouseWheelEventWithLatencyInfo(wheel_event, 1041 input_router_->SendWheelEvent(MouseWheelEventWithLatencyInfo(wheel_event,
1025 latency_info)); 1042 latency_info));
1026 } 1043 }
1027 1044
1028 void RenderWidgetHostImpl::ForwardGestureEvent( 1045 void RenderWidgetHostImpl::ForwardGestureEvent(
1029 const blink::WebGestureEvent& gesture_event) { 1046 const blink::WebGestureEvent& gesture_event) {
1030 ForwardGestureEventWithLatencyInfo(gesture_event, ui::LatencyInfo()); 1047 ForwardGestureEventWithLatencyInfo(gesture_event, ui::LatencyInfo());
1031 } 1048 }
1032 1049
1033 void RenderWidgetHostImpl::ForwardGestureEventWithLatencyInfo( 1050 void RenderWidgetHostImpl::ForwardGestureEventWithLatencyInfo(
(...skipping 29 matching lines...) Expand all
1063 original_component.sequence_number, 1080 original_component.sequence_number,
1064 original_component.event_time, 1081 original_component.event_time,
1065 original_component.event_count); 1082 original_component.event_count);
1066 } 1083 }
1067 } 1084 }
1068 1085
1069 GestureEventWithLatencyInfo gesture_with_latency(gesture_event, latency_info); 1086 GestureEventWithLatencyInfo gesture_with_latency(gesture_event, latency_info);
1070 input_router_->SendGestureEvent(gesture_with_latency); 1087 input_router_->SendGestureEvent(gesture_with_latency);
1071 } 1088 }
1072 1089
1090 void RenderWidgetHostImpl::ForwardTouchEvent(
1091 const blink::WebTouchEvent& touch_event) {
1092 ForwardTouchEventWithLatencyInfo(touch_event, ui::LatencyInfo());
1093 }
1094
1073 void RenderWidgetHostImpl::ForwardTouchEventWithLatencyInfo( 1095 void RenderWidgetHostImpl::ForwardTouchEventWithLatencyInfo(
1074 const blink::WebTouchEvent& touch_event, 1096 const blink::WebTouchEvent& touch_event,
1075 const ui::LatencyInfo& ui_latency) { 1097 const ui::LatencyInfo& ui_latency) {
1076 TRACE_EVENT0("input", "RenderWidgetHostImpl::ForwardTouchEvent"); 1098 TRACE_EVENT0("input", "RenderWidgetHostImpl::ForwardTouchEvent");
1077 1099
1078 // Always forward TouchEvents for touch stream consistency. They will be 1100 // Always forward TouchEvents for touch stream consistency. They will be
1079 // ignored if appropriate in FilterInputEvent(). 1101 // ignored if appropriate in FilterInputEvent().
1080 1102
1081 ui::LatencyInfo latency_info = 1103 ui::LatencyInfo latency_info =
1082 CreateRWHLatencyInfoIfNotExist(&ui_latency, touch_event.type); 1104 CreateRWHLatencyInfoIfNotExist(&ui_latency, touch_event.type);
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
1138 1160
1139 // Tab switching/closing accelerators aren't sent to the renderer to avoid 1161 // Tab switching/closing accelerators aren't sent to the renderer to avoid
1140 // a hung/malicious renderer from interfering. 1162 // a hung/malicious renderer from interfering.
1141 if (delegate_->PreHandleKeyboardEvent(key_event, &is_shortcut)) 1163 if (delegate_->PreHandleKeyboardEvent(key_event, &is_shortcut))
1142 return; 1164 return;
1143 1165
1144 if (key_event.type == WebKeyboardEvent::RawKeyDown) 1166 if (key_event.type == WebKeyboardEvent::RawKeyDown)
1145 suppress_next_char_events_ = false; 1167 suppress_next_char_events_ = false;
1146 } 1168 }
1147 1169
1170 if (touch_emulator_ && touch_emulator_->HandleKeyboardEvent(key_event))
1171 return;
1172
1148 input_router_->SendKeyboardEvent( 1173 input_router_->SendKeyboardEvent(
1149 key_event, 1174 key_event,
1150 CreateRWHLatencyInfoIfNotExist(NULL, key_event.type), 1175 CreateRWHLatencyInfoIfNotExist(NULL, key_event.type),
1151 is_shortcut); 1176 is_shortcut);
1152 } 1177 }
1153 1178
1154 void RenderWidgetHostImpl::QueueSyntheticGesture( 1179 void RenderWidgetHostImpl::QueueSyntheticGesture(
1155 scoped_ptr<SyntheticGesture> synthetic_gesture, 1180 scoped_ptr<SyntheticGesture> synthetic_gesture,
1156 const base::Callback<void(SyntheticGesture::Result)>& on_complete) { 1181 const base::Callback<void(SyntheticGesture::Result)>& on_complete) {
1157 if (!synthetic_gesture_controller_ && view_) { 1182 if (!synthetic_gesture_controller_ && view_) {
1158 synthetic_gesture_controller_.reset( 1183 synthetic_gesture_controller_.reset(
1159 new SyntheticGestureController( 1184 new SyntheticGestureController(
1160 view_->CreateSyntheticGestureTarget().Pass())); 1185 view_->CreateSyntheticGestureTarget().Pass()));
1161 } 1186 }
1162 if (synthetic_gesture_controller_) { 1187 if (synthetic_gesture_controller_) {
1163 synthetic_gesture_controller_->QueueSyntheticGesture( 1188 synthetic_gesture_controller_->QueueSyntheticGesture(
1164 synthetic_gesture.Pass(), on_complete); 1189 synthetic_gesture.Pass(), on_complete);
1165 } 1190 }
1166 } 1191 }
1167 1192
1193 void RenderWidgetHostImpl::SetCursor(const WebCursor& cursor) {
1194 if (!view_)
1195 return;
1196 view_->UpdateCursor(cursor);
1197 }
1198
1168 void RenderWidgetHostImpl::SendCursorVisibilityState(bool is_visible) { 1199 void RenderWidgetHostImpl::SendCursorVisibilityState(bool is_visible) {
1169 Send(new InputMsg_CursorVisibilityChange(GetRoutingID(), is_visible)); 1200 Send(new InputMsg_CursorVisibilityChange(GetRoutingID(), is_visible));
1170 } 1201 }
1171 1202
1172 int64 RenderWidgetHostImpl::GetLatencyComponentId() { 1203 int64 RenderWidgetHostImpl::GetLatencyComponentId() {
1173 return GetRoutingID() | (static_cast<int64>(GetProcess()->GetID()) << 32); 1204 return GetRoutingID() | (static_cast<int64>(GetProcess()->GetID()) << 32);
1174 } 1205 }
1175 1206
1176 // static 1207 // static
1177 void RenderWidgetHostImpl::DisableResizeAckCheckForTesting() { 1208 void RenderWidgetHostImpl::DisableResizeAckCheckForTesting() {
(...skipping 644 matching lines...) Expand 10 before | Expand all | Expand 10 after
1822 GetProcess()->ReceivedBadMessage(); 1853 GetProcess()->ReceivedBadMessage();
1823 } 1854 }
1824 1855
1825 void RenderWidgetHostImpl::OnBlur() { 1856 void RenderWidgetHostImpl::OnBlur() {
1826 // Only RenderViewHost can deal with that message. 1857 // Only RenderViewHost can deal with that message.
1827 RecordAction(base::UserMetricsAction("BadMessageTerminate_RWH5")); 1858 RecordAction(base::UserMetricsAction("BadMessageTerminate_RWH5"));
1828 GetProcess()->ReceivedBadMessage(); 1859 GetProcess()->ReceivedBadMessage();
1829 } 1860 }
1830 1861
1831 void RenderWidgetHostImpl::OnSetCursor(const WebCursor& cursor) { 1862 void RenderWidgetHostImpl::OnSetCursor(const WebCursor& cursor) {
1832 if (!view_) { 1863 SetCursor(cursor);
1833 return; 1864 }
1865
1866 void RenderWidgetHostImpl::OnSetTouchEventEmulationEnabled(
1867 bool enabled, bool allow_pinch) {
1868 if (enabled) {
1869 if (!touch_emulator_)
1870 touch_emulator_.reset(new TouchEmulator(this));
1871 touch_emulator_->Enable(allow_pinch);
1872 } else {
1873 if (touch_emulator_)
1874 touch_emulator_->Disable();
1834 } 1875 }
1835 view_->UpdateCursor(cursor);
1836 } 1876 }
1837 1877
1838 void RenderWidgetHostImpl::OnTextInputTypeChanged( 1878 void RenderWidgetHostImpl::OnTextInputTypeChanged(
1839 ui::TextInputType type, 1879 ui::TextInputType type,
1840 ui::TextInputMode input_mode, 1880 ui::TextInputMode input_mode,
1841 bool can_compose_inline) { 1881 bool can_compose_inline) {
1842 if (view_) 1882 if (view_)
1843 view_->TextInputTypeChanged(type, input_mode, can_compose_inline); 1883 view_->TextInputTypeChanged(type, input_mode, can_compose_inline);
1844 } 1884 }
1845 1885
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after
2163 TouchEventWithLatencyInfo touch_event = event; 2203 TouchEventWithLatencyInfo touch_event = event;
2164 touch_event.latency.AddLatencyNumber( 2204 touch_event.latency.AddLatencyNumber(
2165 ui::INPUT_EVENT_LATENCY_ACKED_TOUCH_COMPONENT, 0, 0); 2205 ui::INPUT_EVENT_LATENCY_ACKED_TOUCH_COMPONENT, 0, 0);
2166 // TouchEvent latency ends at ack if it didn't cause any rendering. 2206 // TouchEvent latency ends at ack if it didn't cause any rendering.
2167 if (!touch_event.latency.FindLatency( 2207 if (!touch_event.latency.FindLatency(
2168 ui::INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_COMPONENT, 0, NULL)) { 2208 ui::INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_COMPONENT, 0, NULL)) {
2169 touch_event.latency.AddLatencyNumber( 2209 touch_event.latency.AddLatencyNumber(
2170 ui::INPUT_EVENT_LATENCY_TERMINATED_TOUCH_COMPONENT, 0, 0); 2210 ui::INPUT_EVENT_LATENCY_TERMINATED_TOUCH_COMPONENT, 0, 0);
2171 } 2211 }
2172 ComputeTouchLatency(touch_event.latency); 2212 ComputeTouchLatency(touch_event.latency);
2213
2214 if (touch_emulator_ && touch_emulator_->HandleTouchEventAck(ack_result))
2215 return;
2216
2173 if (view_) 2217 if (view_)
2174 view_->ProcessAckedTouchEvent(touch_event, ack_result); 2218 view_->ProcessAckedTouchEvent(touch_event, ack_result);
2175 } 2219 }
2176 2220
2177 void RenderWidgetHostImpl::OnUnexpectedEventAck(UnexpectedEventAckType type) { 2221 void RenderWidgetHostImpl::OnUnexpectedEventAck(UnexpectedEventAckType type) {
2178 if (type == BAD_ACK_MESSAGE) { 2222 if (type == BAD_ACK_MESSAGE) {
2179 RecordAction(base::UserMetricsAction("BadMessageTerminate_RWH2")); 2223 RecordAction(base::UserMetricsAction("BadMessageTerminate_RWH2"));
2180 process_->ReceivedBadMessage(); 2224 process_->ReceivedBadMessage();
2181 } else if (type == UNEXPECTED_EVENT_TYPE) { 2225 } else if (type == UNEXPECTED_EVENT_TYPE) {
2182 suppress_next_char_events_ = false; 2226 suppress_next_char_events_ = false;
(...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after
2565 } 2609 }
2566 } 2610 }
2567 2611
2568 SkBitmap::Config RenderWidgetHostImpl::PreferredReadbackFormat() { 2612 SkBitmap::Config RenderWidgetHostImpl::PreferredReadbackFormat() {
2569 if (view_) 2613 if (view_)
2570 return view_->PreferredReadbackFormat(); 2614 return view_->PreferredReadbackFormat();
2571 return SkBitmap::kARGB_8888_Config; 2615 return SkBitmap::kARGB_8888_Config;
2572 } 2616 }
2573 2617
2574 } // namespace content 2618 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698