summaryrefslogtreecommitdiffstats
path: root/chrome/plugin
diff options
context:
space:
mode:
authorpiman@google.com <piman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-08 01:26:34 +0000
committerpiman@google.com <piman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-08 01:26:34 +0000
commitf0ef2da98a8bc281600d565ff7788f2bec129d9f (patch)
tree42244f68465a8e8125fa4a47dc61c0dfb6d8a8c7 /chrome/plugin
parent3bc33c64f33882fc24742315734f648584813601 (diff)
downloadchromium_src-f0ef2da98a8bc281600d565ff7788f2bec129d9f.zip
chromium_src-f0ef2da98a8bc281600d565ff7788f2bec129d9f.tar.gz
chromium_src-f0ef2da98a8bc281600d565ff7788f2bec129d9f.tar.bz2
linux: fix renderer/plugin crash when loading multiple pages with plugins
Currently we crash if one renderer has a plugin and another one has a plugin that gets destroyed, and started again (e.g. reload). We get away with reload on a single page currently because the process gets torn down. This properly cleans up the socket and channel mapping on both sides, so it can be restarted. Review URL: http://codereview.chromium.org/155174 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20112 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/plugin')
-rw-r--r--chrome/plugin/plugin_channel.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/chrome/plugin/plugin_channel.cc b/chrome/plugin/plugin_channel.cc
index 6264af5..7977218 100644
--- a/chrome/plugin/plugin_channel.cc
+++ b/chrome/plugin/plugin_channel.cc
@@ -48,7 +48,8 @@ PluginChannel::~PluginChannel() {
if (renderer_handle_)
base::CloseProcessHandle(renderer_handle_);
#if defined(OS_POSIX)
- // If we still have the FD, close it.
+ IPC::RemoveAndCloseChannelSocket(channel_name());
+ // If we still have the renderer FD, close it.
if (renderer_fd_ != -1) {
close(renderer_fd_);
}