summaryrefslogtreecommitdiffstats
path: root/chrome/nacl
diff options
context:
space:
mode:
authorjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-13 00:32:25 +0000
committerjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-13 00:32:25 +0000
commit0820064d1bfa4744b6494a75a62c18e51f58e30a (patch)
tree5b61bb09edf42afe19213a79759a5d525714c31c /chrome/nacl
parent10a6c53ce290a6e8d5ad1f5420124dd344145608 (diff)
downloadchromium_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.cc5
-rw-r--r--chrome/nacl/nacl_broker_listener.h1
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);