| Index: content/renderer/media/mock_media_stream_dependency_factory.cc
|
| diff --git a/content/renderer/media/mock_media_stream_dependency_factory.cc b/content/renderer/media/mock_media_stream_dependency_factory.cc
|
| index 3920a71196e6454d465c63307ebbd5eb91b3258a..dc3ea0e284352ad6b1cccb5b5da8ec10a69d3cf1 100644
|
| --- a/content/renderer/media/mock_media_stream_dependency_factory.cc
|
| +++ b/content/renderer/media/mock_media_stream_dependency_factory.cc
|
| @@ -136,8 +136,7 @@ webrtc::MediaSourceInterface::SourceState MockAudioSource::state() const {
|
| }
|
|
|
| MockVideoSource::MockVideoSource()
|
| - : observer_(NULL),
|
| - state_(MediaSourceInterface::kInitializing) {
|
| + : state_(MediaSourceInterface::kInitializing) {
|
| }
|
|
|
| MockVideoSource::~MockVideoSource() {}
|
| @@ -156,26 +155,37 @@ void MockVideoSource::RemoveSink(cricket::VideoRenderer* output) {
|
| }
|
|
|
| void MockVideoSource::RegisterObserver(webrtc::ObserverInterface* observer) {
|
| - observer_ = observer;
|
| + observers_.push_back(observer);
|
| }
|
|
|
| void MockVideoSource::UnregisterObserver(webrtc::ObserverInterface* observer) {
|
| - DCHECK(observer_ == observer);
|
| - observer_ = NULL;
|
| + for (std::list<ObserverInterface*>::iterator it = observers_.begin();
|
| + it != observers_.end(); it++) {
|
| + if (*it == observer) {
|
| + observers_.erase(it);
|
| + break;
|
| + }
|
| + }
|
| +}
|
| +
|
| +void MockVideoSource::FireOnChanged() {
|
| + std::list<ObserverInterface*> observers = observers_;
|
| + for (std::list<ObserverInterface*>::iterator it = observers.begin();
|
| + it != observers.end(); ++it) {
|
| + (*it)->OnChanged();
|
| + }
|
| }
|
|
|
| void MockVideoSource::SetLive() {
|
| DCHECK_EQ(MediaSourceInterface::kInitializing, state_);
|
| state_ = MediaSourceInterface::kLive;
|
| - if (observer_)
|
| - observer_->OnChanged();
|
| + FireOnChanged();
|
| }
|
|
|
| void MockVideoSource::SetEnded() {
|
| DCHECK_NE(MediaSourceInterface::kEnded, state_);
|
| state_ = MediaSourceInterface::kEnded;
|
| - if (observer_)
|
| - observer_->OnChanged();
|
| + FireOnChanged();
|
| }
|
|
|
| webrtc::MediaSourceInterface::SourceState MockVideoSource::state() const {
|
|
|