Chromium Code Reviews| Index: talk/app/webrtc/peerconnection.cc |
| diff --git a/talk/app/webrtc/peerconnection.cc b/talk/app/webrtc/peerconnection.cc |
| index a53e2cb510ef9806299f6314617ff8ccc0d41d82..83b954fe4f2ff7a569dea95446b7dd62adb2d2db 100644 |
| --- a/talk/app/webrtc/peerconnection.cc |
| +++ b/talk/app/webrtc/peerconnection.cc |
| @@ -351,6 +351,46 @@ bool PeerConnection::Initialize( |
| PortAllocatorFactoryInterface* allocator_factory, |
| rtc::scoped_ptr<DtlsIdentityStoreInterface> dtls_identity_store, |
| PeerConnectionObserver* observer) { |
| + if (!InitializeInternal(configuration, constraints, allocator_factory, |
| + observer)) { |
| + return false; |
| + } |
| + |
| + // Initialize the WebRtcSession with our optional |dtls_identity_store|. |
| + // It creates transport channels etc. |
| + if (!session_->Initialize(factory_->options(), constraints, |
|
tommi (sloooow) - chröme
2015/08/18 14:49:35
return session_->Initialize(...);
|
| + dtls_identity_store.Pass(), configuration)) { |
| + return false; |
|
tommi (sloooow) - chröme
2015/08/18 14:49:35
if we hit this, do we have to undo some of the wor
|
| + } |
| + return true; |
| +} |
| + |
| +bool PeerConnection::Initialize( |
| + const PeerConnectionInterface::RTCConfiguration& configuration, |
| + const MediaConstraintsInterface* constraints, |
| + PortAllocatorFactoryInterface* allocator_factory, |
| + const rtc::scoped_refptr<DtlsCertificate>& certificate, |
| + PeerConnectionObserver* observer) { |
| + DCHECK(certificate.get()); |
| + if (!InitializeInternal(configuration, constraints, allocator_factory, |
| + observer)) { |
| + return false; |
| + } |
| + |
| + // Initialize the WebRtcSession with our |certificate|. |
| + // It creates transport channels etc. |
| + if (!session_->Initialize(factory_->options(), constraints, |
|
tommi (sloooow) - chröme
2015/08/18 14:49:35
nit:
return session_->Initialize(...);
|
| + certificate, configuration)) { |
| + return false; |
| + } |
| + return true; |
| +} |
| + |
| +bool PeerConnection::InitializeInternal( |
| + const PeerConnectionInterface::RTCConfiguration& configuration, |
| + const MediaConstraintsInterface* constraints, |
| + PortAllocatorFactoryInterface* allocator_factory, |
| + PeerConnectionObserver* observer) { |
| ASSERT(observer != NULL); |
| if (!observer) |
| return false; |
| @@ -399,19 +439,14 @@ bool PeerConnection::Initialize( |
| factory_->worker_thread(), |
| port_allocator_.get(), |
| mediastream_signaling_.get())); |
| - stream_handler_container_.reset(new MediaStreamHandlerContainer( |
| - session_.get(), session_.get())); |
| - stats_.reset(new StatsCollector(session_.get())); |
| - |
| - // Initialize the WebRtcSession. It creates transport channels etc. |
| - if (!session_->Initialize(factory_->options(), constraints, |
| - dtls_identity_store.Pass(), configuration)) |
| - return false; |
| - |
| // Register PeerConnection as receiver of local ice candidates. |
| // All the callbacks will be posted to the application from PeerConnection. |
| session_->RegisterIceObserver(this); |
| session_->SignalState.connect(this, &PeerConnection::OnSessionStateChange); |
| + |
| + stream_handler_container_.reset(new MediaStreamHandlerContainer( |
| + session_.get(), session_.get())); |
| + stats_.reset(new StatsCollector(session_.get())); |
| return true; |
| } |