| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/renderer/render_frame_impl.h" | 5 #include "content/renderer/render_frame_impl.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <utility> | 9 #include <utility> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 915 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 926 DCHECK_NE(MSG_ROUTING_NONE, widget_routing_id); | 926 DCHECK_NE(MSG_ROUTING_NONE, widget_routing_id); |
| 927 | 927 |
| 928 RenderFrameImpl* render_frame = | 928 RenderFrameImpl* render_frame = |
| 929 RenderFrameImpl::Create(render_view, routing_id); | 929 RenderFrameImpl::Create(render_view, routing_id); |
| 930 render_frame->InitializeBlameContext(nullptr); | 930 render_frame->InitializeBlameContext(nullptr); |
| 931 WebLocalFrame* web_frame = WebLocalFrame::create( | 931 WebLocalFrame* web_frame = WebLocalFrame::create( |
| 932 blink::WebTreeScopeType::Document, render_frame, opener); | 932 blink::WebTreeScopeType::Document, render_frame, opener); |
| 933 render_frame->BindToWebFrame(web_frame); | 933 render_frame->BindToWebFrame(web_frame); |
| 934 render_view->webview()->setMainFrame(web_frame); | 934 render_view->webview()->setMainFrame(web_frame); |
| 935 render_frame->render_widget_ = RenderWidget::CreateForFrame( | 935 render_frame->render_widget_ = RenderWidget::CreateForFrame( |
| 936 widget_routing_id, hidden, screen_info, compositor_deps, web_frame); | 936 widget_routing_id, hidden, screen_info, compositor_deps, web_frame, |
| 937 render_view->frame_sink_id()); |
| 937 // TODO(avi): This DCHECK is to track cleanup for https://crbug.com/545684 | 938 // TODO(avi): This DCHECK is to track cleanup for https://crbug.com/545684 |
| 938 DCHECK_EQ(render_view->GetWidget(), render_frame->render_widget_) | 939 DCHECK_EQ(render_view->GetWidget(), render_frame->render_widget_) |
| 939 << "Main frame is no longer reusing the RenderView as its widget! " | 940 << "Main frame is no longer reusing the RenderView as its widget! " |
| 940 << "Does the RenderFrame need to register itself with the RenderWidget?"; | 941 << "Does the RenderFrame need to register itself with the RenderWidget?"; |
| 941 return render_frame; | 942 return render_frame; |
| 942 } | 943 } |
| 943 | 944 |
| 944 // static | 945 // static |
| 945 void RenderFrameImpl::CreateFrame( | 946 void RenderFrameImpl::CreateFrame( |
| 946 int routing_id, | 947 int routing_id, |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1000 render_frame, proxy->web_frame(), replicated_state.sandbox_flags); | 1001 render_frame, proxy->web_frame(), replicated_state.sandbox_flags); |
| 1001 } | 1002 } |
| 1002 render_frame->BindToWebFrame(web_frame); | 1003 render_frame->BindToWebFrame(web_frame); |
| 1003 CHECK(parent_routing_id != MSG_ROUTING_NONE || !web_frame->parent()); | 1004 CHECK(parent_routing_id != MSG_ROUTING_NONE || !web_frame->parent()); |
| 1004 | 1005 |
| 1005 if (widget_params.routing_id != MSG_ROUTING_NONE) { | 1006 if (widget_params.routing_id != MSG_ROUTING_NONE) { |
| 1006 CHECK(!web_frame->parent() || | 1007 CHECK(!web_frame->parent() || |
| 1007 SiteIsolationPolicy::AreCrossProcessFramesPossible()); | 1008 SiteIsolationPolicy::AreCrossProcessFramesPossible()); |
| 1008 render_frame->render_widget_ = RenderWidget::CreateForFrame( | 1009 render_frame->render_widget_ = RenderWidget::CreateForFrame( |
| 1009 widget_params.routing_id, widget_params.hidden, | 1010 widget_params.routing_id, widget_params.hidden, |
| 1010 render_frame->render_view_->screen_info(), compositor_deps, web_frame); | 1011 render_frame->render_view_->screen_info(), compositor_deps, web_frame, |
| 1012 render_frame->render_view_->frame_sink_id()); |
| 1011 // TODO(avi): The main frame re-uses the RenderViewImpl as its widget, so | 1013 // TODO(avi): The main frame re-uses the RenderViewImpl as its widget, so |
| 1012 // avoid double-registering the frame as an observer. | 1014 // avoid double-registering the frame as an observer. |
| 1013 // https://crbug.com/545684 | 1015 // https://crbug.com/545684 |
| 1014 if (web_frame->parent()) | 1016 if (web_frame->parent()) |
| 1015 render_frame->render_widget_->RegisterRenderFrame(render_frame); | 1017 render_frame->render_widget_->RegisterRenderFrame(render_frame); |
| 1016 } | 1018 } |
| 1017 | 1019 |
| 1018 render_frame->Initialize(); | 1020 render_frame->Initialize(); |
| 1019 } | 1021 } |
| 1020 | 1022 |
| (...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1324 return; | 1326 return; |
| 1325 SyncSelectionIfRequired(); | 1327 SyncSelectionIfRequired(); |
| 1326 } | 1328 } |
| 1327 | 1329 |
| 1328 RenderWidgetFullscreenPepper* RenderFrameImpl::CreatePepperFullscreenContainer( | 1330 RenderWidgetFullscreenPepper* RenderFrameImpl::CreatePepperFullscreenContainer( |
| 1329 PepperPluginInstanceImpl* plugin) { | 1331 PepperPluginInstanceImpl* plugin) { |
| 1330 GURL active_url; | 1332 GURL active_url; |
| 1331 if (render_view_->webview()) | 1333 if (render_view_->webview()) |
| 1332 active_url = render_view()->GetURLForGraphicsContext3D(); | 1334 active_url = render_view()->GetURLForGraphicsContext3D(); |
| 1333 RenderWidgetFullscreenPepper* widget = RenderWidgetFullscreenPepper::Create( | 1335 RenderWidgetFullscreenPepper* widget = RenderWidgetFullscreenPepper::Create( |
| 1334 render_view()->routing_id(), GetRenderWidget()->compositor_deps(), | 1336 render_view()->routing_id(), GetRenderWidget()->compositor_deps(), plugin, |
| 1335 plugin, active_url, GetRenderWidget()->screen_info()); | 1337 active_url, GetRenderWidget()->screen_info(), |
| 1338 GetRenderWidget()->frame_sink_id()); |
| 1336 widget->show(blink::WebNavigationPolicyIgnore); | 1339 widget->show(blink::WebNavigationPolicyIgnore); |
| 1337 return widget; | 1340 return widget; |
| 1338 } | 1341 } |
| 1339 | 1342 |
| 1340 bool RenderFrameImpl::IsPepperAcceptingCompositionEvents() const { | 1343 bool RenderFrameImpl::IsPepperAcceptingCompositionEvents() const { |
| 1341 if (!focused_pepper_plugin_) | 1344 if (!focused_pepper_plugin_) |
| 1342 return false; | 1345 return false; |
| 1343 return focused_pepper_plugin_->IsPluginAcceptingCompositionEvents(); | 1346 return focused_pepper_plugin_->IsPluginAcceptingCompositionEvents(); |
| 1344 } | 1347 } |
| 1345 | 1348 |
| (...skipping 5233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6579 // event target. Potentially a Pepper plugin will receive the event. | 6582 // event target. Potentially a Pepper plugin will receive the event. |
| 6580 // In order to tell whether a plugin gets the last mouse event and which it | 6583 // In order to tell whether a plugin gets the last mouse event and which it |
| 6581 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets | 6584 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets |
| 6582 // the event, it will notify us via DidReceiveMouseEvent() and set itself as | 6585 // the event, it will notify us via DidReceiveMouseEvent() and set itself as |
| 6583 // |pepper_last_mouse_event_target_|. | 6586 // |pepper_last_mouse_event_target_|. |
| 6584 pepper_last_mouse_event_target_ = nullptr; | 6587 pepper_last_mouse_event_target_ = nullptr; |
| 6585 #endif | 6588 #endif |
| 6586 } | 6589 } |
| 6587 | 6590 |
| 6588 } // namespace content | 6591 } // namespace content |
| OLD | NEW |