diff --git a/shell/browser/api/electron_api_web_frame_main.cc b/shell/browser/api/electron_api_web_frame_main.cc index dcd9677fea1a8..e763d03e4aba4 100644 --- a/shell/browser/api/electron_api_web_frame_main.cc +++ b/shell/browser/api/electron_api_web_frame_main.cc @@ -103,6 +103,7 @@ void WebFrameMain::UpdateRenderFrameHost(content::RenderFrameHost* rfh) { render_frame_disposed_ = false; render_frame_ = rfh; renderer_api_.reset(); + pending_receiver_.reset(); MaybeSetupMojoConnection(); } @@ -193,7 +194,7 @@ void WebFrameMain::MaybeSetupMojoConnection() { &WebFrameMain::OnRendererConnectionError, weak_factory_.GetWeakPtr())); } // Wait for RenderFrame to be created in renderer before accessing remote. - if (pending_receiver_ && render_frame_->IsRenderFrameCreated()) { + if (pending_receiver_ && !render_frame_disposed_ && render_frame_->IsRenderFrameCreated()) { render_frame_->GetRemoteInterfaces()->GetInterface( std::move(pending_receiver_)); }