diff options
Diffstat (limited to 'content/browser/browser_child_process_host.h')
-rw-r--r-- | content/browser/browser_child_process_host.h | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/content/browser/browser_child_process_host.h b/content/browser/browser_child_process_host.h index bf5b881..499b632 100644 --- a/content/browser/browser_child_process_host.h +++ b/content/browser/browser_child_process_host.h @@ -8,11 +8,16 @@ #include <list> +#include "base/synchronization/waitable_event_watcher.h" #include "content/browser/child_process_launcher.h" #include "content/common/child_process_host.h" #include "content/common/child_process_info.h" #include "content/common/content_export.h" +namespace base { +class WaitableEvent; +} + // Plugins/workers and other child processes that live on the IO thread should // derive from this class. // @@ -21,10 +26,14 @@ class CONTENT_EXPORT BrowserChildProcessHost : public ChildProcessHost, public ChildProcessInfo, - public ChildProcessLauncher::Client { + public ChildProcessLauncher::Client, + public base::WaitableEventWatcher::Delegate { public: virtual ~BrowserChildProcessHost(); + virtual void OnWaitableEventSignaled( + base::WaitableEvent* waitable_event) OVERRIDE; + // Terminates all child processes and deletes each ChildProcessHost instance. static void TerminateAll(); @@ -87,7 +96,7 @@ class CONTENT_EXPORT BrowserChildProcessHost : virtual base::TerminationStatus GetChildTerminationStatus(int* exit_code); // Overrides from ChildProcessHost - virtual void OnChildDied(); + virtual void OnChildDisconnected(); virtual void ShutdownStarted(); virtual void Notify(int type); // Extends the base class implementation and removes this host from @@ -111,6 +120,10 @@ class CONTENT_EXPORT BrowserChildProcessHost : }; ClientHook client_; scoped_ptr<ChildProcessLauncher> child_process_; +#if defined(OS_WIN) + base::WaitableEventWatcher child_watcher_; +#endif + bool disconnect_was_alive_; }; #endif // CONTENT_BROWSER_BROWSER_CHILD_PROCESS_HOST_H_ |