Index: remoting/host/desktop_session_agent_win.cc |
diff --git a/remoting/host/desktop_session_agent_win.cc b/remoting/host/desktop_session_agent_win.cc |
index 01174399a7510dd5bb0f2e85d1b839b01c0ee037..c67343d9e42888b7aadbce7b2a606cd985711b19 100644 |
--- a/remoting/host/desktop_session_agent_win.cc |
+++ b/remoting/host/desktop_session_agent_win.cc |
@@ -13,7 +13,9 @@ |
#include "ipc/ipc_channel.h" |
#include "ipc/ipc_channel_proxy.h" |
#include "remoting/base/auto_thread_task_runner.h" |
+#include "remoting/host/event_executor.h" |
#include "remoting/host/win/launch_process_with_token.h" |
+#include "remoting/host/win/session_event_executor.h" |
using base::win::ScopedHandle; |
@@ -35,6 +37,11 @@ class DesktopSessionAgentWin : public DesktopSessionAgent { |
virtual bool CreateChannelForNetworkProcess( |
IPC::PlatformFileForTransit* client_out, |
scoped_ptr<IPC::ChannelProxy>* server_out) OVERRIDE; |
+ virtual scoped_ptr<EventExecutor> CreateEventExecutor() OVERRIDE; |
+ |
+ // Requests the daemon to inject Secure Attention Sequence into the current |
+ // session. |
+ void InjectSas(); |
private: |
DISALLOW_COPY_AND_ASSIGN(DesktopSessionAgentWin); |
@@ -87,6 +94,24 @@ bool DesktopSessionAgentWin::CreateChannelForNetworkProcess( |
return true; |
} |
+scoped_ptr<EventExecutor> DesktopSessionAgentWin::CreateEventExecutor() { |
+ DCHECK(caller_task_runner()->BelongsToCurrentThread()); |
+ |
+ scoped_ptr<EventExecutor> event_executor = |
+ EventExecutor::Create(input_task_runner(), caller_task_runner()); |
+ event_executor.reset(new SessionEventExecutorWin( |
+ input_task_runner(), event_executor.Pass(), caller_task_runner(), |
+ base::Bind(&DesktopSessionAgentWin::InjectSas, this))); |
+ return event_executor.Pass(); |
+} |
+ |
+void DesktopSessionAgentWin::InjectSas() { |
+ DCHECK(caller_task_runner()->BelongsToCurrentThread()); |
+ |
+ if (delegate().get()) |
+ delegate()->InjectSas(); |
+} |
+ |
// static |
scoped_refptr<DesktopSessionAgent> DesktopSessionAgent::Create( |
scoped_refptr<AutoThreadTaskRunner> caller_task_runner, |