diff --git a/content/browser/renderer_host/render_frame_host_manager.cc b/content/browser/renderer_host/render_frame_host_manager.cc index 042d8d81c57966924f8c622dcd54f467c96fffcf..5129b792a1e29e00962d56f5cf681b5b6fe34169 100644 --- a/content/browser/renderer_host/render_frame_host_manager.cc +++ b/content/browser/renderer_host/render_frame_host_manager.cc @@ -1528,6 +1528,18 @@ RenderFrameHostManager::GetFrameHostForNavigation( CHECK(navigation_rfh->web_ui()); } +#if defined(OHOS_BUGFIX_CRASH) + // Maybe the speculative rfh has beed crash + if (speculative_render_frame_host_.IsRenderFrameLive()) { + CommitPending(std::move(speculative_render_frame_host_), nullptr, + request->browsing_context_group_swap().ShouldClearProxiesOnCommit()); + request->SetAssociatedRFHType( + NavigationRequest::AssociatedRenderFrameHostType::CURRENT + ); + } else { + base::debug::DumpWithoutCrashing(); + } +#else CommitPending( std::move(speculative_render_frame_host_), nullptr, request->browsing_context_group_swap().ShouldClearProxiesOnCommit());