Index: content/browser/web_contents/render_view_host_manager.cc |
diff --git a/content/browser/web_contents/render_view_host_manager.cc b/content/browser/web_contents/render_view_host_manager.cc |
index db8d1d0553b3a0b232d98249ae189a0522c0d695..ee5973f440197edc253823fa50a312ff2c3ebb60 100644 |
--- a/content/browser/web_contents/render_view_host_manager.cc |
+++ b/content/browser/web_contents/render_view_host_manager.cc |
@@ -387,6 +387,9 @@ void RenderViewHostManager::SwapOutOldPage() { |
return; |
DCHECK(pending_render_view_host_); |
+ // First close any modal dialogs that would prevent us from swapping out. |
+ delegate_->CancelModalDialogsForRenderManager(); |
+ |
// Tell the old renderer it is being swapped out. This will fire the unload |
// handler (without firing the beforeunload handler a second time). When the |
// unload handler finishes and the navigation completes, we will send a |