Index: content/renderer/render_frame_impl.cc |
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc |
index 908491004ff827d3d1b138023069eab7c9a1feab..c251a4589e97ccd2f96280c4c848a0fd5426df32 100644 |
--- a/content/renderer/render_frame_impl.cc |
+++ b/content/renderer/render_frame_impl.cc |
@@ -580,9 +580,10 @@ RenderFrameImpl* RenderFrameImpl::CreateMainFrame(RenderViewImpl* render_view, |
// static |
void RenderFrameImpl::CreateFrame( |
int routing_id, |
+ int proxy_routing_id, |
+ int opener_routing_id, |
int parent_routing_id, |
int previous_sibling_routing_id, |
- int proxy_routing_id, |
const FrameReplicationState& replicated_state, |
CompositorDependencies* compositor_deps, |
const FrameMsg_NewFrame_WidgetParams& widget_params) { |
@@ -624,6 +625,9 @@ void RenderFrameImpl::CreateFrame( |
render_frame->SetWebFrame(web_frame); |
CHECK_IMPLIES(parent_routing_id == MSG_ROUTING_NONE, !web_frame->parent()); |
+ WebFrame* opener = ResolveOpener(opener_routing_id, nullptr); |
+ web_frame->setOpener(opener); |
+ |
if (widget_params.routing_id != MSG_ROUTING_NONE) { |
CHECK(SiteIsolationPolicy::AreCrossProcessFramesPossible()); |
render_frame->render_widget_ = RenderWidget::CreateForFrame( |