Index: remoting/host/chromoting_host.cc |
diff --git a/remoting/host/chromoting_host.cc b/remoting/host/chromoting_host.cc |
index 3633d238daf970bb0bc6e07f093ece6d074ac281..b16a83ce290ec13ad03024577b6847eef19982e5 100644 |
--- a/remoting/host/chromoting_host.cc |
+++ b/remoting/host/chromoting_host.cc |
@@ -18,7 +18,6 @@ |
#include "remoting/host/event_executor.h" |
#include "remoting/host/host_config.h" |
#include "remoting/host/screen_recorder.h" |
-#include "remoting/jingle_glue/xmpp_signal_strategy.h" |
#include "remoting/protocol/connection_to_client.h" |
#include "remoting/protocol/client_stub.h" |
#include "remoting/protocol/host_stub.h" |
@@ -32,16 +31,9 @@ using remoting::protocol::InputStub; |
namespace remoting { |
-// static |
-ChromotingHost* ChromotingHost::Create(ChromotingHostContext* context, |
- MutableHostConfig* config, |
- DesktopEnvironment* environment, |
- bool allow_nat_traversal) { |
- return new ChromotingHost(context, config, environment, allow_nat_traversal); |
-} |
- |
ChromotingHost::ChromotingHost(ChromotingHostContext* context, |
MutableHostConfig* config, |
+ SignalStrategy* signal_strategy, |
DesktopEnvironment* environment, |
bool allow_nat_traversal) |
: context_(context), |
@@ -49,10 +41,13 @@ ChromotingHost::ChromotingHost(ChromotingHostContext* context, |
config_(config), |
allow_nat_traversal_(allow_nat_traversal), |
have_shared_secret_(false), |
+ signal_strategy_(signal_strategy), |
stopping_recorders_(0), |
state_(kInitial), |
protocol_config_(protocol::CandidateSessionConfig::CreateDefault()), |
is_it2me_(false) { |
+ DCHECK(context_); |
+ DCHECK(signal_strategy); |
DCHECK(desktop_environment_); |
desktop_environment_->set_host(this); |
} |
@@ -69,7 +64,6 @@ void ChromotingHost::Start() { |
} |
LOG(INFO) << "Starting host"; |
- DCHECK(!signal_strategy_.get()); |
// Make sure this object is not started. |
if (state_ != kInitial) |
@@ -82,29 +76,10 @@ void ChromotingHost::Start() { |
return; |
} |
- // Use an XMPP connection to the Talk network for session signalling. |
- std::string xmpp_login; |
- std::string xmpp_auth_token; |
- std::string xmpp_auth_service; |
- if (!config_->GetString(kXmppLoginConfigPath, &xmpp_login) || |
- !config_->GetString(kXmppAuthTokenConfigPath, &xmpp_auth_token) || |
- !config_->GetString(kXmppAuthServiceConfigPath, &xmpp_auth_service)) { |
- LOG(ERROR) << "XMPP credentials are not defined in the config."; |
- return; |
- } |
- |
- // Create and start XMPP connection. |
- signal_strategy_.reset( |
- new XmppSignalStrategy(context_->jingle_thread(), xmpp_login, |
- xmpp_auth_token, xmpp_auth_service)); |
- signal_strategy_->AddListener(this); |
- signal_strategy_->Connect(); |
- |
// Create and start session manager. |
session_manager_.reset( |
new protocol::JingleSessionManager(context_->network_message_loop())); |
- session_manager_->Init(signal_strategy_.get(), |
- this, allow_nat_traversal_); |
+ session_manager_->Init(signal_strategy_, this, allow_nat_traversal_); |
} |
// This method is called when we need to destroy the host process. |
@@ -145,13 +120,6 @@ void ChromotingHost::Shutdown(const base::Closure& shutdown_task) { |
have_shared_secret_ = false; |
} |
- // Stop XMPP connection synchronously. |
- if (signal_strategy_.get()) { |
- signal_strategy_->Disconnect(); |
- signal_strategy_->RemoveListener(this); |
- signal_strategy_.reset(); |
- } |
- |
if (recorder_.get()) { |
StopScreenRecorder(); |
} else { |
@@ -254,28 +222,6 @@ void ChromotingHost::OnSessionSequenceNumber(ClientSession* session, |
recorder_->UpdateSequenceNumber(sequence_number); |
} |
-//////////////////////////////////////////////////////////////////////////// |
-// SignalStrategy::StatusObserver implementations |
-void ChromotingHost::OnSignalStrategyStateChange( |
- SignalStrategy::State state) { |
- DCHECK(context_->network_message_loop()->BelongsToCurrentThread()); |
- |
- if (state == SignalStrategy::CONNECTED) { |
- LOG(INFO) << "Host connected as " << signal_strategy_->GetLocalJid(); |
- |
- for (StatusObserverList::iterator it = status_observers_.begin(); |
- it != status_observers_.end(); ++it) { |
- (*it)->OnSignallingConnected(signal_strategy_.get()); |
- } |
- } else if (state == SignalStrategy::DISCONNECTED) { |
- LOG(INFO) << "Host disconnected from talk network."; |
- for (StatusObserverList::iterator it = status_observers_.begin(); |
- it != status_observers_.end(); ++it) { |
- (*it)->OnSignallingDisconnected(); |
- } |
- } |
-} |
- |
void ChromotingHost::OnSessionManagerReady() { |
DCHECK(context_->network_message_loop()->BelongsToCurrentThread()); |
// Don't need to do anything here, just wait for incoming |