| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/libjingle_transport_factory.h" | 5 #include "remoting/protocol/libjingle_transport_factory.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/callback.h" | 9 #include "base/callback.h" |
| 10 #include "base/callback_helpers.h" | 10 #include "base/callback_helpers.h" |
| 11 #include "base/single_thread_task_runner.h" | 11 #include "base/single_thread_task_runner.h" |
| 12 #include "base/thread_task_runner_handle.h" | 12 #include "base/thread_task_runner_handle.h" |
| 13 #include "base/timer/timer.h" | 13 #include "base/timer/timer.h" |
| 14 #include "jingle/glue/channel_socket_adapter.h" | |
| 15 #include "jingle/glue/utils.h" | 14 #include "jingle/glue/utils.h" |
| 16 #include "net/base/net_errors.h" | 15 #include "net/base/net_errors.h" |
| 16 #include "remoting/protocol/channel_socket_adapter.h" |
| 17 #include "remoting/protocol/network_settings.h" | 17 #include "remoting/protocol/network_settings.h" |
| 18 #include "remoting/signaling/jingle_info_request.h" | 18 #include "remoting/signaling/jingle_info_request.h" |
| 19 #include "third_party/webrtc/base/network.h" | 19 #include "third_party/webrtc/base/network.h" |
| 20 #include "third_party/webrtc/p2p/base/constants.h" | 20 #include "third_party/webrtc/p2p/base/constants.h" |
| 21 #include "third_party/webrtc/p2p/base/p2ptransportchannel.h" | 21 #include "third_party/webrtc/p2p/base/p2ptransportchannel.h" |
| 22 #include "third_party/webrtc/p2p/base/port.h" | 22 #include "third_party/webrtc/p2p/base/port.h" |
| 23 #include "third_party/webrtc/p2p/client/basicportallocator.h" | 23 #include "third_party/webrtc/p2p/client/basicportallocator.h" |
| 24 #include "third_party/webrtc/p2p/client/httpportallocator.h" | 24 #include "third_party/webrtc/p2p/client/httpportallocator.h" |
| 25 | 25 |
| 26 namespace remoting { | 26 namespace remoting { |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 void NotifyConnected(); | 80 void NotifyConnected(); |
| 81 | 81 |
| 82 // Signal handlers for cricket::TransportChannel. | 82 // Signal handlers for cricket::TransportChannel. |
| 83 void OnRequestSignaling(cricket::TransportChannelImpl* channel); | 83 void OnRequestSignaling(cricket::TransportChannelImpl* channel); |
| 84 void OnCandidateReady(cricket::TransportChannelImpl* channel, | 84 void OnCandidateReady(cricket::TransportChannelImpl* channel, |
| 85 const cricket::Candidate& candidate); | 85 const cricket::Candidate& candidate); |
| 86 void OnRouteChange(cricket::TransportChannel* channel, | 86 void OnRouteChange(cricket::TransportChannel* channel, |
| 87 const cricket::Candidate& candidate); | 87 const cricket::Candidate& candidate); |
| 88 void OnWritableState(cricket::TransportChannel* channel); | 88 void OnWritableState(cricket::TransportChannel* channel); |
| 89 | 89 |
| 90 // Callback for jingle_glue::TransportChannelSocketAdapter to notify when the | 90 // Callback for TransportChannelSocketAdapter to notify when the socket is |
| 91 // socket is destroyed. | 91 // destroyed. |
| 92 void OnChannelDestroyed(); | 92 void OnChannelDestroyed(); |
| 93 | 93 |
| 94 void NotifyRouteChanged(); | 94 void NotifyRouteChanged(); |
| 95 | 95 |
| 96 // Tries to connect by restarting ICE. Called by |reconnect_timer_|. | 96 // Tries to connect by restarting ICE. Called by |reconnect_timer_|. |
| 97 void TryReconnect(); | 97 void TryReconnect(); |
| 98 | 98 |
| 99 cricket::PortAllocator* port_allocator_; | 99 cricket::PortAllocator* port_allocator_; |
| 100 NetworkSettings network_settings_; | 100 NetworkSettings network_settings_; |
| 101 TransportRole role_; | 101 TransportRole role_; |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 230 FROM_HERE, base::TimeDelta::FromSeconds(kReconnectDelaySeconds), | 230 FROM_HERE, base::TimeDelta::FromSeconds(kReconnectDelaySeconds), |
| 231 this, &LibjingleTransport::TryReconnect); | 231 this, &LibjingleTransport::TryReconnect); |
| 232 | 232 |
| 233 base::ThreadTaskRunnerHandle::Get()->PostTask( | 233 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 234 FROM_HERE, base::Bind(&LibjingleTransport::NotifyConnected, | 234 FROM_HERE, base::Bind(&LibjingleTransport::NotifyConnected, |
| 235 weak_factory_.GetWeakPtr())); | 235 weak_factory_.GetWeakPtr())); |
| 236 } | 236 } |
| 237 | 237 |
| 238 void LibjingleTransport::NotifyConnected() { | 238 void LibjingleTransport::NotifyConnected() { |
| 239 // Create net::Socket adapter for the P2PTransportChannel. | 239 // Create net::Socket adapter for the P2PTransportChannel. |
| 240 scoped_ptr<jingle_glue::TransportChannelSocketAdapter> socket( | 240 scoped_ptr<TransportChannelSocketAdapter> socket( |
| 241 new jingle_glue::TransportChannelSocketAdapter(channel_.get())); | 241 new TransportChannelSocketAdapter(channel_.get())); |
| 242 socket->SetOnDestroyedCallback(base::Bind( | 242 socket->SetOnDestroyedCallback(base::Bind( |
| 243 &LibjingleTransport::OnChannelDestroyed, base::Unretained(this))); | 243 &LibjingleTransport::OnChannelDestroyed, base::Unretained(this))); |
| 244 base::ResetAndReturn(&callback_).Run(socket.Pass()); | 244 base::ResetAndReturn(&callback_).Run(socket.Pass()); |
| 245 } | 245 } |
| 246 | 246 |
| 247 void LibjingleTransport::SetRemoteCredentials(const std::string& ufrag, | 247 void LibjingleTransport::SetRemoteCredentials(const std::string& ufrag, |
| 248 const std::string& password) { | 248 const std::string& password) { |
| 249 DCHECK(CalledOnValidThread()); | 249 DCHECK(CalledOnValidThread()); |
| 250 | 250 |
| 251 remote_ice_username_fragment_ = ufrag; | 251 remote_ice_username_fragment_ = ufrag; |
| (...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 467 last_jingle_info_update_time_ = base::TimeTicks::Now(); | 467 last_jingle_info_update_time_ = base::TimeTicks::Now(); |
| 468 | 468 |
| 469 while (!on_jingle_info_callbacks_.empty()) { | 469 while (!on_jingle_info_callbacks_.empty()) { |
| 470 on_jingle_info_callbacks_.begin()->Run(); | 470 on_jingle_info_callbacks_.begin()->Run(); |
| 471 on_jingle_info_callbacks_.pop_front(); | 471 on_jingle_info_callbacks_.pop_front(); |
| 472 } | 472 } |
| 473 } | 473 } |
| 474 | 474 |
| 475 } // namespace protocol | 475 } // namespace protocol |
| 476 } // namespace remoting | 476 } // namespace remoting |
| OLD | NEW |