Index: chrome/browser/renderer_host/chrome_render_message_filter.cc |
diff --git a/chrome/browser/renderer_host/chrome_render_message_filter.cc b/chrome/browser/renderer_host/chrome_render_message_filter.cc |
index 670041360f194a4f22d6d422918d7ea25e5c3428..88076b3fd67a332f560946b953d68a060d970917 100644 |
--- a/chrome/browser/renderer_host/chrome_render_message_filter.cc |
+++ b/chrome/browser/renderer_host/chrome_render_message_filter.cc |
@@ -147,7 +147,12 @@ void ChromeRenderMessageFilter::OverrideThreadForMessage( |
void ChromeRenderMessageFilter::OnLaunchNaCl( |
const std::wstring& url, int socket_count, IPC::Message* reply_msg) { |
NaClProcessHost* host = new NaClProcessHost(url); |
- host->Launch(this, socket_count, reply_msg); |
+ if (!host->Launch(this, socket_count, reply_msg)) { |
+ // On failure, the NaClProcessHost didn't send the reply which the renderer |
+ // is blocked on. Unblock the renderer by sending an error. |
+ reply_msg->set_reply_error(); |
dmichael (off chromium)
2011/12/20 19:01:34
Now that I think about it, did you mean for this s
|
+ Send(reply_msg); |
+ } |
} |
#endif |