Index: remoting/host/desktop_session_win.h |
diff --git a/remoting/host/desktop_session_win.h b/remoting/host/desktop_session_win.h |
index 2b07432596d89d961ecd15b11ecdec52c0f8672c..a8b35d534811ae4e7e0097ab63f1ea321d83445b 100644 |
--- a/remoting/host/desktop_session_win.h |
+++ b/remoting/host/desktop_session_win.h |
@@ -8,16 +8,19 @@ |
#include "base/file_path.h" |
#include "base/memory/ref_counted.h" |
#include "base/memory/scoped_ptr.h" |
+#include "base/win/scoped_handle.h" |
+#include "ipc/ipc_platform_file.h" |
#include "remoting/host/desktop_session.h" |
#include "remoting/host/win/wts_console_observer.h" |
#include "remoting/host/worker_process_ipc_delegate.h" |
-namespace base { |
-class SingleThreadTaskRunner; |
-} // namespace base |
+namespace tracked_objects { |
+class Location; |
+} // namespace tracked_objects |
namespace remoting { |
+class AutoThreadTaskRunner; |
class DaemonProcess; |
class WorkerProcessLauncher; |
class WtsConsoleMonitor; |
@@ -37,8 +40,8 @@ class DesktopSessionWin |
// session |id| and the interface for monitoring console session attach/detach |
// events. Both |daemon_process| and |monitor| must outlive |this|. |
DesktopSessionWin( |
- scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, |
- scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, |
+ scoped_refptr<AutoThreadTaskRunner> main_task_runner, |
+ scoped_refptr<AutoThreadTaskRunner> io_task_runner, |
DaemonProcess* daemon_process, |
int id, |
WtsConsoleMonitor* monitor); |
@@ -54,15 +57,24 @@ class DesktopSessionWin |
virtual void OnSessionDetached() OVERRIDE; |
private: |
+ // ChromotingDesktopDaemonMsg_DesktopAttached handler. |
+ void OnDesktopSessionAgentAttached(IPC::PlatformFileForTransit desktop_pipe); |
+ |
+ // Restarts the desktop process. |
+ void RestartDesktopProcess(const tracked_objects::Location& location); |
+ |
// Task runner on which public methods of this class should be called. |
- scoped_refptr<base::SingleThreadTaskRunner> main_task_runner_; |
+ scoped_refptr<AutoThreadTaskRunner> main_task_runner_; |
// Message loop used by the IPC channel. |
- scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_; |
+ scoped_refptr<AutoThreadTaskRunner> io_task_runner_; |
// Contains the full path to the desktop binary. |
FilePath desktop_binary_; |
+ // Handle of the desktop process. |
+ base::win::ScopedHandle desktop_process_; |
+ |
// Launches and monitors the desktop process. |
scoped_ptr<WorkerProcessLauncher> launcher_; |