Commit 88e3cd85 authored by Dave Tapuska's avatar Dave Tapuska Committed by Commit Bot

Fix crash related to showing a newly created window.

Previously the message would just get dropped if the opener frame was
discarded as it would be on a shutdown channel.

Ultimately this code should go away if we didn't have the
pending_contents_ list. I've created a separate issue for that because
this change likely needs to be merged into M88.

BUG=1149833, 1150976

Change-Id: If46b130a0c79a2e09ba7680ca6e3dfea881f39ee
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2550250Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
Reviewed-by: default avatarNasko Oskov <nasko@chromium.org>
Commit-Queue: Dave Tapuska <dtapuska@chromium.org>
Cr-Commit-Position: refs/heads/master@{#829841}
parent d125b109
...@@ -3646,6 +3646,15 @@ void RenderFrameHostImpl::ShowCreatedWindow( ...@@ -3646,6 +3646,15 @@ void RenderFrameHostImpl::ShowCreatedWindow(
// the handle to this class's associated RenderWidgetHostView. // the handle to this class's associated RenderWidgetHostView.
RenderFrameHostImpl* opener_frame_host = RenderFrameHostImpl* opener_frame_host =
FromFrameToken(GetProcess()->GetID(), opener_frame_token); FromFrameToken(GetProcess()->GetID(), opener_frame_token);
// If |opener_frame_host| has been destroyed just return.
// TODO(crbug.com/1150976): Get rid of having to look up the opener frame
// to find the newly created web contents, because it is actually just
// |delegate_|.
if (!opener_frame_host) {
std::move(callback).Run();
return;
}
opener_frame_host->delegate()->ShowCreatedWindow( opener_frame_host->delegate()->ShowCreatedWindow(
opener_frame_host, GetRenderWidgetHost()->GetRoutingID(), disposition, opener_frame_host, GetRenderWidgetHost()->GetRoutingID(), disposition,
initial_rect, user_gesture); initial_rect, user_gesture);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment