HTMLTrackElement.h [plain text]
#pragma once
#if ENABLE(VIDEO_TRACK)
#include "HTMLElement.h"
#include "LoadableTextTrack.h"
namespace WebCore {
class HTMLMediaElement;
class HTMLTrackElement final : public HTMLElement, public TextTrackClient {
public:
static Ref<HTMLTrackElement> create(const QualifiedName&, Document&);
const AtomicString& kind();
void setKind(const AtomicString&);
const AtomicString& srclang() const;
const AtomicString& label() const;
bool isDefault() const;
enum ReadyState { NONE = 0, LOADING = 1, LOADED = 2, TRACK_ERROR = 3 };
ReadyState readyState();
void setReadyState(ReadyState);
TextTrack* track();
void scheduleLoad();
enum LoadStatus { Failure, Success };
void didCompleteLoad(LoadStatus);
const AtomicString& mediaElementCrossOriginAttribute() const;
private:
HTMLTrackElement(const QualifiedName&, Document&);
virtual ~HTMLTrackElement();
void parseAttribute(const QualifiedName&, const AtomicString&) final;
InsertionNotificationRequest insertedInto(ContainerNode&) final;
void removedFrom(ContainerNode&) final;
bool isURLAttribute(const Attribute&) const final;
void loadTimerFired();
HTMLMediaElement* mediaElement() const;
void textTrackModeChanged(TextTrack*) final;
void textTrackKindChanged(TextTrack*) final;
void textTrackAddCues(TextTrack*, const TextTrackCueList*) final;
void textTrackRemoveCues(TextTrack*, const TextTrackCueList*) final;
void textTrackAddCue(TextTrack*, PassRefPtr<TextTrackCue>) final;
void textTrackRemoveCue(TextTrack*, PassRefPtr<TextTrackCue>) final;
LoadableTextTrack& ensureTrack();
bool canLoadURL(const URL&);
RefPtr<LoadableTextTrack> m_track;
Timer m_loadTimer;
};
}
#endif