Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(570)

Unified Diff: remoting/host/win/worker_process_launcher.h

Issue 11118005: Pass the client end handle of the network-to-daemon IPC channel via handle inheritance. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: CR feedback. Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « remoting/host/win/unprivileged_process_delegate.cc ('k') | remoting/host/win/worker_process_launcher.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/host/win/worker_process_launcher.h
diff --git a/remoting/host/win/worker_process_launcher.h b/remoting/host/win/worker_process_launcher.h
index fb0591027c32e7d9529c4a1f50d5be49e7ba6d57..26c1156af671ac2b88615294a00469dd3bbb3713 100644
--- a/remoting/host/win/worker_process_launcher.h
+++ b/remoting/host/win/worker_process_launcher.h
@@ -10,12 +10,14 @@
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
#include "base/win/scoped_handle.h"
+#include "ipc/ipc_sender.h"
namespace base {
class SingleThreadTaskRunner;
} // namespace base
namespace IPC {
+class Listener;
class Message;
} // namespace IPC
@@ -29,21 +31,23 @@ class WorkerProcessIpcDelegate;
// is terminated.
class WorkerProcessLauncher {
public:
- class Delegate {
+ class Delegate : public IPC::Sender {
public:
virtual ~Delegate();
// Returns the exit code of the worker process.
virtual DWORD GetExitCode() = 0;
- // Terminates the worker process with the given exit code.
+ // Terminates the worker process with the given exit code. Destroys the IPC
+ // channel created by LaunchProcess().
virtual void KillProcess(DWORD exit_code) = 0;
- // Starts the worker process and passes |channel_name| to it.
- // |process_exit_event_out| receives a handle that becomes signalled once
- // the launched process has been terminated.
+ // Starts the worker process and creates an IPC channel it can connect to.
+ // |delegate| specifies the object that will receive notifications from
+ // the IPC channel. |process_exit_event_out| receives a handle that becomes
+ // signalled once the launched process has been terminated.
virtual bool LaunchProcess(
- const std::string& channel_name,
+ IPC::Listener* delegate,
base::win::ScopedHandle* process_exit_event_out) = 0;
};
@@ -54,14 +58,11 @@ class WorkerProcessLauncher {
//
// The caller should call all the methods on this class on
// the |caller_task_runner| thread. Methods of both delegate interfaces are
- // called on the |caller_task_runner| thread as well. |io_task_runner| is used
- // to perform background IPC I/O.
+ // called on the |caller_task_runner| thread as well.
WorkerProcessLauncher(
scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner,
- scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
scoped_ptr<Delegate> launcher_delegate,
- WorkerProcessIpcDelegate* worker_delegate,
- const std::string& pipe_security_descriptor);
+ WorkerProcessIpcDelegate* worker_delegate);
~WorkerProcessLauncher();
// Sends an IPC message to the worker process. The message will be silently
« no previous file with comments | « remoting/host/win/unprivileged_process_delegate.cc ('k') | remoting/host/win/worker_process_launcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698