summaryrefslogtreecommitdiffstats
path: root/chrome/browser/plugin_process_host.cc
diff options
context:
space:
mode:
authorjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-22 20:12:51 +0000
committerjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-22 20:12:51 +0000
commita3a8fb6d3692cf61db8cfed20e15e83916e6602b (patch)
treea1eeaccf812b0c43747d9674d3b0d13ad37a39e6 /chrome/browser/plugin_process_host.cc
parentef65f48857ee9d56b841f5285d087f07f102b49f (diff)
downloadchromium_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.cc12
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);
}
}