| 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 |