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 "content/renderer/media/rtc_peer_connection_handler.h" | 5 #include "content/renderer/media/rtc_peer_connection_handler.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <utility> | 8 #include <utility> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
255 | 255 |
256 void OnSuccess(webrtc::SessionDescriptionInterface* desc) override { | 256 void OnSuccess(webrtc::SessionDescriptionInterface* desc) override { |
257 if (!main_thread_->BelongsToCurrentThread()) { | 257 if (!main_thread_->BelongsToCurrentThread()) { |
258 main_thread_->PostTask(FROM_HERE, | 258 main_thread_->PostTask(FROM_HERE, |
259 base::Bind(&CreateSessionDescriptionRequest::OnSuccess, this, desc)); | 259 base::Bind(&CreateSessionDescriptionRequest::OnSuccess, this, desc)); |
260 return; | 260 return; |
261 } | 261 } |
262 | 262 |
263 tracker_.TrackOnSuccess(desc); | 263 tracker_.TrackOnSuccess(desc); |
264 webkit_request_.requestSucceeded(CreateWebKitSessionDescription(desc)); | 264 webkit_request_.requestSucceeded(CreateWebKitSessionDescription(desc)); |
| 265 webkit_request_.reset(); |
265 delete desc; | 266 delete desc; |
266 } | 267 } |
267 void OnFailure(const std::string& error) override { | 268 void OnFailure(const std::string& error) override { |
268 if (!main_thread_->BelongsToCurrentThread()) { | 269 if (!main_thread_->BelongsToCurrentThread()) { |
269 main_thread_->PostTask(FROM_HERE, | 270 main_thread_->PostTask(FROM_HERE, |
270 base::Bind(&CreateSessionDescriptionRequest::OnFailure, this, error)); | 271 base::Bind(&CreateSessionDescriptionRequest::OnFailure, this, error)); |
271 return; | 272 return; |
272 } | 273 } |
273 | 274 |
274 tracker_.TrackOnFailure(error); | 275 tracker_.TrackOnFailure(error); |
275 webkit_request_.requestFailed(base::UTF8ToUTF16(error)); | 276 webkit_request_.requestFailed(base::UTF8ToUTF16(error)); |
| 277 webkit_request_.reset(); |
276 } | 278 } |
277 | 279 |
278 protected: | 280 protected: |
279 ~CreateSessionDescriptionRequest() override {} | 281 ~CreateSessionDescriptionRequest() override { |
| 282 DCHECK(webkit_request_.isNull()); |
| 283 } |
280 | 284 |
281 const scoped_refptr<base::SingleThreadTaskRunner> main_thread_; | 285 const scoped_refptr<base::SingleThreadTaskRunner> main_thread_; |
282 blink::WebRTCSessionDescriptionRequest webkit_request_; | 286 blink::WebRTCSessionDescriptionRequest webkit_request_; |
283 SessionDescriptionRequestTracker tracker_; | 287 SessionDescriptionRequestTracker tracker_; |
284 }; | 288 }; |
285 | 289 |
286 // Class mapping responses from calls to libjingle | 290 // Class mapping responses from calls to libjingle |
287 // SetLocalDescription/SetRemoteDescription and a blink::WebRTCVoidRequest. | 291 // SetLocalDescription/SetRemoteDescription and a blink::WebRTCVoidRequest. |
288 class SetSessionDescriptionRequest | 292 class SetSessionDescriptionRequest |
289 : public webrtc::SetSessionDescriptionObserver { | 293 : public webrtc::SetSessionDescriptionObserver { |
(...skipping 10 matching lines...) Expand all Loading... |
300 } | 304 } |
301 | 305 |
302 void OnSuccess() override { | 306 void OnSuccess() override { |
303 if (!main_thread_->BelongsToCurrentThread()) { | 307 if (!main_thread_->BelongsToCurrentThread()) { |
304 main_thread_->PostTask(FROM_HERE, | 308 main_thread_->PostTask(FROM_HERE, |
305 base::Bind(&SetSessionDescriptionRequest::OnSuccess, this)); | 309 base::Bind(&SetSessionDescriptionRequest::OnSuccess, this)); |
306 return; | 310 return; |
307 } | 311 } |
308 tracker_.TrackOnSuccess(NULL); | 312 tracker_.TrackOnSuccess(NULL); |
309 webkit_request_.requestSucceeded(); | 313 webkit_request_.requestSucceeded(); |
| 314 webkit_request_.reset(); |
310 } | 315 } |
311 void OnFailure(const std::string& error) override { | 316 void OnFailure(const std::string& error) override { |
312 if (!main_thread_->BelongsToCurrentThread()) { | 317 if (!main_thread_->BelongsToCurrentThread()) { |
313 main_thread_->PostTask(FROM_HERE, | 318 main_thread_->PostTask(FROM_HERE, |
314 base::Bind(&SetSessionDescriptionRequest::OnFailure, this, error)); | 319 base::Bind(&SetSessionDescriptionRequest::OnFailure, this, error)); |
315 return; | 320 return; |
316 } | 321 } |
317 tracker_.TrackOnFailure(error); | 322 tracker_.TrackOnFailure(error); |
318 webkit_request_.requestFailed(base::UTF8ToUTF16(error)); | 323 webkit_request_.requestFailed(base::UTF8ToUTF16(error)); |
| 324 webkit_request_.reset(); |
319 } | 325 } |
320 | 326 |
321 protected: | 327 protected: |
322 ~SetSessionDescriptionRequest() override {} | 328 ~SetSessionDescriptionRequest() override { |
| 329 DCHECK(webkit_request_.isNull()); |
| 330 } |
323 | 331 |
324 private: | 332 private: |
325 const scoped_refptr<base::SingleThreadTaskRunner> main_thread_; | 333 const scoped_refptr<base::SingleThreadTaskRunner> main_thread_; |
326 blink::WebRTCVoidRequest webkit_request_; | 334 blink::WebRTCVoidRequest webkit_request_; |
327 SessionDescriptionRequestTracker tracker_; | 335 SessionDescriptionRequestTracker tracker_; |
328 }; | 336 }; |
329 | 337 |
330 // Class mapping responses from calls to libjingle | 338 // Class mapping responses from calls to libjingle |
331 // GetStats into a blink::WebRTCStatsCallback. | 339 // GetStats into a blink::WebRTCStatsCallback. |
332 class StatsResponse : public webrtc::StatsObserver { | 340 class StatsResponse : public webrtc::StatsObserver { |
(...skipping 1135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1468 base::WaitableEvent event(false, false); | 1476 base::WaitableEvent event(false, false); |
1469 thread->PostTask(FROM_HERE, | 1477 thread->PostTask(FROM_HERE, |
1470 base::Bind(&RunSynchronousClosure, closure, | 1478 base::Bind(&RunSynchronousClosure, closure, |
1471 base::Unretained(trace_event_name), | 1479 base::Unretained(trace_event_name), |
1472 base::Unretained(&event))); | 1480 base::Unretained(&event))); |
1473 event.Wait(); | 1481 event.Wait(); |
1474 } | 1482 } |
1475 } | 1483 } |
1476 | 1484 |
1477 } // namespace content | 1485 } // namespace content |
OLD | NEW |