summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/WebKit/Source/core/html/track/TextTrack.h
diff options
context:
space:
mode:
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.h71
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;