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

Unified Diff: remoting/host/it2me/it2me_host.cc

Issue 639233002: Remote assistance on Chrome OS Part IV - It2MeHost (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Move DEPS to remoting/host Created 6 years, 2 months 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
Index: remoting/host/it2me/it2me_host.cc
diff --git a/remoting/host/it2me/it2me_host.cc b/remoting/host/it2me/it2me_host.cc
index b9a17f8c9431b159fddbcd15a586eb438b315995..7adebc7cd7f9efa142a612d1720fcf76f0310f40 100644
--- a/remoting/host/it2me/it2me_host.cc
+++ b/remoting/host/it2me/it2me_host.cc
@@ -6,7 +6,6 @@
#include "base/bind.h"
#include "base/strings/string_util.h"
-#include "base/synchronization/waitable_event.h"
#include "base/threading/platform_thread.h"
#include "net/socket/client_socket_factory.h"
#include "remoting/base/auto_thread.h"
@@ -43,6 +42,7 @@ It2MeHost::It2MeHost(
const std::string& directory_bot_jid)
: host_context_(host_context),
task_runner_(task_runner),
+ network_task_runner_(host_context_->network_task_runner()),
observer_(observer),
xmpp_server_config_(xmpp_server_config),
directory_bot_jid_(directory_bot_jid),
@@ -62,25 +62,25 @@ void It2MeHost::Connect() {
}
desktop_environment_factory_.reset(new It2MeDesktopEnvironmentFactory(
- host_context_->network_task_runner(),
+ network_task_runner_,
host_context_->input_task_runner(),
host_context_->ui_task_runner()));
// Start monitoring configured policies.
policy_watcher_.reset(
- policy_hack::PolicyWatcher::Create(host_context_->network_task_runner()));
+ policy_hack::PolicyWatcher::Create(host_context_, network_task_runner_));
policy_watcher_->StartWatching(
base::Bind(&It2MeHost::OnPolicyUpdate, this));
// Switch to the network thread to start the actual connection.
- host_context_->network_task_runner()->PostTask(
+ network_task_runner_->PostTask(
FROM_HERE, base::Bind(&It2MeHost::ReadPolicyAndConnect, this));
}
void It2MeHost::Disconnect() {
- if (!host_context_->network_task_runner()->BelongsToCurrentThread()) {
+ if (!network_task_runner_->BelongsToCurrentThread()) {
DCHECK(task_runner_->BelongsToCurrentThread());
- host_context_->network_task_runner()->PostTask(
+ network_task_runner_->PostTask(
FROM_HERE, base::Bind(&It2MeHost::Disconnect, this));
return;
}
@@ -111,16 +111,16 @@ void It2MeHost::Disconnect() {
// Deleting the host destroys SignalStrategy synchronously, but
// SignalStrategy::Listener handlers are not allowed to destroy
// SignalStrategy, so post task to destroy the host later.
- host_context_->network_task_runner()->PostTask(
+ network_task_runner_->PostTask(
FROM_HERE, base::Bind(&It2MeHost::ShutdownOnNetworkThread, this));
return;
}
}
void It2MeHost::RequestNatPolicy() {
- if (!host_context_->network_task_runner()->BelongsToCurrentThread()) {
+ if (!network_task_runner_->BelongsToCurrentThread()) {
DCHECK(task_runner_->BelongsToCurrentThread());
- host_context_->network_task_runner()->PostTask(
+ network_task_runner_->PostTask(
FROM_HERE, base::Bind(&It2MeHost::RequestNatPolicy, this));
return;
}
@@ -130,7 +130,7 @@ void It2MeHost::RequestNatPolicy() {
}
void It2MeHost::ReadPolicyAndConnect() {
- DCHECK(host_context_->network_task_runner()->BelongsToCurrentThread());
+ DCHECK(network_task_runner_->BelongsToCurrentThread());
SetState(kStarting);
@@ -146,7 +146,7 @@ void It2MeHost::ReadPolicyAndConnect() {
}
void It2MeHost::FinishConnect() {
- DCHECK(host_context_->network_task_runner()->BelongsToCurrentThread());
+ DCHECK(network_task_runner_->BelongsToCurrentThread());
if (state_ != kStarting) {
// Host has been stopped while we were fetching policy.
@@ -203,7 +203,7 @@ void It2MeHost::FinishConnect() {
host_context_->input_task_runner(),
host_context_->video_capture_task_runner(),
host_context_->video_encode_task_runner(),
- host_context_->network_task_runner(),
+ network_task_runner_,
host_context_->ui_task_runner()));
host_->AddStatusObserver(this);
host_status_logger_.reset(
@@ -231,7 +231,7 @@ void It2MeHost::FinishConnect() {
}
void It2MeHost::ShutdownOnNetworkThread() {
- DCHECK(host_context_->network_task_runner()->BelongsToCurrentThread());
+ DCHECK(network_task_runner_->BelongsToCurrentThread());
DCHECK(state_ == kDisconnecting || state_ == kDisconnected);
if (state_ == kDisconnecting) {
@@ -245,27 +245,30 @@ void It2MeHost::ShutdownOnNetworkThread() {
SetState(kDisconnected);
}
- host_context_->ui_task_runner()->PostTask(
- FROM_HERE, base::Bind(&It2MeHost::ShutdownOnUiThread, this));
+ task_runner_->PostTask(FROM_HERE,
Jamie 2014/10/14 01:18:42 Why has this changed?
kelvinp 2014/10/15 23:03:10 As per wez, comment, we are trying to take referen
+ base::Bind(&It2MeHost::ShutdownOnUiThread, this));
}
void It2MeHost::ShutdownOnUiThread() {
- DCHECK(host_context_->ui_task_runner()->BelongsToCurrentThread());
+ DCHECK(task_runner_->BelongsToCurrentThread());
// Destroy the DesktopEnvironmentFactory, to free thread references.
desktop_environment_factory_.reset();
// Stop listening for policy updates.
if (policy_watcher_.get()) {
- base::WaitableEvent policy_watcher_stopped_(true, false);
- policy_watcher_->StopWatching(&policy_watcher_stopped_);
- policy_watcher_stopped_.Wait();
- policy_watcher_.reset();
+ policy_watcher_->StopWatching(
+ base::Bind(&It2MeHost::OnPolicyWatcherShutdown, this));
+ return;
}
}
+void It2MeHost::OnPolicyWatcherShutdown() {
+ policy_watcher_.reset();
+}
+
void It2MeHost::OnAccessDenied(const std::string& jid) {
- DCHECK(host_context_->network_task_runner()->BelongsToCurrentThread());
+ DCHECK(network_task_runner_->BelongsToCurrentThread());
++failed_login_attempts_;
if (failed_login_attempts_ == kMaxLoginAttempts) {
@@ -274,7 +277,7 @@ void It2MeHost::OnAccessDenied(const std::string& jid) {
}
void It2MeHost::OnClientAuthenticated(const std::string& jid) {
- DCHECK(host_context_->network_task_runner()->BelongsToCurrentThread());
+ DCHECK(network_task_runner_->BelongsToCurrentThread());
if (state_ == kDisconnecting) {
// Ignore the new connection if we are disconnecting.
@@ -305,13 +308,13 @@ void It2MeHost::OnClientAuthenticated(const std::string& jid) {
}
void It2MeHost::OnClientDisconnected(const std::string& jid) {
- DCHECK(host_context_->network_task_runner()->BelongsToCurrentThread());
+ DCHECK(network_task_runner_->BelongsToCurrentThread());
Disconnect();
}
void It2MeHost::OnPolicyUpdate(scoped_ptr<base::DictionaryValue> policies) {
- DCHECK(host_context_->network_task_runner()->BelongsToCurrentThread());
+ DCHECK(network_task_runner_->BelongsToCurrentThread());
bool nat_policy;
if (policies->GetBoolean(policy_hack::PolicyWatcher::kNatPolicyName,
@@ -333,7 +336,7 @@ void It2MeHost::OnPolicyUpdate(scoped_ptr<base::DictionaryValue> policies) {
}
void It2MeHost::UpdateNatPolicy(bool nat_traversal_enabled) {
- DCHECK(host_context_->network_task_runner()->BelongsToCurrentThread());
+ DCHECK(network_task_runner_->BelongsToCurrentThread());
VLOG(2) << "UpdateNatPolicy: " << nat_traversal_enabled;
@@ -352,7 +355,7 @@ void It2MeHost::UpdateNatPolicy(bool nat_traversal_enabled) {
}
void It2MeHost::UpdateHostDomainPolicy(const std::string& host_domain) {
- DCHECK(host_context_->network_task_runner()->BelongsToCurrentThread());
+ DCHECK(network_task_runner_->BelongsToCurrentThread());
VLOG(2) << "UpdateHostDomainPolicy: " << host_domain;
@@ -371,7 +374,7 @@ It2MeHost::~It2MeHost() {
}
void It2MeHost::SetState(It2MeHostState state) {
- DCHECK(host_context_->network_task_runner()->BelongsToCurrentThread());
+ DCHECK(network_task_runner_->BelongsToCurrentThread());
switch (state_) {
case kDisconnected:
@@ -427,7 +430,7 @@ void It2MeHost::OnReceivedSupportID(
bool success,
const std::string& support_id,
const base::TimeDelta& lifetime) {
- DCHECK(host_context_->network_task_runner()->BelongsToCurrentThread());
+ DCHECK(network_task_runner_->BelongsToCurrentThread());
if (!success) {
SetState(kError);

Powered by Google App Engine
This is Rietveld 408576698