| Index: remoting/host/desktop_session_win.cc
|
| diff --git a/remoting/host/desktop_session_win.cc b/remoting/host/desktop_session_win.cc
|
| index 8472e127160aad5e375fc2f7570311ac210a5b40..ac287643eabe70c1a6a07f6b1ea5a7f980a0d6ee 100644
|
| --- a/remoting/host/desktop_session_win.cc
|
| +++ b/remoting/host/desktop_session_win.cc
|
| @@ -9,6 +9,7 @@
|
| #include "remoting/base/auto_thread_task_runner.h"
|
| #include "remoting/host/chromoting_messages.h"
|
| #include "remoting/host/daemon_process.h"
|
| +#include "remoting/host/sas_injector.h"
|
| #include "remoting/host/win/worker_process_launcher.h"
|
| #include "remoting/host/win/wts_console_monitor.h"
|
| #include "remoting/host/win/wts_session_process_delegate.h"
|
| @@ -72,6 +73,8 @@ bool DesktopSessionWin::OnMessageReceived(const IPC::Message& message) {
|
| IPC_BEGIN_MESSAGE_MAP(DesktopSessionWin, message)
|
| IPC_MESSAGE_HANDLER(ChromotingDesktopDaemonMsg_DesktopAttached,
|
| OnDesktopSessionAgentAttached)
|
| + IPC_MESSAGE_HANDLER(ChromotingDesktopDaemonMsg_InjectSas,
|
| + OnInjectSas)
|
| IPC_MESSAGE_UNHANDLED(handled = false)
|
| IPC_END_MESSAGE_MAP()
|
| return handled;
|
| @@ -128,6 +131,20 @@ void DesktopSessionWin::OnDesktopSessionAgentAttached(
|
| }
|
| }
|
|
|
| +void DesktopSessionWin::OnInjectSas() {
|
| + DCHECK(main_task_runner_->BelongsToCurrentThread());
|
| +
|
| + // Do not try to inject SAS if the desktop process is not running. This can
|
| + // happen when the session has detached from the console for instance.
|
| + if (!launcher_)
|
| + return;
|
| +
|
| + if (!sas_injector_)
|
| + sas_injector_ = SasInjector::Create();
|
| + if (!sas_injector_->InjectSas())
|
| + LOG(ERROR) << "Failed to inject Secure Attention Sequence.";
|
| +}
|
| +
|
| void DesktopSessionWin::RestartDesktopProcess(
|
| const tracked_objects::Location& location) {
|
| DCHECK(main_task_runner_->BelongsToCurrentThread());
|
|
|