| Index: content/browser/web_contents/web_contents_impl.cc
|
| diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
|
| index 2095af811f6ffc66b66b550d091621306a6c8870..f51790888d2f89ba92129239f46199824ec6e233 100644
|
| --- a/content/browser/web_contents/web_contents_impl.cc
|
| +++ b/content/browser/web_contents/web_contents_impl.cc
|
| @@ -327,6 +327,11 @@ WebContentsImpl::WebContentsImpl(
|
| WebContentsImpl::~WebContentsImpl() {
|
| is_being_destroyed_ = true;
|
|
|
| + // Delete all RFH pending shutdown, which will lead the corresponding RVH to
|
| + // shutdown and be deleted as well.
|
| + frame_tree_.ForEach(
|
| + base::Bind(&RenderFrameHostManager::ClearRFHsPendingShutdown));
|
| +
|
| ClearAllPowerSaveBlockers();
|
|
|
| for (std::set<RenderWidgetHostImpl*>::iterator iter =
|
| @@ -2779,7 +2784,7 @@ void WebContentsImpl::RenderViewCreated(RenderViewHost* render_view_host) {
|
| // Don't send notifications if we are just creating a swapped-out RVH for
|
| // the opener chain. These won't be used for view-source or WebUI, so it's
|
| // ok to return early.
|
| - if (static_cast<RenderViewHostImpl*>(render_view_host)->is_swapped_out())
|
| + if (static_cast<RenderViewHostImpl*>(render_view_host)->IsSwappedOut())
|
| return;
|
|
|
| if (delegate_)
|
| @@ -3061,7 +3066,7 @@ void WebContentsImpl::RequestOpenURL(RenderViewHost* rvh,
|
| bool user_gesture) {
|
| // If this came from a swapped out RenderViewHost, we only allow the request
|
| // if we are still in the same BrowsingInstance.
|
| - if (static_cast<RenderViewHostImpl*>(rvh)->is_swapped_out() &&
|
| + if (static_cast<RenderViewHostImpl*>(rvh)->IsSwappedOut() &&
|
| !rvh->GetSiteInstance()->IsRelatedSiteInstance(GetSiteInstance())) {
|
| return;
|
| }
|
| @@ -3232,7 +3237,7 @@ void WebContentsImpl::RunJavaScriptMessage(
|
| // showing an interstitial as it's shown over the previous page and we don't
|
| // want the hidden page's dialogs to interfere with the interstitial.
|
| bool suppress_this_message =
|
| - static_cast<RenderViewHostImpl*>(rvh)->is_swapped_out() ||
|
| + static_cast<RenderViewHostImpl*>(rvh)->IsSwappedOut() ||
|
| ShowingInterstitialPage() ||
|
| !delegate_ ||
|
| delegate_->ShouldSuppressDialogs() ||
|
| @@ -3277,7 +3282,7 @@ void WebContentsImpl::RunBeforeUnloadConfirm(RenderViewHost* rvh,
|
| delegate_->WillRunBeforeUnloadConfirm();
|
|
|
| bool suppress_this_message =
|
| - rvhi->is_swapped_out() ||
|
| + rvhi->rvh_state() != RenderViewHostImpl::STATE_DEFAULT ||
|
| !delegate_ ||
|
| delegate_->ShouldSuppressDialogs() ||
|
| !delegate_->GetJavaScriptDialogManager();
|
|
|