| Index: content/browser/frame_host/frame_tree.cc
|
| diff --git a/content/browser/frame_host/frame_tree.cc b/content/browser/frame_host/frame_tree.cc
|
| index c3f130125c73748b721e94018d4acd2cce0c0426..fcc1c8f0157050b40b7f770e8df13d6d4813847b 100644
|
| --- a/content/browser/frame_host/frame_tree.cc
|
| +++ b/content/browser/frame_host/frame_tree.cc
|
| @@ -355,7 +355,7 @@ RenderViewHostImpl* FrameTree::CreateRenderViewHost(
|
| // SiteInstance. Note that if swapped-out is forbidden, the
|
| // RenderViewHost's main frame has already been cleared, so we cannot rely
|
| // on checking whether the main frame is pending deletion.
|
| - if (iter->second->is_pending_deletion()) {
|
| + if (root_->render_manager()->IsViewPendingDeletion(iter->second)) {
|
| render_view_host_pending_shutdown_map_.insert(
|
| std::make_pair(site_instance->GetId(), iter->second));
|
| render_view_host_map_.erase(iter);
|
| @@ -375,9 +375,12 @@ RenderViewHostImpl* FrameTree::CreateRenderViewHost(
|
| RenderViewHostImpl* FrameTree::GetRenderViewHost(SiteInstance* site_instance) {
|
| RenderViewHostMap::iterator iter =
|
| render_view_host_map_.find(site_instance->GetId());
|
| - if (iter == render_view_host_map_.end())
|
| - return nullptr;
|
| - return iter->second;
|
| + // Don't return the RVH if it is pending deletion.
|
| + if (iter != render_view_host_map_.end() &&
|
| + !root_->render_manager()->IsViewPendingDeletion(iter->second)) {
|
| + return iter->second;
|
| + }
|
| + return nullptr;
|
| }
|
|
|
| void FrameTree::AddRenderViewHostRef(RenderViewHostImpl* render_view_host) {
|
|
|