| OLD | NEW | 
|   1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |   1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
|   2 // Use of this source code is governed by a BSD-style license that can be |   2 // Use of this source code is governed by a BSD-style license that can be | 
|   3 // found in the LICENSE file. |   3 // found in the LICENSE file. | 
|   4  |   4  | 
|   5 #ifndef REMOTING_HOST_DESKTOP_SESSION_WIN_H_ |   5 #ifndef REMOTING_HOST_DESKTOP_SESSION_WIN_H_ | 
|   6 #define REMOTING_HOST_DESKTOP_SESSION_WIN_H_ |   6 #define REMOTING_HOST_DESKTOP_SESSION_WIN_H_ | 
|   7  |   7  | 
|   8 #include "base/file_path.h" |   8 #include "base/file_path.h" | 
|   9 #include "base/memory/ref_counted.h" |   9 #include "base/memory/ref_counted.h" | 
|  10 #include "base/memory/scoped_ptr.h" |  10 #include "base/memory/scoped_ptr.h" | 
|  11 #include "base/win/scoped_handle.h" |  11 #include "base/win/scoped_handle.h" | 
|  12 #include "ipc/ipc_platform_file.h" |  12 #include "ipc/ipc_platform_file.h" | 
|  13 #include "remoting/host/desktop_session.h" |  13 #include "remoting/host/desktop_session.h" | 
|  14 #include "remoting/host/win/wts_console_observer.h" |  14 #include "remoting/host/win/wts_console_observer.h" | 
|  15 #include "remoting/host/worker_process_ipc_delegate.h" |  15 #include "remoting/host/worker_process_ipc_delegate.h" | 
|  16  |  16  | 
|  17 namespace tracked_objects { |  17 namespace tracked_objects { | 
|  18 class Location; |  18 class Location; | 
|  19 }  // namespace tracked_objects |  19 }  // namespace tracked_objects | 
|  20  |  20  | 
|  21 namespace remoting { |  21 namespace remoting { | 
|  22  |  22  | 
|  23 class AutoThreadTaskRunner; |  23 class AutoThreadTaskRunner; | 
|  24 class DaemonProcess; |  24 class DaemonProcess; | 
 |  25 class SasInjector; | 
|  25 class WorkerProcessLauncher; |  26 class WorkerProcessLauncher; | 
|  26 class WtsConsoleMonitor; |  27 class WtsConsoleMonitor; | 
|  27  |  28  | 
|  28 // DesktopSession implementation which attaches to the host's physical console. |  29 // DesktopSession implementation which attaches to the host's physical console. | 
|  29 // Receives IPC messages from the desktop process, running in the console |  30 // Receives IPC messages from the desktop process, running in the console | 
|  30 // session, via |WorkerProcessIpcDelegate|, and monitors console session |  31 // session, via |WorkerProcessIpcDelegate|, and monitors console session | 
|  31 // attach/detach events via |WtsConsoleObserer|. |  32 // attach/detach events via |WtsConsoleObserer|. | 
|  32 // TODO(alexeypa): replace |WtsConsoleObserver| with an interface capable of |  33 // TODO(alexeypa): replace |WtsConsoleObserver| with an interface capable of | 
|  33 // monitoring both the console and RDP connections. See http://crbug.com/137696. |  34 // monitoring both the console and RDP connections. See http://crbug.com/137696. | 
|  34 class DesktopSessionWin |  35 class DesktopSessionWin | 
| (...skipping 18 matching lines...) Expand all  Loading... | 
|  53   virtual void OnPermanentError() OVERRIDE; |  54   virtual void OnPermanentError() OVERRIDE; | 
|  54  |  55  | 
|  55   // WtsConsoleObserver implementation. |  56   // WtsConsoleObserver implementation. | 
|  56   virtual void OnSessionAttached(uint32 session_id) OVERRIDE; |  57   virtual void OnSessionAttached(uint32 session_id) OVERRIDE; | 
|  57   virtual void OnSessionDetached() OVERRIDE; |  58   virtual void OnSessionDetached() OVERRIDE; | 
|  58  |  59  | 
|  59  private: |  60  private: | 
|  60   // ChromotingDesktopDaemonMsg_DesktopAttached handler. |  61   // ChromotingDesktopDaemonMsg_DesktopAttached handler. | 
|  61   void OnDesktopSessionAgentAttached(IPC::PlatformFileForTransit desktop_pipe); |  62   void OnDesktopSessionAgentAttached(IPC::PlatformFileForTransit desktop_pipe); | 
|  62  |  63  | 
 |  64   // ChromotingDesktopDaemonMsg_InjectSas handler. | 
 |  65   void OnInjectSas(); | 
 |  66  | 
|  63   // Restarts the desktop process. |  67   // Restarts the desktop process. | 
|  64   void RestartDesktopProcess(const tracked_objects::Location& location); |  68   void RestartDesktopProcess(const tracked_objects::Location& location); | 
|  65  |  69  | 
|  66   // Task runner on which public methods of this class should be called. |  70   // Task runner on which public methods of this class should be called. | 
|  67   scoped_refptr<AutoThreadTaskRunner> main_task_runner_; |  71   scoped_refptr<AutoThreadTaskRunner> main_task_runner_; | 
|  68  |  72  | 
|  69   // Message loop used by the IPC channel. |  73   // Message loop used by the IPC channel. | 
|  70   scoped_refptr<AutoThreadTaskRunner> io_task_runner_; |  74   scoped_refptr<AutoThreadTaskRunner> io_task_runner_; | 
|  71  |  75  | 
|  72   // Contains the full path to the desktop binary. |  76   // Contains the full path to the desktop binary. | 
|  73   FilePath desktop_binary_; |  77   FilePath desktop_binary_; | 
|  74  |  78  | 
|  75   // Handle of the desktop process. |  79   // Handle of the desktop process. | 
|  76   base::win::ScopedHandle desktop_process_; |  80   base::win::ScopedHandle desktop_process_; | 
|  77  |  81  | 
|  78   // Launches and monitors the desktop process. |  82   // Launches and monitors the desktop process. | 
|  79   scoped_ptr<WorkerProcessLauncher> launcher_; |  83   scoped_ptr<WorkerProcessLauncher> launcher_; | 
|  80  |  84  | 
|  81   // Pointer used to unsubscribe from session attach and detach events. |  85   // Pointer used to unsubscribe from session attach and detach events. | 
|  82   WtsConsoleMonitor* monitor_; |  86   WtsConsoleMonitor* monitor_; | 
|  83  |  87  | 
 |  88   scoped_ptr<SasInjector> sas_injector_; | 
 |  89  | 
|  84   DISALLOW_COPY_AND_ASSIGN(DesktopSessionWin); |  90   DISALLOW_COPY_AND_ASSIGN(DesktopSessionWin); | 
|  85 }; |  91 }; | 
|  86  |  92  | 
|  87 }  // namespace remoting |  93 }  // namespace remoting | 
|  88  |  94  | 
|  89 #endif  // REMOTING_HOST_DESKTOP_SESSION_WIN_H_ |  95 #endif  // REMOTING_HOST_DESKTOP_SESSION_WIN_H_ | 
| OLD | NEW |