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

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

Issue 2354283003: Disable direct routing of mouse events for RenderWidgetHostViewGuest (Closed)
Patch Set: Tweak Created 4 years, 3 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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_input_event_router.h" 5 #include "content/browser/renderer_host/render_widget_host_input_event_router.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/metrics/histogram_macros.h" 9 #include "base/metrics/histogram_macros.h"
10 10
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 target = mouse_capture_target_.target; 185 target = mouse_capture_target_.target;
186 transformed_point = root_view->TransformPointToCoordSpaceForView( 186 transformed_point = root_view->TransformPointToCoordSpaceForView(
187 gfx::Point(event->x, event->y), target); 187 gfx::Point(event->x, event->y), target);
188 if (event->type == blink::WebInputEvent::MouseUp) 188 if (event->type == blink::WebInputEvent::MouseUp)
189 mouse_capture_target_.target = nullptr; 189 mouse_capture_target_.target = nullptr;
190 } else { 190 } else {
191 target = FindEventTarget(root_view, gfx::Point(event->x, event->y), 191 target = FindEventTarget(root_view, gfx::Point(event->x, event->y),
192 &transformed_point); 192 &transformed_point);
193 } 193 }
194 194
195 // RenderWidgetHostViewGuest does not properly handle direct routing of mouse
196 // events, so they have to go by the double-hop forwarding path through
197 // the embedding renderer and then BrowserPluginGuest.
198 if (target && target->IsRenderWidgetHostViewGuest()) {
199 root_view->ProcessMouseEvent(*event, latency);
wjmaclean 2016/09/21 18:34:52 Do we always want to go to the root? This will wor
kenrb 2016/09/21 18:56:36 WebViews can't be embedded by web content, so AFAI
200 return;
201 }
202
195 if (event->type == blink::WebInputEvent::MouseDown) 203 if (event->type == blink::WebInputEvent::MouseDown)
196 mouse_capture_target_.target = target; 204 mouse_capture_target_.target = target;
197 205
198 if (!target) 206 if (!target)
199 return; 207 return;
200 208
201 // SendMouseEnterOrLeaveEvents is called with the original event 209 // SendMouseEnterOrLeaveEvents is called with the original event
202 // coordinates, which are transformed independently for each view that will 210 // coordinates, which are transformed independently for each view that will
203 // receive an event. 211 // receive an event.
204 if ((event->type == blink::WebInputEvent::MouseLeave || 212 if ((event->type == blink::WebInputEvent::MouseLeave ||
(...skipping 506 matching lines...) Expand 10 before | Expand all | Expand 10 after
711 if (!touchpad_gesture_target_.target) 719 if (!touchpad_gesture_target_.target)
712 return; 720 return;
713 721
714 // TODO(mohsen): Add tests to check event location. 722 // TODO(mohsen): Add tests to check event location.
715 event->x += touchpad_gesture_target_.delta.x(); 723 event->x += touchpad_gesture_target_.delta.x();
716 event->y += touchpad_gesture_target_.delta.y(); 724 event->y += touchpad_gesture_target_.delta.y();
717 touchpad_gesture_target_.target->ProcessGestureEvent(*event, latency); 725 touchpad_gesture_target_.target->ProcessGestureEvent(*event, latency);
718 } 726 }
719 727
720 } // namespace content 728 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698