Index: content/common/swapped_out_messages.cc |
diff --git a/content/common/swapped_out_messages.cc b/content/common/swapped_out_messages.cc |
index 3189d19f7f7cc5aaedbbc20b856610c33aabc249..55cec7ca258a21a4cb2cef5d2c0698342411d279 100644 |
--- a/content/common/swapped_out_messages.cc |
+++ b/content/common/swapped_out_messages.cc |
@@ -1,4 +1,4 @@ |
-// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
@@ -35,6 +35,12 @@ bool SwappedOutMessages::CanSendWhileSwappedOut(const IPC::Message* msg) { |
bool SwappedOutMessages::CanHandleWhileSwappedOut( |
const IPC::Message& msg) { |
+ // We must allow all synchronous IPC messages to be processed, or else |
+ // the renderer process will become stuck and won't respond to future |
+ // navigations. |
+ if (msg.is_sync()) |
+ return true; |
+ |
// Any message the renderer is allowed to send while swapped out should |
// be handled by the browser. |
if (CanSendWhileSwappedOut(&msg)) |