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

Unified Diff: remoting/protocol/webrtc_transport.cc

Issue 2146213002: Add support for dynamic channels in WebrtcTransport. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 4 years, 5 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
« no previous file with comments | « remoting/protocol/webrtc_transport.h ('k') | remoting/protocol/webrtc_transport_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/protocol/webrtc_transport.cc
diff --git a/remoting/protocol/webrtc_transport.cc b/remoting/protocol/webrtc_transport.cc
index 665ff7abe28c3d43567fede94dd5389ef314fc06..7b375f67ed39e9ff753cfeb861713551f299f9de 100644
--- a/remoting/protocol/webrtc_transport.cc
+++ b/remoting/protocol/webrtc_transport.cc
@@ -146,12 +146,6 @@ WebrtcTransport::WebrtcTransport(
transport_context_(transport_context),
event_handler_(event_handler),
handshake_hmac_(crypto::HMAC::SHA256),
- outgoing_data_stream_adapter_(
- true,
- base::Bind(&WebrtcTransport::Close, base::Unretained(this))),
- incoming_data_stream_adapter_(
- false,
- base::Bind(&WebrtcTransport::Close, base::Unretained(this))),
weak_factory_(this) {
transport_context_->set_relay_mode(TransportContext::RelayMode::TURN);
}
@@ -198,8 +192,9 @@ void WebrtcTransport::Start(
peer_connection_ = peer_connection_factory_->CreatePeerConnection(
rtc_config, &constraints, std::move(port_allocator), nullptr, this);
- outgoing_data_stream_adapter_.Initialize(peer_connection_);
- incoming_data_stream_adapter_.Initialize(peer_connection_);
+ data_stream_adapter_.reset(new WebrtcDataStreamAdapter(
+ base::Bind(&WebrtcTransport::Close, base::Unretained(this))));
+ data_stream_adapter_->Initialize(peer_connection_);
event_handler_->OnWebrtcTransportConnecting();
@@ -439,7 +434,10 @@ void WebrtcTransport::OnRemoveStream(
void WebrtcTransport::OnDataChannel(
rtc::scoped_refptr<webrtc::DataChannelInterface> data_channel) {
DCHECK(thread_checker_.CalledOnValidThread());
- incoming_data_stream_adapter_.OnIncomingDataChannel(data_channel);
+ data_stream_adapter_->WrapIncomingDataChannel(
+ data_channel,
+ base::Bind(&EventHandler::OnWebrtcTransportIncomingDataChannel,
+ base::Unretained(event_handler_), data_channel->label()));
}
void WebrtcTransport::OnRenegotiationNeeded() {
@@ -573,6 +571,9 @@ void WebrtcTransport::Close(ErrorCode error) {
return;
weak_factory_.InvalidateWeakPtrs();
+
+ data_stream_adapter_.reset();
+
peer_connection_->Close();
peer_connection_ = nullptr;
peer_connection_factory_ = nullptr;
« no previous file with comments | « remoting/protocol/webrtc_transport.h ('k') | remoting/protocol/webrtc_transport_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698