Chromium Code Reviews| Index: Source/modules/mediastream/MediaStreamTrack.cpp |
| diff --git a/Source/modules/mediastream/MediaStreamTrack.cpp b/Source/modules/mediastream/MediaStreamTrack.cpp |
| index 6da6ad73fb871dfed46120899783e00ec23d4968..4805fe774ac457d124aea0faeb659b97119b3faf 100644 |
| --- a/Source/modules/mediastream/MediaStreamTrack.cpp |
| +++ b/Source/modules/mediastream/MediaStreamTrack.cpp |
| @@ -30,6 +30,7 @@ |
| #include "core/dom/ExceptionCode.h" |
| #include "core/dom/ExecutionContext.h" |
| #include "core/events/Event.h" |
| +#include "modules/mediastream/MediaStream.h" |
| #include "modules/mediastream/MediaStreamTrackSourcesCallback.h" |
| #include "modules/mediastream/MediaStreamTrackSourcesRequestImpl.h" |
| #include "platform/mediastream/MediaStreamCenter.h" |
| @@ -38,9 +39,9 @@ |
| namespace WebCore { |
| -PassRefPtr<MediaStreamTrack> MediaStreamTrack::create(ExecutionContext* context, MediaStreamComponent* component) |
| +PassRefPtrWillBeRawPtr<MediaStreamTrack> MediaStreamTrack::create(ExecutionContext* context, MediaStreamComponent* component) |
| { |
| - RefPtr<MediaStreamTrack> track = adoptRef(new MediaStreamTrack(context, component)); |
| + RefPtrWillBeRawPtr<MediaStreamTrack> track = adoptRefWillBeRefCountedGarbageCollected(new MediaStreamTrack(context, component)); |
| track->suspendIfNeeded(); |
| return track.release(); |
| } |
| @@ -48,7 +49,7 @@ PassRefPtr<MediaStreamTrack> MediaStreamTrack::create(ExecutionContext* context, |
| MediaStreamTrack::MediaStreamTrack(ExecutionContext* context, MediaStreamComponent* component) |
| : ActiveDOMObject(context) |
| , m_readyState(MediaStreamSource::ReadyStateLive) |
| - , m_isIteratingObservers(false) |
| + , m_isIteratingRegisteredMediaStreams(false) |
| , m_stopped(false) |
| , m_component(component) |
| { |
| @@ -123,7 +124,7 @@ String MediaStreamTrack::readyState() const |
| void MediaStreamTrack::getSources(ExecutionContext* context, PassOwnPtr<MediaStreamTrackSourcesCallback> callback, ExceptionState& exceptionState) |
| { |
| - RefPtr<MediaStreamTrackSourcesRequest> request = MediaStreamTrackSourcesRequestImpl::create(context->securityOrigin()->toString(), callback); |
| + RefPtrWillBeRawPtr<MediaStreamTrackSourcesRequest> request = MediaStreamTrackSourcesRequestImpl::create(context->securityOrigin()->toString(), callback); |
| if (!MediaStreamCenter::instance().getMediaStreamTrackSources(request.release())) |
| exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::failedToExecute("getSources", "MediaStreamTrack", "Functionality not implemented yet")); |
| } |
| @@ -139,10 +140,10 @@ void MediaStreamTrack::stopTrack(ExceptionState& exceptionState) |
| propagateTrackEnded(); |
| } |
| -PassRefPtr<MediaStreamTrack> MediaStreamTrack::clone(ExecutionContext* context) |
| +PassRefPtrWillBeRawPtr<MediaStreamTrack> MediaStreamTrack::clone(ExecutionContext* context) |
| { |
| RefPtr<MediaStreamComponent> clonedComponent = MediaStreamComponent::create(component()->source()); |
| - RefPtr<MediaStreamTrack> clonedTrack = MediaStreamTrack::create(context, clonedComponent.get()); |
| + RefPtrWillBeRawPtr<MediaStreamTrack> clonedTrack = MediaStreamTrack::create(context, clonedComponent.get()); |
| MediaStreamCenter::instance().didCreateMediaStreamTrack(clonedComponent.get()); |
| return clonedTrack.release(); |
| } |
| @@ -174,11 +175,11 @@ void MediaStreamTrack::sourceChangedState() |
| void MediaStreamTrack::propagateTrackEnded() |
| { |
| - RELEASE_ASSERT(!m_isIteratingObservers); |
| - m_isIteratingObservers = true; |
| - for (Vector<Observer*>::iterator iter = m_observers.begin(); iter != m_observers.end(); ++iter) |
| + RELEASE_ASSERT(!m_isIteratingRegisteredMediaStreams); |
| + m_isIteratingRegisteredMediaStreams = true; |
| + for (Vector<RawPtrWillBeWeakMember<MediaStream> >::iterator iter = m_registeredMediaStreams.begin(); iter != m_registeredMediaStreams.end(); ++iter) |
| (*iter)->trackEnded(); |
| - m_isIteratingObservers = false; |
| + m_isIteratingRegisteredMediaStreams = false; |
| } |
| MediaStreamComponent* MediaStreamTrack::component() |
| @@ -196,18 +197,18 @@ PassOwnPtr<AudioSourceProvider> MediaStreamTrack::createWebAudioSource() |
| return MediaStreamCenter::instance().createWebAudioSourceFromMediaStreamTrack(component()); |
| } |
| -void MediaStreamTrack::addObserver(MediaStreamTrack::Observer* observer) |
| +void MediaStreamTrack::registerMediaStream(MediaStream* mediaStream) |
| { |
| - RELEASE_ASSERT(!m_isIteratingObservers); |
| - m_observers.append(observer); |
| + RELEASE_ASSERT(!m_isIteratingRegisteredMediaStreams); |
| + m_registeredMediaStreams.append(mediaStream); |
| } |
| -void MediaStreamTrack::removeObserver(MediaStreamTrack::Observer* observer) |
| +void MediaStreamTrack::unregisterMediaStream(MediaStream* mediaStream) |
| { |
| - RELEASE_ASSERT(!m_isIteratingObservers); |
| - size_t pos = m_observers.find(observer); |
| + RELEASE_ASSERT(!m_isIteratingRegisteredMediaStreams); |
| + size_t pos = m_registeredMediaStreams.find(mediaStream); |
|
haraken
2014/04/14 09:27:57
As far as I see this code, it seems we *should* us
|
| RELEASE_ASSERT(pos != kNotFound); |
| - m_observers.remove(pos); |
| + m_registeredMediaStreams.remove(pos); |
| } |
| const AtomicString& MediaStreamTrack::interfaceName() const |