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

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

Issue 2417693002: Allow MimeHandlerViewGuest be embedded inside OOPIFs (Closed)
Patch Set: Rebase and nits Created 4 years, 2 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 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 195 // RenderWidgetHostViewGuest does not properly handle direct routing of mouse
196 // events, so they have to go by the double-hop forwarding path through 196 // events, so they have to go by the double-hop forwarding path through
197 // the embedding renderer and then BrowserPluginGuest. 197 // the embedding renderer and then BrowserPluginGuest.
198 if (target && target->IsRenderWidgetHostViewGuest()) { 198 if (target && target->IsRenderWidgetHostViewGuest()) {
199 ui::LatencyInfo latency_info; 199 ui::LatencyInfo latency_info;
200 root_view->ProcessMouseEvent(*event, latency_info); 200 RenderWidgetHostViewBase* embedder = target->GetOuterView();
lfg 2016/10/20 22:50:49 This can be casted to RenderWidgetHostViewGuest, y
EhsanK 2016/10/25 19:30:50 We are in renderer_host and RWHVG is in frame_host
201 if (embedder != root_view) {
202 // This happens when the view is embedded inside a cross process frame.
203 gfx::Point embedder_point;
204 if (!root_view->TransformPointToCoordSpaceForView(
205 gfx::Point(event->x, event->y), embedder, &embedder_point))
206 return;
207 event->x = embedder_point.x();
208 event->y = embedder_point.y();
209 }
210 embedder->ProcessMouseEvent(*event, latency_info);
201 return; 211 return;
202 } 212 }
203 213
204 if (event->type == blink::WebInputEvent::MouseDown) 214 if (event->type == blink::WebInputEvent::MouseDown)
205 mouse_capture_target_.target = target; 215 mouse_capture_target_.target = target;
206 216
207 if (!target) 217 if (!target)
208 return; 218 return;
209 219
210 // SendMouseEnterOrLeaveEvents is called with the original event 220 // SendMouseEnterOrLeaveEvents is called with the original event
(...skipping 537 matching lines...) Expand 10 before | Expand all | Expand 10 after
748 if (!touchpad_gesture_target_.target) 758 if (!touchpad_gesture_target_.target)
749 return; 759 return;
750 760
751 // TODO(mohsen): Add tests to check event location. 761 // TODO(mohsen): Add tests to check event location.
752 event->x += touchpad_gesture_target_.delta.x(); 762 event->x += touchpad_gesture_target_.delta.x();
753 event->y += touchpad_gesture_target_.delta.y(); 763 event->y += touchpad_gesture_target_.delta.y();
754 touchpad_gesture_target_.target->ProcessGestureEvent(*event, latency); 764 touchpad_gesture_target_.target->ProcessGestureEvent(*event, latency);
755 } 765 }
756 766
757 } // namespace content 767 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698