diff options
Diffstat (limited to 'chrome/browser/renderer_host/render_view_host.cc')
-rw-r--r-- | chrome/browser/renderer_host/render_view_host.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/chrome/browser/renderer_host/render_view_host.cc b/chrome/browser/renderer_host/render_view_host.cc index b7e0ad5..c06d4fa 100644 --- a/chrome/browser/renderer_host/render_view_host.cc +++ b/chrome/browser/renderer_host/render_view_host.cc @@ -671,6 +671,10 @@ bool RenderViewHost::SuddenTerminationAllowed() const { // RenderViewHost, IPC message handlers: void RenderViewHost::OnMessageReceived(const IPC::Message& msg) { +#if !defined(OS_LINUX) + // On Windows there's a potential deadlock with sync messsages going in + // a circle from browser -> plugin -> renderer -> browser. + // On Linux we can avoid this by avoiding sync messages from browser->plugin. if (msg.is_sync() && !msg.is_caller_pumping_messages()) { NOTREACHED() << "Can't send sync messages to UI thread without pumping " "messages in the renderer or else deadlocks can occur if the page " @@ -680,6 +684,7 @@ void RenderViewHost::OnMessageReceived(const IPC::Message& msg) { Send(reply); return; } +#endif bool msg_is_ok = true; IPC_BEGIN_MESSAGE_MAP_EX(RenderViewHost, msg, msg_is_ok) |