Index: content/browser/renderer_host/render_view_host_impl.cc |
diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc |
index 8fd67698e877254e071bf0c741f55eef038cc2af..c9704c31d1410937ba79f385fb7a27b59fb089ad 100644 |
--- a/content/browser/renderer_host/render_view_host_impl.cc |
+++ b/content/browser/renderer_host/render_view_host_impl.cc |
@@ -577,6 +577,11 @@ void RenderViewHostImpl::SuppressDialogsUntilSwapOut() { |
} |
void RenderViewHostImpl::SwapOut() { |
+ // If this RenderViewHost is not in the default state, it must have already |
+ // gone through this, therefore just return. |
+ if (rvh_state_ != STATE_DEFAULT) |
+ return; |
+ |
SetState(STATE_WAITING_FOR_UNLOAD_ACK); |
unload_event_monitor_timeout_->Start( |
base::TimeDelta::FromMilliseconds(kUnloadTimeoutMS)); |