Index: remoting/host/session_event_executor_win.cc |
diff --git a/remoting/host/session_event_executor_win.cc b/remoting/host/session_event_executor_win.cc |
index 8168ccc15d63853f628f1910c872bc6b9cbf99c4..1bda46386a351983864de08054a65d489ced7aca 100644 |
--- a/remoting/host/session_event_executor_win.cc |
+++ b/remoting/host/session_event_executor_win.cc |
@@ -9,7 +9,7 @@ |
#include "base/bind.h" |
#include "base/command_line.h" |
#include "base/compiler_specific.h" |
-#include "base/message_loop.h" |
+#include "base/single_thread_task_runner.h" |
#include "base/win/windows_version.h" |
#include "ipc/ipc_channel.h" |
#include "ipc/ipc_channel_proxy.h" |
@@ -29,7 +29,7 @@ const uint32 kUsbLeftAlt = 0x0700e2; |
const uint32 kUsbRightAlt = 0x0700e6; |
const uint32 kUsbDelete = 0x07004c; |
-bool areCtrlAndAltPressed(const std::set<uint32>& pressed_keys) { |
+bool CheckCtrlAndAltArePressed(const std::set<uint32>& pressed_keys) { |
size_t ctrl_keys = pressed_keys.count(kUsbLeftControl) + |
pressed_keys.count(kUsbRightControl); |
size_t alt_keys = pressed_keys.count(kUsbLeftAlt) + |
@@ -41,7 +41,7 @@ bool areCtrlAndAltPressed(const std::set<uint32>& pressed_keys) { |
// Emulates Secure Attention Sequence (Ctrl+Alt+Del) by switching to |
// the Winlogon desktop and injecting Ctrl+Alt+Del as a hot key. |
// N.B. Windows XP/W2K3 only. |
-void emulateSecureAttentionSequence() { |
+void EmulateSecureAttentionSequence() { |
const wchar_t kWinlogonDesktopName[] = L"Winlogon"; |
const wchar_t kSasWindowClassName[] = L"SAS window class"; |
const wchar_t kSasWindowTitle[] = L"SAS window"; |
@@ -74,16 +74,16 @@ using protocol::MouseEvent; |
using protocol::KeyEvent; |
SessionEventExecutorWin::SessionEventExecutorWin( |
- MessageLoop* message_loop, |
- base::MessageLoopProxy* io_message_loop, |
+ scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, |
+ scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, |
scoped_ptr<EventExecutor> nested_executor) |
: nested_executor_(nested_executor.Pass()), |
- message_loop_(message_loop), |
+ task_runner_(main_task_runner), |
ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)), |
weak_ptr_(weak_ptr_factory_.GetWeakPtr()) { |
- // Let weak_ptr_ be used on the message_loop_ thread. |
- // weak_ptr_ and weak_ptr_factory_ share a ThreadChecker, so the following |
- // line affects both of them. |
+ // Let |weak_ptr_| be used on the |task_runner_| thread. |
+ // |weak_ptr_| and |weak_ptr_factory_| share a ThreadChecker, so the |
+ // following line affects both of them. |
weak_ptr_factory_.DetachFromThread(); |
std::string channel_name = |
@@ -93,21 +93,18 @@ SessionEventExecutorWin::SessionEventExecutorWin( |
// line. |
if (!channel_name.empty()) { |
chromoting_channel_.reset(new IPC::ChannelProxy( |
- channel_name, |
- IPC::Channel::MODE_CLIENT, |
- this, |
- io_message_loop)); |
+ channel_name, IPC::Channel::MODE_CLIENT, this, io_task_runner)); |
} |
} |
SessionEventExecutorWin::~SessionEventExecutorWin() { |
- DCHECK(MessageLoop::current() == message_loop_); |
+ DCHECK(task_runner_->BelongsToCurrentThread()); |
} |
void SessionEventExecutorWin::OnSessionStarted( |
scoped_ptr<protocol::ClipboardStub> client_clipboard) { |
- if (MessageLoop::current() != message_loop_) { |
- message_loop_->PostTask( |
+ if (!task_runner_->BelongsToCurrentThread()) { |
+ task_runner_->PostTask( |
FROM_HERE, |
base::Bind(&SessionEventExecutorWin::OnSessionStarted, |
weak_ptr_, base::Passed(&client_clipboard))); |
@@ -118,8 +115,8 @@ void SessionEventExecutorWin::OnSessionStarted( |
} |
void SessionEventExecutorWin::OnSessionFinished() { |
- if (MessageLoop::current() != message_loop_) { |
- message_loop_->PostTask( |
+ if (!task_runner_->BelongsToCurrentThread()) { |
+ task_runner_->PostTask( |
FROM_HERE, |
base::Bind(&SessionEventExecutorWin::OnSessionFinished, |
weak_ptr_)); |
@@ -131,8 +128,8 @@ void SessionEventExecutorWin::OnSessionFinished() { |
void SessionEventExecutorWin::InjectClipboardEvent( |
const ClipboardEvent& event) { |
- if (MessageLoop::current() != message_loop_) { |
- message_loop_->PostTask( |
+ if (!task_runner_->BelongsToCurrentThread()) { |
+ task_runner_->PostTask( |
FROM_HERE, |
base::Bind(&SessionEventExecutorWin::InjectClipboardEvent, |
weak_ptr_, event)); |
@@ -143,8 +140,8 @@ void SessionEventExecutorWin::InjectClipboardEvent( |
} |
void SessionEventExecutorWin::InjectKeyEvent(const KeyEvent& event) { |
- if (MessageLoop::current() != message_loop_) { |
- message_loop_->PostTask( |
+ if (!task_runner_->BelongsToCurrentThread()) { |
+ task_runner_->PostTask( |
FROM_HERE, |
base::Bind(&SessionEventExecutorWin::InjectKeyEvent, |
weak_ptr_, event)); |
@@ -158,11 +155,11 @@ void SessionEventExecutorWin::InjectKeyEvent(const KeyEvent& event) { |
if (event.pressed()) { |
// Simulate secure attention sequence if Ctrl-Alt-Del was just pressed. |
if (event.usb_keycode() == kUsbDelete && |
- areCtrlAndAltPressed(pressed_keys_)) { |
+ CheckCtrlAndAltArePressed(pressed_keys_)) { |
VLOG(3) << "Sending Secure Attention Sequence to console"; |
if (base::win::GetVersion() == base::win::VERSION_XP) { |
- emulateSecureAttentionSequence(); |
+ EmulateSecureAttentionSequence(); |
} else if (chromoting_channel_.get()) { |
chromoting_channel_->Send(new ChromotingHostMsg_SendSasToConsole()); |
} |
@@ -179,8 +176,8 @@ void SessionEventExecutorWin::InjectKeyEvent(const KeyEvent& event) { |
} |
void SessionEventExecutorWin::InjectMouseEvent(const MouseEvent& event) { |
- if (MessageLoop::current() != message_loop_) { |
- message_loop_->PostTask( |
+ if (!task_runner_->BelongsToCurrentThread()) { |
+ task_runner_->PostTask( |
FROM_HERE, |
base::Bind(&SessionEventExecutorWin::InjectMouseEvent, |
weak_ptr_, event)); |