summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/WebKit/Source/core/html/track/TextTrackList.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/WebKit/Source/core/html/track/TextTrackList.h')
-rw-r--r--chromium/third_party/WebKit/Source/core/html/track/TextTrackList.h40
1 files changed, 23 insertions, 17 deletions
diff --git a/chromium/third_party/WebKit/Source/core/html/track/TextTrackList.h b/chromium/third_party/WebKit/Source/core/html/track/TextTrackList.h
index 7c150b2c931..a544f24761c 100644
--- a/chromium/third_party/WebKit/Source/core/html/track/TextTrackList.h
+++ b/chromium/third_party/WebKit/Source/core/html/track/TextTrackList.h
@@ -29,7 +29,9 @@
#include "bindings/v8/ScriptWrappable.h"
#include "core/events/EventListener.h"
#include "core/events/EventTarget.h"
+#include "core/html/HTMLMediaElement.h"
#include "platform/Timer.h"
+#include "platform/heap/Handle.h"
#include "wtf/PassRefPtr.h"
#include "wtf/RefCounted.h"
#include "wtf/Vector.h"
@@ -37,18 +39,17 @@
namespace WebCore {
class GenericEventQueue;
-class HTMLMediaElement;
class TextTrack;
-class TextTrackList;
-class TextTrackList : public RefCounted<TextTrackList>, public ScriptWrappable, public EventTargetWithInlineData {
+class TextTrackList FINAL : public RefCountedWillBeRefCountedGarbageCollected<TextTrackList>, public ScriptWrappable, public EventTargetWithInlineData {
REFCOUNTED_EVENT_TARGET(TextTrackList);
+ WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(TextTrackList);
public:
- static PassRefPtr<TextTrackList> create(HTMLMediaElement* owner)
+ static PassRefPtrWillBeRawPtr<TextTrackList> create(HTMLMediaElement* owner)
{
- return adoptRef(new TextTrackList(owner));
+ return adoptRefWillBeRefCountedGarbageCollected(new TextTrackList(owner));
}
- ~TextTrackList();
+ virtual ~TextTrackList();
unsigned length() const;
int getTrackIndex(TextTrack*);
@@ -57,7 +58,7 @@ public:
TextTrack* item(unsigned index);
TextTrack* getTrackById(const AtomicString& id);
- void append(PassRefPtr<TextTrack>);
+ void append(PassRefPtrWillBeRawPtr<TextTrack>);
void remove(TextTrack*);
// EventTarget
@@ -68,28 +69,33 @@ public:
DEFINE_ATTRIBUTE_EVENT_LISTENER(change);
DEFINE_ATTRIBUTE_EVENT_LISTENER(removetrack);
- void clearOwner() { m_owner = 0; }
- Node* owner() const;
+#if !ENABLE(OILPAN)
+ void clearOwner();
+#endif
+ HTMLMediaElement* owner() const;
void scheduleChangeEvent();
+ void removeAllInbandTracks();
+
+ virtual void trace(Visitor*) OVERRIDE;
private:
explicit TextTrackList(HTMLMediaElement*);
- void scheduleTrackEvent(const AtomicString& eventName, PassRefPtr<TextTrack>);
+ void scheduleTrackEvent(const AtomicString& eventName, PassRefPtrWillBeRawPtr<TextTrack>);
- void scheduleAddTrackEvent(PassRefPtr<TextTrack>);
- void scheduleRemoveTrackEvent(PassRefPtr<TextTrack>);
+ void scheduleAddTrackEvent(PassRefPtrWillBeRawPtr<TextTrack>);
+ void scheduleRemoveTrackEvent(PassRefPtrWillBeRawPtr<TextTrack>);
void invalidateTrackIndexesAfterTrack(TextTrack*);
- HTMLMediaElement* m_owner;
+ RawPtrWillBeMember<HTMLMediaElement> m_owner;
- OwnPtr<GenericEventQueue> m_asyncEventQueue;
+ OwnPtrWillBeMember<GenericEventQueue> m_asyncEventQueue;
- Vector<RefPtr<TextTrack> > m_addTrackTracks;
- Vector<RefPtr<TextTrack> > m_elementTracks;
- Vector<RefPtr<TextTrack> > m_inbandTracks;
+ WillBeHeapVector<RefPtrWillBeMember<TextTrack> > m_addTrackTracks;
+ WillBeHeapVector<RefPtrWillBeMember<TextTrack> > m_elementTracks;
+ WillBeHeapVector<RefPtrWillBeMember<TextTrack> > m_inbandTracks;
};
} // namespace WebCore