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

Side by Side Diff: content/renderer/media/remote_media_stream_impl.cc

Issue 780713002: Fix remaining WeakPtrFactory ordering problems (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: merge Created 6 years 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 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/remote_media_stream_impl.h" 5 #include "content/renderer/media/remote_media_stream_impl.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/location.h" 10 #include "base/location.h"
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after
345 DCHECK(main_thread_->BelongsToCurrentThread()); 345 DCHECK(main_thread_->BelongsToCurrentThread());
346 if (media_stream_) 346 if (media_stream_)
347 media_stream_->OnChanged(audio_tracks.Pass(), video_tracks.Pass()); 347 media_stream_->OnChanged(audio_tracks.Pass(), video_tracks.Pass());
348 } 348 }
349 349
350 // Called on the signaling thread. 350 // Called on the signaling thread.
351 RemoteMediaStreamImpl::RemoteMediaStreamImpl( 351 RemoteMediaStreamImpl::RemoteMediaStreamImpl(
352 const scoped_refptr<base::SingleThreadTaskRunner>& main_thread, 352 const scoped_refptr<base::SingleThreadTaskRunner>& main_thread,
353 webrtc::MediaStreamInterface* webrtc_stream) 353 webrtc::MediaStreamInterface* webrtc_stream)
354 : signaling_thread_(base::ThreadTaskRunnerHandle::Get()), 354 : signaling_thread_(base::ThreadTaskRunnerHandle::Get()),
355 weak_factory_(this), 355 weak_factory_(this) {
356 observer_(new RemoteMediaStreamImpl::Observer(weak_factory_.GetWeakPtr(), 356 observer_ = new RemoteMediaStreamImpl::Observer(
357 main_thread, webrtc_stream)) { 357 weak_factory_.GetWeakPtr(), main_thread, webrtc_stream);
358 CreateAdaptersForTracks(webrtc_stream->GetAudioTracks(), 358 CreateAdaptersForTracks(webrtc_stream->GetAudioTracks(),
359 &audio_track_observers_, main_thread); 359 &audio_track_observers_, main_thread);
360 CreateAdaptersForTracks(webrtc_stream->GetVideoTracks(), 360 CreateAdaptersForTracks(webrtc_stream->GetVideoTracks(),
361 &video_track_observers_, main_thread); 361 &video_track_observers_, main_thread);
362 362
363 main_thread->PostTask(FROM_HERE, 363 main_thread->PostTask(FROM_HERE,
364 base::Bind(&RemoteMediaStreamImpl::Observer::InitializeOnMainThread, 364 base::Bind(&RemoteMediaStreamImpl::Observer::InitializeOnMainThread,
365 observer_, webrtc_stream->label())); 365 observer_, webrtc_stream->label()));
366 } 366 }
367 367
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
442 // Unregister all the audio track observers that were not used. 442 // Unregister all the audio track observers that were not used.
443 // We need to do this before destruction since the observers can't unregister 443 // We need to do this before destruction since the observers can't unregister
444 // from within the dtor due to a race. 444 // from within the dtor due to a race.
445 for (auto& track : *audio_tracks.get()) { 445 for (auto& track : *audio_tracks.get()) {
446 if (track.get()) 446 if (track.get())
447 track->Unregister(); 447 track->Unregister();
448 } 448 }
449 } 449 }
450 450
451 } // namespace content 451 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/remote_media_stream_impl.h ('k') | content/renderer/pepper/plugin_object.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698