diff options
Diffstat (limited to 'chromium/third_party/WebKit/Source/core/html/track/TextTrack.h')
-rw-r--r-- | chromium/third_party/WebKit/Source/core/html/track/TextTrack.h | 71 |
1 files changed, 25 insertions, 46 deletions
diff --git a/chromium/third_party/WebKit/Source/core/html/track/TextTrack.h b/chromium/third_party/WebKit/Source/core/html/track/TextTrack.h index 721c55566b0..3be6bdf469a 100644 --- a/chromium/third_party/WebKit/Source/core/html/track/TextTrack.h +++ b/chromium/third_party/WebKit/Source/core/html/track/TextTrack.h @@ -28,7 +28,9 @@ #define TextTrack_h #include "bindings/v8/ScriptWrappable.h" +#include "core/events/EventTarget.h" #include "core/html/track/TrackBase.h" +#include "platform/heap/Handle.h" #include "wtf/text/WTFString.h" namespace WebCore { @@ -39,33 +41,24 @@ class HTMLMediaElement; class TextTrack; class TextTrackCue; class TextTrackCueList; +class TextTrackList; class VTTRegion; class VTTRegionList; -class TextTrackClient { +class TextTrack : public TrackBase, public ScriptWrappable, public EventTargetWithInlineData { + REFCOUNTED_EVENT_TARGET(TrackBase); + WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(TextTrack); public: - virtual ~TextTrackClient() { } - virtual void textTrackKindChanged(TextTrack*) = 0; - virtual void textTrackModeChanged(TextTrack*) = 0; - virtual void textTrackAddCues(TextTrack*, const TextTrackCueList*) = 0; - virtual void textTrackRemoveCues(TextTrack*, const TextTrackCueList*) = 0; - virtual void textTrackAddCue(TextTrack*, PassRefPtr<TextTrackCue>) = 0; - virtual void textTrackRemoveCue(TextTrack*, PassRefPtr<TextTrackCue>) = 0; -}; - -class TextTrack : public TrackBase, public ScriptWrappable { -public: - static PassRefPtr<TextTrack> create(Document& document, TextTrackClient* client, const AtomicString& kind, const AtomicString& label, const AtomicString& language) + static PassRefPtrWillBeRawPtr<TextTrack> create(Document& document, const AtomicString& kind, const AtomicString& label, const AtomicString& language) { - return adoptRef(new TextTrack(document, client, kind, label, language, emptyAtom, AddTrack)); + return adoptRefWillBeRefCountedGarbageCollected(new TextTrack(document, kind, label, language, emptyAtom, AddTrack)); } virtual ~TextTrack(); - void setMediaElement(HTMLMediaElement* element) { m_mediaElement = element; } - HTMLMediaElement* mediaElement() { return m_mediaElement; } + virtual void setTrackList(TextTrackList*); + TextTrackList* trackList() { return m_trackList; } - const AtomicString& kind() const { return m_kind; } - void setKind(const AtomicString&); + virtual void setKind(const AtomicString&) OVERRIDE; static const AtomicString& subtitlesKeyword(); static const AtomicString& captionsKeyword(); @@ -74,21 +67,12 @@ public: static const AtomicString& metadataKeyword(); static bool isValidKindKeyword(const AtomicString&); - AtomicString label() const { return m_label; } - void setLabel(const AtomicString& label) { m_label = label; } - - AtomicString language() const { return m_language; } - void setLanguage(const AtomicString& language) { m_language = language; } - - AtomicString id() const { return m_id; } - void setId(const AtomicString& id) { m_id = id; } - static const AtomicString& disabledKeyword(); static const AtomicString& hiddenKeyword(); static const AtomicString& showingKeyword(); AtomicString mode() const { return m_mode; } - void setMode(const AtomicString&); + virtual void setMode(const AtomicString&); enum ReadinessState { NotLoaded = 0, Loading = 1, Loaded = 2, FailedToLoad = 3 }; ReadinessState readinessState() const { return m_readinessState; } @@ -97,14 +81,14 @@ public: TextTrackCueList* cues(); TextTrackCueList* activeCues() const; - void clearClient() { m_client = 0; } - TextTrackClient* client() { return m_client; } + HTMLMediaElement* mediaElement() const; + Node* owner() const; - void addCue(PassRefPtr<TextTrackCue>); + void addCue(PassRefPtrWillBeRawPtr<TextTrackCue>); void removeCue(TextTrackCue*, ExceptionState&); VTTRegionList* regions(); - void addRegion(PassRefPtr<VTTRegion>); + void addRegion(PassRefPtrWillBeRawPtr<VTTRegion>); void removeRegion(VTTRegion*, ExceptionState&); void cueWillChange(TextTrackCue*); @@ -129,33 +113,28 @@ public: void removeAllCues(); - Document& document() const { return *m_document; } - // EventTarget methods virtual const AtomicString& interfaceName() const OVERRIDE; virtual ExecutionContext* executionContext() const OVERRIDE; + virtual void trace(Visitor*) OVERRIDE; + protected: - TextTrack(Document&, TextTrackClient*, const AtomicString& kind, const AtomicString& label, const AtomicString& language, const AtomicString& id, TextTrackType); + TextTrack(Document&, const AtomicString& kind, const AtomicString& label, const AtomicString& language, const AtomicString& id, TextTrackType); - RefPtr<TextTrackCueList> m_cues; + virtual bool isValidKind(const AtomicString& kind) const OVERRIDE { return isValidKindKeyword(kind); } + virtual AtomicString defaultKind() const OVERRIDE { return subtitlesKeyword(); } + + RefPtrWillBeMember<TextTrackCueList> m_cues; private: VTTRegionList* ensureVTTRegionList(); - RefPtr<VTTRegionList> m_regions; + RefPtrWillBeMember<VTTRegionList> m_regions; TextTrackCueList* ensureTextTrackCueList(); - // FIXME: Remove this pointer and get the Document from m_client - Document* m_document; - - HTMLMediaElement* m_mediaElement; - AtomicString m_kind; - AtomicString m_label; - AtomicString m_language; - AtomicString m_id; + RawPtrWillBeMember<TextTrackList> m_trackList; AtomicString m_mode; - TextTrackClient* m_client; TextTrackType m_trackType; ReadinessState m_readinessState; int m_trackIndex; |