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

Unified Diff: remoting/host/desktop_session_agent_win.cc

Issue 11447021: Added support of Secure Attention Sequence in multiprocess mode. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebased Created 8 years 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/desktop_session_agent_posix.cc ('k') | remoting/host/desktop_session_win.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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,
« no previous file with comments | « remoting/host/desktop_session_agent_posix.cc ('k') | remoting/host/desktop_session_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698