| OLD | NEW | 
|---|
| 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/cross_process_frame_connector.h" | 5 #include "content/browser/frame_host/cross_process_frame_connector.h" | 
| 6 | 6 | 
| 7 #include "cc/surfaces/surface.h" | 7 #include "cc/surfaces/surface.h" | 
| 8 #include "cc/surfaces/surface_manager.h" | 8 #include "cc/surfaces/surface_manager.h" | 
| 9 #include "content/browser/compositor/surface_utils.h" | 9 #include "content/browser/compositor/surface_utils.h" | 
| 10 #include "content/browser/frame_host/frame_tree_node.h" | 10 #include "content/browser/frame_host/frame_tree_node.h" | 
| (...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 161       frame_proxy_in_parent_renderer_->GetRenderWidgetHostView(); | 161       frame_proxy_in_parent_renderer_->GetRenderWidgetHostView(); | 
| 162   if (rwhv) | 162   if (rwhv) | 
| 163     static_cast<RenderWidgetHostViewBase*>(rwhv)->GetScreenInfo(results); | 163     static_cast<RenderWidgetHostViewBase*>(rwhv)->GetScreenInfo(results); | 
| 164 } | 164 } | 
| 165 | 165 | 
| 166 void CrossProcessFrameConnector::OnForwardInputEvent( | 166 void CrossProcessFrameConnector::OnForwardInputEvent( | 
| 167     const blink::WebInputEvent* event) { | 167     const blink::WebInputEvent* event) { | 
| 168   if (!view_) | 168   if (!view_) | 
| 169     return; | 169     return; | 
| 170 | 170 | 
| 171   RenderWidgetHostImpl* child_widget = |  | 
| 172       RenderWidgetHostImpl::From(view_->GetRenderWidgetHost()); |  | 
| 173   RenderFrameHostManager* manager = | 171   RenderFrameHostManager* manager = | 
| 174       frame_proxy_in_parent_renderer_->frame_tree_node()->render_manager(); | 172       frame_proxy_in_parent_renderer_->frame_tree_node()->render_manager(); | 
| 175   RenderWidgetHostImpl* parent_widget = | 173   RenderWidgetHostImpl* parent_widget = | 
| 176       manager->ForInnerDelegate() | 174       manager->ForInnerDelegate() | 
| 177           ? manager->GetOuterRenderWidgetHostForKeyboardInput() | 175           ? manager->GetOuterRenderWidgetHostForKeyboardInput() | 
| 178           : frame_proxy_in_parent_renderer_->GetRenderViewHost(); | 176           : frame_proxy_in_parent_renderer_->GetRenderViewHost(); | 
| 179 | 177 | 
| 180   if (blink::WebInputEvent::isKeyboardEventType(event->type)) { | 178   if (blink::WebInputEvent::isKeyboardEventType(event->type)) { | 
| 181     if (!parent_widget->GetLastKeyboardEvent()) | 179     if (!parent_widget->GetLastKeyboardEvent()) | 
| 182       return; | 180       return; | 
| 183     NativeWebKeyboardEvent keyboard_event( | 181     NativeWebKeyboardEvent keyboard_event( | 
| 184         *parent_widget->GetLastKeyboardEvent()); | 182         *parent_widget->GetLastKeyboardEvent()); | 
| 185     child_widget->ForwardKeyboardEvent(keyboard_event); | 183     view_->ProcessKeyboardEvent(keyboard_event); | 
| 186     return; | 184     return; | 
| 187   } | 185   } | 
| 188 | 186 | 
| 189   if (blink::WebInputEvent::isMouseEventType(event->type)) { | 187   if (blink::WebInputEvent::isMouseEventType(event->type)) { | 
| 190     child_widget->ForwardMouseEvent( | 188     view_->ProcessMouseEvent(*static_cast<const blink::WebMouseEvent*>(event)); | 
| 191         *static_cast<const blink::WebMouseEvent*>(event)); |  | 
| 192     return; | 189     return; | 
| 193   } | 190   } | 
| 194 | 191 | 
| 195   if (event->type == blink::WebInputEvent::MouseWheel) { | 192   if (event->type == blink::WebInputEvent::MouseWheel) { | 
| 196     child_widget->ForwardWheelEvent( | 193     view_->ProcessMouseWheelEvent( | 
| 197         *static_cast<const blink::WebMouseWheelEvent*>(event)); | 194         *static_cast<const blink::WebMouseWheelEvent*>(event)); | 
| 198     return; | 195     return; | 
| 199   } | 196   } | 
| 200 } | 197 } | 
| 201 | 198 | 
| 202 void CrossProcessFrameConnector::OnFrameRectChanged( | 199 void CrossProcessFrameConnector::OnFrameRectChanged( | 
| 203     const gfx::Rect& frame_rect) { | 200     const gfx::Rect& frame_rect) { | 
| 204   if (!frame_rect.size().IsEmpty()) | 201   if (!frame_rect.size().IsEmpty()) | 
| 205     SetSize(frame_rect); | 202     SetSize(frame_rect); | 
| 206 } | 203 } | 
| 207 | 204 | 
| 208 void CrossProcessFrameConnector::SetDeviceScaleFactor(float scale_factor) { | 205 void CrossProcessFrameConnector::SetDeviceScaleFactor(float scale_factor) { | 
| 209   device_scale_factor_ = scale_factor; | 206   device_scale_factor_ = scale_factor; | 
| 210   // The RenderWidgetHost is null in unit tests. | 207   // The RenderWidgetHost is null in unit tests. | 
| 211   if (view_ && view_->GetRenderWidgetHost()) { | 208   if (view_ && view_->GetRenderWidgetHost()) { | 
| 212     RenderWidgetHostImpl* child_widget = | 209     RenderWidgetHostImpl* child_widget = | 
| 213         RenderWidgetHostImpl::From(view_->GetRenderWidgetHost()); | 210         RenderWidgetHostImpl::From(view_->GetRenderWidgetHost()); | 
| 214     child_widget->NotifyScreenInfoChanged(); | 211     child_widget->NotifyScreenInfoChanged(); | 
| 215   } | 212   } | 
| 216 } | 213 } | 
| 217 | 214 | 
| 218 void CrossProcessFrameConnector::SetSize(gfx::Rect frame_rect) { | 215 void CrossProcessFrameConnector::SetSize(gfx::Rect frame_rect) { | 
| 219   child_frame_rect_ = frame_rect; | 216   child_frame_rect_ = frame_rect; | 
| 220   if (view_) | 217   if (view_) | 
| 221     view_->SetSize(frame_rect.size()); | 218     view_->SetSize(frame_rect.size()); | 
| 222 } | 219 } | 
| 223 | 220 | 
| 224 }  // namespace content | 221 }  // namespace content | 
| OLD | NEW | 
|---|