| Index: content/renderer/render_view_impl.cc
|
| diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
|
| index 06b29cba42eba5e868cec1ff6aedfae9ae912ebd..b0cbd2613e87a22be9eae10bab53f4323cf79126 100644
|
| --- a/content/renderer/render_view_impl.cc
|
| +++ b/content/renderer/render_view_impl.cc
|
| @@ -1370,20 +1370,6 @@ void RenderViewImpl::ShowCreatedFullscreenWidget(
|
| fullscreen_widget->routing_id()));
|
| }
|
|
|
| -void RenderViewImpl::ShowCreatedViewWidget(bool opened_by_user_gesture,
|
| - RenderWidget* render_view_to_show,
|
| - WebNavigationPolicy policy,
|
| - const gfx::Rect& initial_rect) {
|
| - // |render_view_to_show| represents a pending view opened (e.g. a popup opened
|
| - // via window.open()) by this object, but not yet shown (it's offscreen, and
|
| - // still owned by the opener). Sending |ViewHostMsg_ShowView| will move it off
|
| - // the opener's pending list, into e.g. its own tab or window.
|
| - Send(new ViewHostMsg_ShowView(GetRoutingID(),
|
| - render_view_to_show->routing_id(),
|
| - NavigationPolicyToDisposition(policy),
|
| - initial_rect, opened_by_user_gesture));
|
| -}
|
| -
|
| void RenderViewImpl::SendFrameStateUpdates() {
|
| // We only use this path in OOPIF-enabled modes.
|
| DCHECK(SiteIsolationPolicy::UseSubframeNavigationEntries());
|
| @@ -1421,8 +1407,9 @@ WebView* RenderViewImpl::createView(WebLocalFrame* creator,
|
| const WebString& frame_name,
|
| WebNavigationPolicy policy,
|
| bool suppress_opener) {
|
| + RenderFrameImpl* creator_frame = RenderFrameImpl::FromWebFrame(creator);
|
| mojom::CreateNewWindowParamsPtr params = mojom::CreateNewWindowParams::New();
|
| - params->opener_id = GetRoutingID();
|
| + params->opener_render_frame_id = creator_frame->GetRoutingID();
|
| params->user_gesture = WebUserGestureIndicator::isProcessingUserGesture();
|
| if (GetContentClient()->renderer()->AllowPopup())
|
| params->user_gesture = true;
|
| @@ -1430,8 +1417,6 @@ WebView* RenderViewImpl::createView(WebLocalFrame* creator,
|
| params->session_storage_namespace_id = session_storage_namespace_id_;
|
| if (frame_name != "_blank")
|
| params->frame_name = base::UTF16ToUTF8(base::StringPiece16(frame_name));
|
| - params->opener_render_frame_id =
|
| - RenderFrameImpl::FromWebFrame(creator)->GetRoutingID();
|
| params->opener_url = creator->document().url();
|
|
|
| // The browser process uses the top frame's URL for a content settings check
|
| @@ -1493,7 +1478,6 @@ WebView* RenderViewImpl::createView(WebLocalFrame* creator,
|
| // disagrees.
|
| mojom::CreateViewParams view_params;
|
|
|
| - RenderFrameImpl* creator_frame = RenderFrameImpl::FromWebFrame(creator);
|
| view_params.opener_frame_route_id = creator_frame->GetRoutingID();
|
| DCHECK_EQ(GetRoutingID(), creator_frame->render_view()->GetRoutingID());
|
|
|
| @@ -1516,9 +1500,11 @@ WebView* RenderViewImpl::createView(WebLocalFrame* creator,
|
| view_params.max_size = gfx::Size();
|
| view_params.page_zoom_level = page_zoom_level_;
|
|
|
| + // Unretained() is safe here because our calling function will also call
|
| + // show().
|
| RenderWidget::ShowCallback show_callback =
|
| - base::Bind(&RenderViewImpl::ShowCreatedViewWidget, this->AsWeakPtr(),
|
| - opened_by_user_gesture);
|
| + base::Bind(&RenderFrameImpl::ShowCreatedWindow,
|
| + base::Unretained(creator_frame), opened_by_user_gesture);
|
|
|
| RenderViewImpl* view =
|
| RenderViewImpl::Create(compositor_deps_, view_params, show_callback);
|
|
|