diff --git a/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.cpp index a6305928e23..a5c7a2a556f 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.cpp +++ b/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.cpp @@ -30,6 +30,8 @@ #include #include #include +#include +#include #include #include #include @@ -56,6 +58,7 @@ void HTMLMediaElement::initialize(JS::Realm& realm) m_audio_tracks = realm.heap().allocate(realm, realm); m_video_tracks = realm.heap().allocate(realm, realm); + m_text_tracks = realm.heap().allocate(realm, realm); m_document_observer = realm.heap().allocate(realm, realm, document()); // https://html.spec.whatwg.org/multipage/media.html#playing-the-media-resource:media-element-82 @@ -88,6 +91,7 @@ void HTMLMediaElement::visit_edges(Cell::Visitor& visitor) visitor.visit(m_error); visitor.visit(m_audio_tracks); visitor.visit(m_video_tracks); + visitor.visit(m_text_tracks); visitor.visit(m_document_observer); visitor.visit(m_source_element_selector); visitor.visit(m_fetch_controller); diff --git a/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.h b/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.h index e707757bc8e..353d57beff0 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.h +++ b/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.h @@ -105,6 +105,7 @@ public: JS::NonnullGCPtr audio_tracks() const { return *m_audio_tracks; } JS::NonnullGCPtr video_tracks() const { return *m_video_tracks; } + JS::NonnullGCPtr text_tracks() const { return *m_text_tracks; } WebIDL::ExceptionOr handle_keydown(Badge, UIEvents::KeyCode); @@ -260,6 +261,9 @@ private: // https://html.spec.whatwg.org/multipage/media.html#dom-media-videotracks JS::GCPtr m_video_tracks; + // https://html.spec.whatwg.org/multipage/media.html#dom-media-texttracks + JS::GCPtr m_text_tracks; + // https://html.spec.whatwg.org/multipage/media.html#media-data ByteBuffer m_media_data; diff --git a/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.idl index 7ea2b195a91..9c7db3a23c0 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.idl +++ b/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.idl @@ -1,6 +1,7 @@ #import #import #import +#import #import #import #import @@ -68,7 +69,7 @@ interface HTMLMediaElement : HTMLElement { // tracks [SameObject] readonly attribute AudioTrackList audioTracks; [SameObject] readonly attribute VideoTrackList videoTracks; - [FIXME, SameObject] readonly attribute TextTrackList textTracks; + [SameObject] readonly attribute TextTrackList textTracks; [FIXME] TextTrack addTextTrack(TextTrackKind kind, optional DOMString label = "", optional DOMString language = ""); };