| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "remoting/protocol/connection_to_host.h" | 5 #include "remoting/protocol/connection_to_host.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/callback.h" | 8 #include "base/callback.h" |
| 9 #include "base/location.h" | 9 #include "base/location.h" |
| 10 #include "base/message_loop_proxy.h" | 10 #include "base/message_loop_proxy.h" |
| 11 #include "remoting/base/constants.h" | 11 #include "remoting/base/constants.h" |
| 12 #include "remoting/jingle_glue/javascript_signal_strategy.h" | 12 #include "remoting/jingle_glue/javascript_signal_strategy.h" |
| 13 #include "remoting/jingle_glue/xmpp_signal_strategy.h" | 13 #include "remoting/jingle_glue/xmpp_signal_strategy.h" |
| 14 #include "remoting/protocol/auth_util.h" | 14 #include "remoting/protocol/auth_util.h" |
| 15 #include "remoting/protocol/client_control_dispatcher.h" | 15 #include "remoting/protocol/client_control_dispatcher.h" |
| 16 #include "remoting/protocol/client_event_dispatcher.h" | 16 #include "remoting/protocol/client_event_dispatcher.h" |
| 17 #include "remoting/protocol/client_stub.h" | 17 #include "remoting/protocol/client_stub.h" |
| 18 #include "remoting/protocol/jingle_session_manager.h" | 18 #include "remoting/protocol/jingle_session_manager.h" |
| 19 #include "remoting/protocol/pepper_session_manager.h" | 19 #include "remoting/protocol/pepper_session_manager.h" |
| 20 #include "remoting/protocol/v1_authenticator.h" |
| 20 #include "remoting/protocol/video_reader.h" | 21 #include "remoting/protocol/video_reader.h" |
| 21 #include "remoting/protocol/video_stub.h" | 22 #include "remoting/protocol/video_stub.h" |
| 22 #include "remoting/protocol/util.h" | 23 #include "remoting/protocol/util.h" |
| 23 | 24 |
| 24 namespace remoting { | 25 namespace remoting { |
| 25 namespace protocol { | 26 namespace protocol { |
| 26 | 27 |
| 27 ConnectionToHost::ConnectionToHost( | 28 ConnectionToHost::ConnectionToHost( |
| 28 base::MessageLoopProxy* message_loop, | 29 base::MessageLoopProxy* message_loop, |
| 29 pp::Instance* pp_instance, | 30 pp::Instance* pp_instance, |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 93 signal_strategy_.reset(); | 94 signal_strategy_.reset(); |
| 94 | 95 |
| 95 shutdown_task.Run(); | 96 shutdown_task.Run(); |
| 96 } | 97 } |
| 97 | 98 |
| 98 void ConnectionToHost::InitSession() { | 99 void ConnectionToHost::InitSession() { |
| 99 DCHECK(message_loop_->BelongsToCurrentThread()); | 100 DCHECK(message_loop_->BelongsToCurrentThread()); |
| 100 | 101 |
| 101 session_manager_.reset(new PepperSessionManager(pp_instance_)); | 102 session_manager_.reset(new PepperSessionManager(pp_instance_)); |
| 102 session_manager_->Init( | 103 session_manager_->Init( |
| 103 local_jid_, signal_strategy_.get(), this, NULL, "", allow_nat_traversal_); | 104 local_jid_, signal_strategy_.get(), this, allow_nat_traversal_); |
| 104 } | 105 } |
| 105 | 106 |
| 106 const SessionConfig& ConnectionToHost::config() { | 107 const SessionConfig& ConnectionToHost::config() { |
| 107 return session_->config(); | 108 return session_->config(); |
| 108 } | 109 } |
| 109 | 110 |
| 110 void ConnectionToHost::OnStateChange( | 111 void ConnectionToHost::OnStateChange( |
| 111 SignalStrategy::StatusObserver::State state) { | 112 SignalStrategy::StatusObserver::State state) { |
| 112 DCHECK(message_loop_->BelongsToCurrentThread()); | 113 DCHECK(message_loop_->BelongsToCurrentThread()); |
| 113 DCHECK(event_callback_); | 114 DCHECK(event_callback_); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 125 DCHECK(message_loop_->BelongsToCurrentThread()); | 126 DCHECK(message_loop_->BelongsToCurrentThread()); |
| 126 local_jid_ = full_jid; | 127 local_jid_ = full_jid; |
| 127 } | 128 } |
| 128 | 129 |
| 129 void ConnectionToHost::OnSessionManagerInitialized() { | 130 void ConnectionToHost::OnSessionManagerInitialized() { |
| 130 DCHECK(message_loop_->BelongsToCurrentThread()); | 131 DCHECK(message_loop_->BelongsToCurrentThread()); |
| 131 | 132 |
| 132 // After SessionManager is initialized we can try to connect to the host. | 133 // After SessionManager is initialized we can try to connect to the host. |
| 133 CandidateSessionConfig* candidate_config = | 134 CandidateSessionConfig* candidate_config = |
| 134 CandidateSessionConfig::CreateDefault(); | 135 CandidateSessionConfig::CreateDefault(); |
| 135 std::string client_token = | 136 V1ClientAuthenticator* authenticator = |
| 136 protocol::GenerateSupportAuthToken(local_jid_, access_code_); | 137 new V1ClientAuthenticator(local_jid_, access_code_); |
| 137 session_.reset(session_manager_->Connect( | 138 session_.reset(session_manager_->Connect( |
| 138 host_jid_, host_public_key_, client_token, candidate_config, | 139 host_jid_, authenticator, candidate_config, |
| 139 base::Bind(&ConnectionToHost::OnSessionStateChange, | 140 base::Bind(&ConnectionToHost::OnSessionStateChange, |
| 140 base::Unretained(this)))); | 141 base::Unretained(this)))); |
| 141 | |
| 142 // Set the shared-secret for securing SSL channels. | |
| 143 session_->set_shared_secret(access_code_); | |
| 144 } | 142 } |
| 145 | 143 |
| 146 void ConnectionToHost::OnIncomingSession( | 144 void ConnectionToHost::OnIncomingSession( |
| 147 Session* session, | 145 Session* session, |
| 148 SessionManager::IncomingSessionResponse* response) { | 146 SessionManager::IncomingSessionResponse* response) { |
| 149 DCHECK(message_loop_->BelongsToCurrentThread()); | 147 DCHECK(message_loop_->BelongsToCurrentThread()); |
| 150 // Client always rejects incoming sessions. | 148 // Client always rejects incoming sessions. |
| 151 *response = SessionManager::DECLINE; | 149 *response = SessionManager::DECLINE; |
| 152 } | 150 } |
| 153 | 151 |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 247 | 245 |
| 248 if (state != state_) { | 246 if (state != state_) { |
| 249 state_ = state; | 247 state_ = state; |
| 250 error_ = error; | 248 error_ = error; |
| 251 event_callback_->OnConnectionState(state_, error_); | 249 event_callback_->OnConnectionState(state_, error_); |
| 252 } | 250 } |
| 253 } | 251 } |
| 254 | 252 |
| 255 } // namespace protocol | 253 } // namespace protocol |
| 256 } // namespace remoting | 254 } // namespace remoting |
| OLD | NEW |