diff options
author | piman@google.com <piman@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-08 01:26:34 +0000 |
---|---|---|
committer | piman@google.com <piman@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-08 01:26:34 +0000 |
commit | f0ef2da98a8bc281600d565ff7788f2bec129d9f (patch) | |
tree | 42244f68465a8e8125fa4a47dc61c0dfb6d8a8c7 /chrome/plugin | |
parent | 3bc33c64f33882fc24742315734f648584813601 (diff) | |
download | chromium_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.cc | 3 |
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_); } |