diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-22 20:12:51 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-22 20:12:51 +0000 |
commit | a3a8fb6d3692cf61db8cfed20e15e83916e6602b (patch) | |
tree | a1eeaccf812b0c43747d9674d3b0d13ad37a39e6 /chrome/browser/plugin_process_host.cc | |
parent | ef65f48857ee9d56b841f5285d087f07f102b49f (diff) | |
download | chromium_src-a3a8fb6d3692cf61db8cfed20e15e83916e6602b.zip chromium_src-a3a8fb6d3692cf61db8cfed20e15e83916e6602b.tar.gz chromium_src-a3a8fb6d3692cf61db8cfed20e15e83916e6602b.tar.bz2 |
Fix renderer hang if plugin process crashes while initializing a plugin.
BUG=25104
Review URL: http://codereview.chromium.org/315012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29806 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/plugin_process_host.cc')
-rw-r--r-- | chrome/browser/plugin_process_host.cc | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/chrome/browser/plugin_process_host.cc b/chrome/browser/plugin_process_host.cc index 10fd62c9..35dcda3 100644 --- a/chrome/browser/plugin_process_host.cc +++ b/chrome/browser/plugin_process_host.cc @@ -523,11 +523,19 @@ void PluginProcessHost::OnChannelError() { for (size_t i = 0; i < pending_requests_.size(); ++i) { ReplyToRenderer(pending_requests_[i].renderer_message_filter_.get(), IPC::ChannelHandle(), - WebPluginInfo(), + info_, pending_requests_[i].reply_msg); } pending_requests_.clear(); + + while (!sent_requests_.empty()) { + ReplyToRenderer(sent_requests_.front().renderer_message_filter_.get(), + IPC::ChannelHandle(), + info_, + sent_requests_.front().reply_msg); + sent_requests_.pop(); + } } void PluginProcessHost::OpenChannelToPlugin( @@ -631,7 +639,7 @@ void PluginProcessHost::RequestPluginChannel( } else { ReplyToRenderer(renderer_message_filter, IPC::ChannelHandle(), - WebPluginInfo(), + info_, reply_msg); } } |