Index: content/browser/renderer_host/render_process_host_impl.cc |
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc |
index d3bdd8067714480170ce788a3518f9027fd6d7f7..ff61a0a28bb3c7e522a566cf704828498f565898 100644 |
--- a/content/browser/renderer_host/render_process_host_impl.cc |
+++ b/content/browser/renderer_host/render_process_host_impl.cc |
@@ -1002,7 +1002,7 @@ void RenderProcessHostImpl::ClearTransportDIBCache() { |
bool RenderProcessHostImpl::Send(IPC::Message* msg) { |
if (!channel_.get()) { |
- if (!is_initialized_) { |
+ if (!is_initialized_ && !msg->is_sync()) { |
queued_messages_.push(msg); |
return true; |
} else { |
@@ -1012,6 +1012,10 @@ bool RenderProcessHostImpl::Send(IPC::Message* msg) { |
} |
if (child_process_launcher_.get() && child_process_launcher_->IsStarting()) { |
+ if (msg->is_sync()) { |
+ delete msg; |
+ return false; |
+ } |
queued_messages_.push(msg); |
return true; |
} |