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

Side by Side Diff: webrtc/api/peerconnectionfactory.cc

Issue 2013523002: Replacing DtlsIdentityStoreInterface with RTCCertificateGeneratorInterface. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: The side dish: Update ambigous calls Created 4 years, 6 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2004 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2004 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 18 matching lines...) Expand all
29 #include "webrtc/media/engine/webrtcvideodecoderfactory.h" 29 #include "webrtc/media/engine/webrtcvideodecoderfactory.h"
30 #include "webrtc/media/engine/webrtcvideoencoderfactory.h" 30 #include "webrtc/media/engine/webrtcvideoencoderfactory.h"
31 #include "webrtc/modules/audio_device/include/audio_device.h" 31 #include "webrtc/modules/audio_device/include/audio_device.h"
32 #include "webrtc/p2p/base/basicpacketsocketfactory.h" 32 #include "webrtc/p2p/base/basicpacketsocketfactory.h"
33 #include "webrtc/p2p/client/basicportallocator.h" 33 #include "webrtc/p2p/client/basicportallocator.h"
34 34
35 namespace webrtc { 35 namespace webrtc {
36 36
37 namespace { 37 namespace {
38 38
39 // Passes down the calls to |store_|. See usage in CreatePeerConnection. 39 // Passes down the calls to |cert_generator_|. See usage in
40 class DtlsIdentityStoreWrapper : public DtlsIdentityStoreInterface { 40 // |CreatePeerConnection|.
41 class RTCCertificateGeneratorWrapper
42 : public rtc::RTCCertificateGeneratorInterface {
41 public: 43 public:
42 DtlsIdentityStoreWrapper( 44 RTCCertificateGeneratorWrapper(
43 const rtc::scoped_refptr<RefCountedDtlsIdentityStore>& store) 45 const rtc::scoped_refptr<RefCountedRTCCertificateGenerator>& cert_gen)
44 : store_(store) { 46 : cert_generator_(cert_gen) {
45 RTC_DCHECK(store_); 47 RTC_DCHECK(cert_generator_);
46 } 48 }
47 49
48 void RequestIdentity( 50 void GenerateCertificateAsync(
49 const rtc::KeyParams& key_params, 51 const rtc::KeyParams& key_params,
50 const rtc::Optional<uint64_t>& expires_ms, 52 const rtc::Optional<uint64_t>& expires_ms,
51 const rtc::scoped_refptr<webrtc::DtlsIdentityRequestObserver>& 53 const rtc::scoped_refptr<rtc::RTCCertificateGeneratorCallback>& callback)
52 observer) override { 54 override {
53 store_->RequestIdentity(key_params, expires_ms, observer); 55 cert_generator_->GenerateCertificateAsync(key_params, expires_ms, callback);
54 } 56 }
55 57
56 private: 58 private:
57 rtc::scoped_refptr<RefCountedDtlsIdentityStore> store_; 59 rtc::scoped_refptr<RefCountedRTCCertificateGenerator> cert_generator_;
58 }; 60 };
59 61
60 } // anonymous namespace 62 } // anonymous namespace
61 63
62 rtc::scoped_refptr<PeerConnectionFactoryInterface> 64 rtc::scoped_refptr<PeerConnectionFactoryInterface>
63 CreatePeerConnectionFactory() { 65 CreatePeerConnectionFactory() {
64 rtc::scoped_refptr<PeerConnectionFactory> pc_factory( 66 rtc::scoped_refptr<PeerConnectionFactory> pc_factory(
65 new rtc::RefCountedObject<PeerConnectionFactory>()); 67 new rtc::RefCountedObject<PeerConnectionFactory>());
66 68
67 RTC_CHECK(rtc::Thread::Current() == pc_factory->signaling_thread()); 69 RTC_CHECK(rtc::Thread::Current() == pc_factory->signaling_thread());
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 // TODO: Currently there is no way creating an external adm in 136 // TODO: Currently there is no way creating an external adm in
135 // libjingle source tree. So we can 't currently assert if this is NULL. 137 // libjingle source tree. So we can 't currently assert if this is NULL.
136 // ASSERT(default_adm != NULL); 138 // ASSERT(default_adm != NULL);
137 } 139 }
138 140
139 PeerConnectionFactory::~PeerConnectionFactory() { 141 PeerConnectionFactory::~PeerConnectionFactory() {
140 RTC_DCHECK(signaling_thread_->IsCurrent()); 142 RTC_DCHECK(signaling_thread_->IsCurrent());
141 channel_manager_.reset(nullptr); 143 channel_manager_.reset(nullptr);
142 144
143 // Make sure |worker_thread_| and |signaling_thread_| outlive 145 // Make sure |worker_thread_| and |signaling_thread_| outlive
144 // |dtls_identity_store_|, |default_socket_factory_| and 146 // |cert_generator_|, |default_socket_factory_| and
145 // |default_network_manager_|. 147 // |default_network_manager_|.
146 dtls_identity_store_ = nullptr; 148 cert_generator_ = nullptr;
147 default_socket_factory_ = nullptr; 149 default_socket_factory_ = nullptr;
148 default_network_manager_ = nullptr; 150 default_network_manager_ = nullptr;
149 151
150 if (owns_ptrs_) { 152 if (owns_ptrs_) {
151 if (wraps_current_thread_) 153 if (wraps_current_thread_)
152 rtc::ThreadManager::Instance()->UnwrapCurrentThread(); 154 rtc::ThreadManager::Instance()->UnwrapCurrentThread();
153 delete worker_thread_; 155 delete worker_thread_;
154 delete network_thread_; 156 delete network_thread_;
155 } 157 }
156 } 158 }
(...skipping 20 matching lines...) Expand all
177 &PeerConnectionFactory::CreateMediaEngine_w, this)); 179 &PeerConnectionFactory::CreateMediaEngine_w, this));
178 180
179 channel_manager_.reset(new cricket::ChannelManager( 181 channel_manager_.reset(new cricket::ChannelManager(
180 media_engine, worker_thread_, network_thread_)); 182 media_engine, worker_thread_, network_thread_));
181 183
182 channel_manager_->SetVideoRtxEnabled(true); 184 channel_manager_->SetVideoRtxEnabled(true);
183 if (!channel_manager_->Init()) { 185 if (!channel_manager_->Init()) {
184 return false; 186 return false;
185 } 187 }
186 188
187 dtls_identity_store_ = 189 cert_generator_ =
188 new RefCountedDtlsIdentityStore(signaling_thread_, network_thread_); 190 new RefCountedRTCCertificateGenerator(signaling_thread_, network_thread_);
189 191
190 return true; 192 return true;
191 } 193 }
192 194
193 rtc::scoped_refptr<AudioSourceInterface> 195 rtc::scoped_refptr<AudioSourceInterface>
194 PeerConnectionFactory::CreateAudioSource( 196 PeerConnectionFactory::CreateAudioSource(
195 const MediaConstraintsInterface* constraints) { 197 const MediaConstraintsInterface* constraints) {
196 RTC_DCHECK(signaling_thread_->IsCurrent()); 198 RTC_DCHECK(signaling_thread_->IsCurrent());
197 rtc::scoped_refptr<LocalAudioSource> source( 199 rtc::scoped_refptr<LocalAudioSource> source(
198 LocalAudioSource::Create(options_, constraints)); 200 LocalAudioSource::Create(options_, constraints));
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 void PeerConnectionFactory::StopRtcEventLog() { 250 void PeerConnectionFactory::StopRtcEventLog() {
249 RTC_DCHECK(signaling_thread_->IsCurrent()); 251 RTC_DCHECK(signaling_thread_->IsCurrent());
250 channel_manager_->StopRtcEventLog(); 252 channel_manager_->StopRtcEventLog();
251 } 253 }
252 254
253 rtc::scoped_refptr<PeerConnectionInterface> 255 rtc::scoped_refptr<PeerConnectionInterface>
254 PeerConnectionFactory::CreatePeerConnection( 256 PeerConnectionFactory::CreatePeerConnection(
255 const PeerConnectionInterface::RTCConfiguration& configuration_in, 257 const PeerConnectionInterface::RTCConfiguration& configuration_in,
256 const MediaConstraintsInterface* constraints, 258 const MediaConstraintsInterface* constraints,
257 std::unique_ptr<cricket::PortAllocator> allocator, 259 std::unique_ptr<cricket::PortAllocator> allocator,
258 std::unique_ptr<DtlsIdentityStoreInterface> dtls_identity_store, 260 std::unique_ptr<rtc::RTCCertificateGeneratorInterface> cert_generator,
259 PeerConnectionObserver* observer) { 261 PeerConnectionObserver* observer) {
260 RTC_DCHECK(signaling_thread_->IsCurrent()); 262 RTC_DCHECK(signaling_thread_->IsCurrent());
261 263
262 // We merge constraints and configuration into a single configuration. 264 // We merge constraints and configuration into a single configuration.
263 PeerConnectionInterface::RTCConfiguration configuration = configuration_in; 265 PeerConnectionInterface::RTCConfiguration configuration = configuration_in;
264 CopyConstraintsIntoRtcConfiguration(constraints, &configuration); 266 CopyConstraintsIntoRtcConfiguration(constraints, &configuration);
265 267
266 return CreatePeerConnection(configuration, std::move(allocator), 268 return CreatePeerConnection(configuration, std::move(allocator),
267 std::move(dtls_identity_store), observer); 269 std::move(cert_generator), observer);
268 } 270 }
269 271
270 rtc::scoped_refptr<PeerConnectionInterface> 272 rtc::scoped_refptr<PeerConnectionInterface>
271 PeerConnectionFactory::CreatePeerConnection( 273 PeerConnectionFactory::CreatePeerConnection(
272 const PeerConnectionInterface::RTCConfiguration& configuration, 274 const PeerConnectionInterface::RTCConfiguration& configuration,
273 std::unique_ptr<cricket::PortAllocator> allocator, 275 std::unique_ptr<cricket::PortAllocator> allocator,
274 std::unique_ptr<DtlsIdentityStoreInterface> dtls_identity_store, 276 std::unique_ptr<rtc::RTCCertificateGeneratorInterface> cert_generator,
275 PeerConnectionObserver* observer) { 277 PeerConnectionObserver* observer) {
276 RTC_DCHECK(signaling_thread_->IsCurrent()); 278 RTC_DCHECK(signaling_thread_->IsCurrent());
277 279
278 if (!dtls_identity_store.get()) { 280 if (!cert_generator.get()) {
279 // Because |pc|->Initialize takes ownership of the store we need a new 281 // Because |pc|->Initialize takes ownership of the generator we need a new
280 // wrapper object that can be deleted without deleting the underlying 282 // wrapper object that can be deleted without deleting the underlying
281 // |dtls_identity_store_|, protecting it from being deleted multiple times. 283 // |cert_generator_|, protecting it from being deleted multiple times.
282 dtls_identity_store.reset( 284 cert_generator.reset(
283 new DtlsIdentityStoreWrapper(dtls_identity_store_)); 285 new RTCCertificateGeneratorWrapper(cert_generator_));
284 } 286 }
285 287
286 if (!allocator) { 288 if (!allocator) {
287 allocator.reset(new cricket::BasicPortAllocator( 289 allocator.reset(new cricket::BasicPortAllocator(
288 default_network_manager_.get(), default_socket_factory_.get())); 290 default_network_manager_.get(), default_socket_factory_.get()));
289 } 291 }
290 network_thread_->Invoke<void>( 292 network_thread_->Invoke<void>(
291 rtc::Bind(&cricket::PortAllocator::SetNetworkIgnoreMask, allocator.get(), 293 rtc::Bind(&cricket::PortAllocator::SetNetworkIgnoreMask, allocator.get(),
292 options_.network_ignore_mask)); 294 options_.network_ignore_mask));
293 295
294 rtc::scoped_refptr<PeerConnection> pc( 296 rtc::scoped_refptr<PeerConnection> pc(
295 new rtc::RefCountedObject<PeerConnection>(this)); 297 new rtc::RefCountedObject<PeerConnection>(this));
296 298
297 if (!pc->Initialize(configuration, std::move(allocator), 299 if (!pc->Initialize(configuration, std::move(allocator),
298 std::move(dtls_identity_store), observer)) { 300 std::move(cert_generator), observer)) {
299 return nullptr; 301 return nullptr;
300 } 302 }
301 return PeerConnectionProxy::Create(signaling_thread(), pc); 303 return PeerConnectionProxy::Create(signaling_thread(), pc);
302 } 304 }
303 305
304 rtc::scoped_refptr<MediaStreamInterface> 306 rtc::scoped_refptr<MediaStreamInterface>
305 PeerConnectionFactory::CreateLocalMediaStream(const std::string& label) { 307 PeerConnectionFactory::CreateLocalMediaStream(const std::string& label) {
306 RTC_DCHECK(signaling_thread_->IsCurrent()); 308 RTC_DCHECK(signaling_thread_->IsCurrent());
307 return MediaStreamProxy::Create(signaling_thread_, 309 return MediaStreamProxy::Create(signaling_thread_,
308 MediaStream::Create(label)); 310 MediaStream::Create(label));
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 } 350 }
349 351
350 cricket::MediaEngineInterface* PeerConnectionFactory::CreateMediaEngine_w() { 352 cricket::MediaEngineInterface* PeerConnectionFactory::CreateMediaEngine_w() {
351 ASSERT(worker_thread_ == rtc::Thread::Current()); 353 ASSERT(worker_thread_ == rtc::Thread::Current());
352 return cricket::WebRtcMediaEngineFactory::Create( 354 return cricket::WebRtcMediaEngineFactory::Create(
353 default_adm_.get(), video_encoder_factory_.get(), 355 default_adm_.get(), video_encoder_factory_.get(),
354 video_decoder_factory_.get()); 356 video_decoder_factory_.get());
355 } 357 }
356 358
357 } // namespace webrtc 359 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698