| Index: remoting/host/win/session_event_executor.h
|
| ===================================================================
|
| --- remoting/host/win/session_event_executor.h (revision 166306)
|
| +++ remoting/host/win/session_event_executor.h (working copy)
|
| @@ -8,6 +8,7 @@
|
| #include <set>
|
|
|
| #include "base/basictypes.h"
|
| +#include "base/callback.h"
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/memory/weak_ptr.h"
|
| #include "remoting/host/event_executor.h"
|
| @@ -21,11 +22,18 @@
|
|
|
| class SasInjector;
|
|
|
| +// Monitors and passes key/mouse events to a nested event executor. Injects
|
| +// Secure Attention Sequence (SAS) when Ctrl+Alt+Del key combination has been
|
| +// detected.
|
| class SessionEventExecutorWin : public EventExecutor {
|
| public:
|
| + // |inject_sas| is invoked on |inject_sas_task_runner| to generate SAS on
|
| + // Vista+.
|
| SessionEventExecutorWin(
|
| - scoped_refptr<base::SingleThreadTaskRunner> main_task_runner,
|
| - scoped_ptr<EventExecutor> nested_executor);
|
| + scoped_refptr<base::SingleThreadTaskRunner> input_task_runner,
|
| + scoped_ptr<EventExecutor> nested_executor,
|
| + scoped_refptr<base::SingleThreadTaskRunner> inject_sas_task_runner,
|
| + const base::Closure& inject_sas);
|
| ~SessionEventExecutorWin();
|
|
|
| // EventExecutor implementation.
|
| @@ -46,13 +54,19 @@
|
| // the current one.
|
| void SwitchToInputDesktop();
|
|
|
| + scoped_refptr<base::SingleThreadTaskRunner> input_task_runner_;
|
| +
|
| // Pointer to the next event executor.
|
| scoped_ptr<EventExecutor> nested_executor_;
|
|
|
| - scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
|
| + scoped_refptr<base::SingleThreadTaskRunner> inject_sas_task_runner_;
|
|
|
| ScopedThreadDesktop desktop_;
|
|
|
| + // Used to inject Secure Attention Sequence on Vista+.
|
| + base::Closure inject_sas_;
|
| +
|
| + // Used to inject Secure Attention Sequence on XP.
|
| scoped_ptr<SasInjector> sas_injector_;
|
|
|
| // Keys currently pressed by the client, used to detect Ctrl-Alt-Del.
|
|
|