diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-13 00:32:25 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-13 00:32:25 +0000 |
commit | 0820064d1bfa4744b6494a75a62c18e51f58e30a (patch) | |
tree | 5b61bb09edf42afe19213a79759a5d525714c31c /chrome/nacl | |
parent | 10a6c53ce290a6e8d5ad1f5420124dd344145608 (diff) | |
download | chromium_src-0820064d1bfa4744b6494a75a62c18e51f58e30a.zip chromium_src-0820064d1bfa4744b6494a75a62c18e51f58e30a.tar.gz chromium_src-0820064d1bfa4744b6494a75a62c18e51f58e30a.tar.bz2 |
Make sure that the NaCl 64 bit broker process doesn't hang around if the browser process quits unexpectedly. Previously this was done through ChildThread, but we don't use that anymore.
TEST=kill browser process while broker is running and see that all nacl64.exe processes are gone
Review URL: http://codereview.chromium.org/7877010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100820 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/nacl')
-rw-r--r-- | chrome/nacl/nacl_broker_listener.cc | 5 | ||||
-rw-r--r-- | chrome/nacl/nacl_broker_listener.h | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/chrome/nacl/nacl_broker_listener.cc b/chrome/nacl/nacl_broker_listener.cc index cf2b8a0..75864c8 100644 --- a/chrome/nacl/nacl_broker_listener.cc +++ b/chrome/nacl/nacl_broker_listener.cc @@ -49,6 +49,11 @@ bool NaClBrokerListener::OnMessageReceived(const IPC::Message& msg) { return handled; } +void NaClBrokerListener::OnChannelError() { + // The browser died unexpectedly, quit to avoid a zombie process. + MessageLoop::current()->Quit(); +} + void NaClBrokerListener::OnLaunchLoaderThroughBroker( const std::wstring& loader_channel_id) { base::ProcessHandle loader_process = 0; diff --git a/chrome/nacl/nacl_broker_listener.h b/chrome/nacl/nacl_broker_listener.h index 1581c6d..e6003d4 100644 --- a/chrome/nacl/nacl_broker_listener.h +++ b/chrome/nacl/nacl_broker_listener.h @@ -23,6 +23,7 @@ class NaClBrokerListener : public IPC::Channel::Listener { // IPC::Channel::Listener implementation. virtual void OnChannelConnected(int32 peer_pid) OVERRIDE; virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE; + virtual void OnChannelError() OVERRIDE; private: void OnLaunchLoaderThroughBroker(const std::wstring& loader_channel_id); |