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

Unified Diff: Source/modules/mediastream/MediaStream.cpp

Issue 173363002: Move mediastream module to oilpan transition types (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebased Created 6 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/modules/mediastream/MediaStream.h ('k') | Source/modules/mediastream/MediaStream.idl » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/modules/mediastream/MediaStream.cpp
diff --git a/Source/modules/mediastream/MediaStream.cpp b/Source/modules/mediastream/MediaStream.cpp
index 4ea913ee88fce31f34496aa3564494f67554a850..9b922e00602a0b5b51d78445e9317578aa173f38 100644
--- a/Source/modules/mediastream/MediaStream.cpp
+++ b/Source/modules/mediastream/MediaStream.cpp
@@ -55,15 +55,15 @@ static void processTrack(MediaStreamTrack* track, MediaStreamTrackVector& trackV
trackVector.append(track);
}
-PassRefPtr<MediaStream> MediaStream::create(ExecutionContext* context)
+PassRefPtrWillBeRawPtr<MediaStream> MediaStream::create(ExecutionContext* context)
{
MediaStreamTrackVector audioTracks;
MediaStreamTrackVector videoTracks;
- return adoptRef(new MediaStream(context, audioTracks, videoTracks));
+ return adoptRefWillBeRefCountedGarbageCollected(new MediaStream(context, audioTracks, videoTracks));
}
-PassRefPtr<MediaStream> MediaStream::create(ExecutionContext* context, PassRefPtr<MediaStream> stream)
+PassRefPtrWillBeRawPtr<MediaStream> MediaStream::create(ExecutionContext* context, PassRefPtrWillBeRawPtr<MediaStream> stream)
{
ASSERT(stream);
@@ -76,10 +76,10 @@ PassRefPtr<MediaStream> MediaStream::create(ExecutionContext* context, PassRefPt
for (size_t i = 0; i < stream->m_videoTracks.size(); ++i)
processTrack(stream->m_videoTracks[i].get(), videoTracks);
- return adoptRef(new MediaStream(context, audioTracks, videoTracks));
+ return adoptRefWillBeRefCountedGarbageCollected(new MediaStream(context, audioTracks, videoTracks));
}
-PassRefPtr<MediaStream> MediaStream::create(ExecutionContext* context, const MediaStreamTrackVector& tracks)
+PassRefPtrWillBeRawPtr<MediaStream> MediaStream::create(ExecutionContext* context, const MediaStreamTrackVector& tracks)
{
MediaStreamTrackVector audioTracks;
MediaStreamTrackVector videoTracks;
@@ -87,12 +87,12 @@ PassRefPtr<MediaStream> MediaStream::create(ExecutionContext* context, const Med
for (size_t i = 0; i < tracks.size(); ++i)
processTrack(tracks[i].get(), tracks[i]->kind() == "audio" ? audioTracks : videoTracks);
- return adoptRef(new MediaStream(context, audioTracks, videoTracks));
+ return adoptRefWillBeRefCountedGarbageCollected(new MediaStream(context, audioTracks, videoTracks));
}
-PassRefPtr<MediaStream> MediaStream::create(ExecutionContext* context, PassRefPtr<MediaStreamDescriptor> streamDescriptor)
+PassRefPtrWillBeRawPtr<MediaStream> MediaStream::create(ExecutionContext* context, PassRefPtr<MediaStreamDescriptor> streamDescriptor)
{
- return adoptRef(new MediaStream(context, streamDescriptor));
+ return adoptRefWillBeRefCountedGarbageCollected(new MediaStream(context, streamDescriptor));
}
MediaStream::MediaStream(ExecutionContext* context, PassRefPtr<MediaStreamDescriptor> streamDescriptor)
@@ -107,16 +107,16 @@ MediaStream::MediaStream(ExecutionContext* context, PassRefPtr<MediaStreamDescri
size_t numberOfAudioTracks = m_descriptor->numberOfAudioComponents();
m_audioTracks.reserveCapacity(numberOfAudioTracks);
for (size_t i = 0; i < numberOfAudioTracks; i++) {
- RefPtr<MediaStreamTrack> newTrack = MediaStreamTrack::create(context, m_descriptor->audioComponent(i));
- newTrack->addObserver(this);
+ RefPtrWillBeRawPtr<MediaStreamTrack> newTrack = MediaStreamTrack::create(context, m_descriptor->audioComponent(i));
+ newTrack->registerMediaStream(this);
m_audioTracks.append(newTrack.release());
}
size_t numberOfVideoTracks = m_descriptor->numberOfVideoComponents();
m_videoTracks.reserveCapacity(numberOfVideoTracks);
for (size_t i = 0; i < numberOfVideoTracks; i++) {
- RefPtr<MediaStreamTrack> newTrack = MediaStreamTrack::create(context, m_descriptor->videoComponent(i));
- newTrack->addObserver(this);
+ RefPtrWillBeRawPtr<MediaStreamTrack> newTrack = MediaStreamTrack::create(context, m_descriptor->videoComponent(i));
+ newTrack->registerMediaStream(this);
m_videoTracks.append(newTrack.release());
}
}
@@ -133,11 +133,11 @@ MediaStream::MediaStream(ExecutionContext* context, const MediaStreamTrackVector
MediaStreamTrackVector::const_iterator iter;
for (iter = audioTracks.begin(); iter != audioTracks.end(); ++iter) {
- (*iter)->addObserver(this);
+ (*iter)->registerMediaStream(this);
audioComponents.append((*iter)->component());
}
for (iter = videoTracks.begin(); iter != videoTracks.end(); ++iter) {
- (*iter)->addObserver(this);
+ (*iter)->registerMediaStream(this);
videoComponents.append((*iter)->component());
}
@@ -151,11 +151,13 @@ MediaStream::MediaStream(ExecutionContext* context, const MediaStreamTrackVector
MediaStream::~MediaStream()
{
+#if !ENABLE(OILPAN)
for (MediaStreamTrackVector::iterator iter = m_audioTracks.begin(); iter != m_audioTracks.end(); ++iter)
- (*iter)->removeObserver(this);
+ (*iter)->unregisterMediaStream(this);
for (MediaStreamTrackVector::iterator iter = m_videoTracks.begin(); iter != m_videoTracks.end(); ++iter)
- (*iter)->removeObserver(this);
+ (*iter)->unregisterMediaStream(this);
+#endif
m_descriptor->setClient(0);
}
@@ -165,7 +167,7 @@ bool MediaStream::ended() const
return m_stopped || m_descriptor->ended();
}
-void MediaStream::addTrack(PassRefPtr<MediaStreamTrack> prpTrack, ExceptionState& exceptionState)
+void MediaStream::addTrack(PassRefPtrWillBeRawPtr<MediaStreamTrack> prpTrack, ExceptionState& exceptionState)
{
if (ended()) {
exceptionState.throwDOMException(InvalidStateError, "The MediaStream is finished.");
@@ -177,7 +179,7 @@ void MediaStream::addTrack(PassRefPtr<MediaStreamTrack> prpTrack, ExceptionState
return;
}
- RefPtr<MediaStreamTrack> track = prpTrack;
+ RefPtrWillBeRawPtr<MediaStreamTrack> track = prpTrack;
if (getTrackById(track->id()))
return;
@@ -190,12 +192,12 @@ void MediaStream::addTrack(PassRefPtr<MediaStreamTrack> prpTrack, ExceptionState
m_videoTracks.append(track);
break;
}
- track->addObserver(this);
+ track->registerMediaStream(this);
m_descriptor->addComponent(track->component());
MediaStreamCenter::instance().didAddMediaStreamTrack(m_descriptor.get(), track->component());
}
-void MediaStream::removeTrack(PassRefPtr<MediaStreamTrack> prpTrack, ExceptionState& exceptionState)
+void MediaStream::removeTrack(PassRefPtrWillBeRawPtr<MediaStreamTrack> prpTrack, ExceptionState& exceptionState)
{
if (ended()) {
exceptionState.throwDOMException(InvalidStateError, "The MediaStream is finished.");
@@ -207,7 +209,7 @@ void MediaStream::removeTrack(PassRefPtr<MediaStreamTrack> prpTrack, ExceptionSt
return;
}
- RefPtr<MediaStreamTrack> track = prpTrack;
+ RefPtrWillBeRawPtr<MediaStreamTrack> track = prpTrack;
size_t pos = kNotFound;
switch (track->component()->source()->type()) {
@@ -225,8 +227,7 @@ void MediaStream::removeTrack(PassRefPtr<MediaStreamTrack> prpTrack, ExceptionSt
if (pos == kNotFound)
return;
-
- track->removeObserver(this);
+ track->unregisterMediaStream(this);
m_descriptor->removeComponent(track->component());
if (!m_audioTracks.size() && !m_videoTracks.size())
@@ -250,15 +251,14 @@ MediaStreamTrack* MediaStream::getTrackById(String id)
return 0;
}
-PassRefPtr<MediaStream> MediaStream::clone(ExecutionContext* context)
+PassRefPtrWillBeRawPtr<MediaStream> MediaStream::clone(ExecutionContext* context)
{
MediaStreamTrackVector tracks;
for (MediaStreamTrackVector::iterator iter = m_audioTracks.begin(); iter != m_audioTracks.end(); ++iter)
tracks.append((*iter)->clone(context));
for (MediaStreamTrackVector::iterator iter = m_videoTracks.begin(); iter != m_videoTracks.end(); ++iter)
tracks.append((*iter)->clone(context));
- RefPtr<MediaStream> clonedStream = MediaStream::create(context, tracks);
- return clonedStream.release();
+ return MediaStream::create(context, tracks);
}
void MediaStream::stop()
@@ -317,7 +317,7 @@ void MediaStream::addRemoteTrack(MediaStreamComponent* component)
if (ended())
return;
- RefPtr<MediaStreamTrack> track = MediaStreamTrack::create(executionContext(), component);
+ RefPtrWillBeRawPtr<MediaStreamTrack> track = MediaStreamTrack::create(executionContext(), component);
switch (component->source()->type()) {
case MediaStreamSource::TypeAudio:
m_audioTracks.append(track);
@@ -326,7 +326,7 @@ void MediaStream::addRemoteTrack(MediaStreamComponent* component)
m_videoTracks.append(track);
break;
}
- track->addObserver(this);
+ track->registerMediaStream(this);
m_descriptor->addComponent(component);
scheduleDispatchEvent(MediaStreamTrackEvent::create(EventTypeNames::addtrack, false, false, track));
@@ -359,8 +359,8 @@ void MediaStream::removeRemoteTrack(MediaStreamComponent* component)
m_descriptor->removeComponent(component);
- RefPtr<MediaStreamTrack> track = (*tracks)[index];
- track->removeObserver(this);
+ RefPtrWillBeRawPtr<MediaStreamTrack> track = (*tracks)[index];
+ track->unregisterMediaStream(this);
tracks->remove(index);
scheduleDispatchEvent(MediaStreamTrackEvent::create(EventTypeNames::removetrack, false, false, track));
}
@@ -393,4 +393,11 @@ URLRegistry& MediaStream::registry() const
return MediaStreamRegistry::registry();
}
+void MediaStream::trace(Visitor* visitor)
+{
+ visitor->trace(m_audioTracks);
+ visitor->trace(m_videoTracks);
+ visitor->trace(m_scheduledEvents);
+}
+
} // namespace WebCore
« no previous file with comments | « Source/modules/mediastream/MediaStream.h ('k') | Source/modules/mediastream/MediaStream.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698