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

Side by Side Diff: content/browser/frame_host/render_widget_host_view_guest.cc

Issue 1729373003: Implement touch events for site-isolation. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Use positioned iframe in test to simplify event targeting. Created 4 years, 9 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/frame_host/render_widget_host_view_guest.h" 5 #include "content/browser/frame_host/render_widget_host_view_guest.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind_helpers.h" 9 #include "base/bind_helpers.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 BrowserPluginGuest* guest, 45 BrowserPluginGuest* guest,
46 base::WeakPtr<RenderWidgetHostViewBase> platform_view) 46 base::WeakPtr<RenderWidgetHostViewBase> platform_view)
47 : RenderWidgetHostViewChildFrame(widget_host), 47 : RenderWidgetHostViewChildFrame(widget_host),
48 // |guest| is NULL during test. 48 // |guest| is NULL during test.
49 guest_(guest ? guest->AsWeakPtr() : base::WeakPtr<BrowserPluginGuest>()), 49 guest_(guest ? guest->AsWeakPtr() : base::WeakPtr<BrowserPluginGuest>()),
50 platform_view_(platform_view) { 50 platform_view_(platform_view) {
51 // Inputs for guest view are already scaled. 51 // Inputs for guest view are already scaled.
52 host_->set_scale_input_to_viewport(false); 52 host_->set_scale_input_to_viewport(false);
53 } 53 }
54 54
55 RenderWidgetHostViewGuest::~RenderWidgetHostViewGuest() { 55 RenderWidgetHostViewGuest::~RenderWidgetHostViewGuest() {}
56 }
57 56
58 bool RenderWidgetHostViewGuest::OnMessageReceivedFromEmbedder( 57 bool RenderWidgetHostViewGuest::OnMessageReceivedFromEmbedder(
59 const IPC::Message& message, 58 const IPC::Message& message,
60 RenderWidgetHostImpl* embedder) { 59 RenderWidgetHostImpl* embedder) {
61 bool handled = true; 60 bool handled = true;
62 IPC_BEGIN_MESSAGE_MAP_WITH_PARAM(RenderWidgetHostViewGuest, message, 61 IPC_BEGIN_MESSAGE_MAP_WITH_PARAM(RenderWidgetHostViewGuest, message,
63 embedder) 62 embedder)
64 IPC_MESSAGE_HANDLER(BrowserPluginHostMsg_HandleInputEvent, 63 IPC_MESSAGE_HANDLER(BrowserPluginHostMsg_HandleInputEvent,
65 OnHandleInputEvent) 64 OnHandleInputEvent)
66 IPC_MESSAGE_UNHANDLED(handled = false) 65 IPC_MESSAGE_UNHANDLED(handled = false)
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 DCHECK(guest_->GetOwnerRenderWidgetHostView()); 146 DCHECK(guest_->GetOwnerRenderWidgetHostView());
148 RenderWidgetHostImpl* embedder = static_cast<RenderWidgetHostImpl*>( 147 RenderWidgetHostImpl* embedder = static_cast<RenderWidgetHostImpl*>(
149 guest_->GetOwnerRenderWidgetHostView()->GetRenderWidgetHost()); 148 guest_->GetOwnerRenderWidgetHostView()->GetRenderWidgetHost());
150 if (!embedder->GetView()->HasFocus()) 149 if (!embedder->GetView()->HasFocus())
151 embedder->GetView()->Focus(); 150 embedder->GetView()->Focus();
152 } 151 }
153 152
154 host_->ForwardTouchEventWithLatencyInfo(event, latency); 153 host_->ForwardTouchEventWithLatencyInfo(event, latency);
155 } 154 }
156 155
157 void RenderWidgetHostViewGuest::RegisterSurfaceNamespaceId() {
158 DCHECK(host_);
159 if (host_->delegate() && host_->delegate()->GetInputEventRouter()) {
160 RenderWidgetHostInputEventRouter* router =
161 host_->delegate()->GetInputEventRouter();
162 if (!router->is_registered(GetSurfaceIdNamespace()))
163 router->AddSurfaceIdNamespaceOwner(GetSurfaceIdNamespace(), this);
164 }
165 }
166
167 void RenderWidgetHostViewGuest::UnregisterSurfaceNamespaceId() {
168 DCHECK(host_);
169 if (host_->delegate() && host_->delegate()->GetInputEventRouter()) {
170 host_->delegate()->GetInputEventRouter()->RemoveSurfaceIdNamespaceOwner(
171 GetSurfaceIdNamespace());
172 }
173 }
174
175 gfx::Rect RenderWidgetHostViewGuest::GetViewBounds() const { 156 gfx::Rect RenderWidgetHostViewGuest::GetViewBounds() const {
176 if (!guest_) 157 if (!guest_)
177 return gfx::Rect(); 158 return gfx::Rect();
178 159
179 RenderWidgetHostViewBase* rwhv = GetOwnerRenderWidgetHostView(); 160 RenderWidgetHostViewBase* rwhv = GetOwnerRenderWidgetHostView();
180 gfx::Rect embedder_bounds; 161 gfx::Rect embedder_bounds;
181 if (rwhv) 162 if (rwhv)
182 embedder_bounds = rwhv->GetViewBounds(); 163 embedder_bounds = rwhv->GetViewBounds();
183 return gfx::Rect( 164 return gfx::Rect(
184 guest_->GetScreenCoordinates(embedder_bounds.origin()), size_); 165 guest_->GetScreenCoordinates(embedder_bounds.origin()), size_);
(...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after
647 if (gesture_event.type == blink::WebInputEvent::GestureScrollUpdate && 628 if (gesture_event.type == blink::WebInputEvent::GestureScrollUpdate &&
648 gesture_event.data.scrollUpdate.inertial) { 629 gesture_event.data.scrollUpdate.inertial) {
649 return; 630 return;
650 } 631 }
651 host_->ForwardGestureEvent(gesture_event); 632 host_->ForwardGestureEvent(gesture_event);
652 return; 633 return;
653 } 634 }
654 } 635 }
655 636
656 } // namespace content 637 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698