Index: content/renderer/render_frame_impl.cc |
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc |
index ca5cf55aa3761765972eae6c626116de02aeba1e..f029e2a5cf72d00882660f7ce85068fa02d0992f 100644 |
--- a/content/renderer/render_frame_impl.cc |
+++ b/content/renderer/render_frame_impl.cc |
@@ -1051,12 +1051,15 @@ void RenderFrameImpl::OnSwapOut(int proxy_routing_id) { |
// clearing the page. We also allow this process to exit if there are no |
// other active RenderFrames in it. |
- // Send an UpdateState message before we get swapped out. Create the |
- // RenderFrameProxy as well so its routing id is registered for receiving |
- // IPC messages. |
+ // Send an UpdateState message before we get swapped out. |
render_view_->SyncNavigationState(); |
- proxy = RenderFrameProxy::CreateProxyToReplaceFrame(this, |
- proxy_routing_id); |
+ |
+ // If we need a proxy to replace this, create it now so its routing id is |
+ // registered for receiving IPC messages. |
+ if (proxy_routing_id != MSG_ROUTING_NONE) { |
+ proxy = RenderFrameProxy::CreateProxyToReplaceFrame(this, |
+ proxy_routing_id); |
+ } |
// Synchronously run the unload handler before sending the ACK. |
// TODO(creis): Call dispatchUnloadEvent unconditionally here to support |