Index: Source/modules/mediastream/MediaStreamTrack.h |
diff --git a/Source/modules/mediastream/MediaStreamTrack.h b/Source/modules/mediastream/MediaStreamTrack.h |
index 40347d006b4b56b2f069956f833a9f2cee161ea7..6ff41c8f571b49fb723a11b80473f9ea0906216a 100644 |
--- a/Source/modules/mediastream/MediaStreamTrack.h |
+++ b/Source/modules/mediastream/MediaStreamTrack.h |
@@ -45,16 +45,10 @@ class ExceptionState; |
class MediaStreamComponent; |
class MediaStreamTrackSourcesCallback; |
-class MediaStreamTrack FINAL : public RefCounted<MediaStreamTrack>, public ScriptWrappable, public ActiveDOMObject, public EventTargetWithInlineData, public MediaStreamSource::Observer { |
- REFCOUNTED_EVENT_TARGET(MediaStreamTrack); |
+class MediaStreamTrack FINAL : public RefCountedWillBeRefCountedGarbageCollected<MediaStreamTrack>, public ScriptWrappable, public ActiveDOMObject, public EventTargetWithInlineData, public MediaStreamSource::Observer { |
+ DEFINE_EVENT_TARGET_REFCOUNTING(RefCountedWillBeRefCountedGarbageCollected<MediaStreamTrack>); |
public: |
- class Observer { |
- public: |
- virtual ~Observer() { } |
- virtual void trackEnded() = 0; |
- }; |
- |
- static PassRefPtr<MediaStreamTrack> create(ExecutionContext*, MediaStreamComponent*); |
+ static PassRefPtrWillBeRawPtr<MediaStreamTrack> create(ExecutionContext*, MediaStreamComponent*); |
virtual ~MediaStreamTrack(); |
String kind() const; |
@@ -68,7 +62,7 @@ public: |
static void getSources(ExecutionContext*, PassOwnPtr<MediaStreamTrackSourcesCallback>, ExceptionState&); |
void stopTrack(ExceptionState&); |
- PassRefPtr<MediaStreamTrack> clone(ExecutionContext*); |
+ PassRefPtrWillBeRawPtr<MediaStreamTrack> clone(ExecutionContext*); |
DEFINE_ATTRIBUTE_EVENT_LISTENER(mute); |
DEFINE_ATTRIBUTE_EVENT_LISTENER(unmute); |
@@ -77,8 +71,8 @@ public: |
MediaStreamComponent* component(); |
bool ended() const; |
- void addObserver(Observer*); |
- void removeObserver(Observer*); |
+ void registerMediaStream(MediaStream*); |
+ void unregisterMediaStream(MediaStream*); |
// EventTarget |
virtual const AtomicString& interfaceName() const OVERRIDE; |
@@ -89,6 +83,8 @@ public: |
PassOwnPtr<AudioSourceProvider> createWebAudioSource(); |
+ void trace(Visitor*); |
+ |
private: |
MediaStreamTrack(ExecutionContext*, MediaStreamComponent*); |
@@ -98,14 +94,14 @@ private: |
virtual void sourceChangedState() OVERRIDE; |
void propagateTrackEnded(); |
- Vector<Observer*> m_observers; |
- bool m_isIteratingObservers; |
+ WillBeHeapHashSet<RawPtrWillBeWeakMember<MediaStream> > m_registeredMediaStreams; |
+ bool m_isIteratingRegisteredMediaStreams; |
bool m_stopped; |
RefPtr<MediaStreamComponent> m_component; |
}; |
-typedef Vector<RefPtr<MediaStreamTrack> > MediaStreamTrackVector; |
+typedef WillBeHeapVector<RefPtrWillBeMember<MediaStreamTrack> > MediaStreamTrackVector; |
} // namespace WebCore |