LibWeb: Implement HTMLMediaElement.textTracks

This commit is contained in:
Jamie Mansfield 2024-07-05 20:24:41 +01:00 committed by Andreas Kling
commit 65be928d4e
Notes: sideshowbarker 2024-07-17 05:58:46 +09:00
3 changed files with 10 additions and 1 deletions

View file

@ -30,6 +30,8 @@
#include <LibWeb/HTML/PotentialCORSRequest.h>
#include <LibWeb/HTML/Scripting/Environments.h>
#include <LibWeb/HTML/Scripting/TemporaryExecutionContext.h>
#include <LibWeb/HTML/TextTrack.h>
#include <LibWeb/HTML/TextTrackList.h>
#include <LibWeb/HTML/TimeRanges.h>
#include <LibWeb/HTML/TrackEvent.h>
#include <LibWeb/HTML/VideoTrack.h>
@ -56,6 +58,7 @@ void HTMLMediaElement::initialize(JS::Realm& realm)
m_audio_tracks = realm.heap().allocate<AudioTrackList>(realm, realm);
m_video_tracks = realm.heap().allocate<VideoTrackList>(realm, realm);
m_text_tracks = realm.heap().allocate<TextTrackList>(realm, realm);
m_document_observer = realm.heap().allocate<DOM::DocumentObserver>(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);

View file

@ -105,6 +105,7 @@ public:
JS::NonnullGCPtr<AudioTrackList> audio_tracks() const { return *m_audio_tracks; }
JS::NonnullGCPtr<VideoTrackList> video_tracks() const { return *m_video_tracks; }
JS::NonnullGCPtr<TextTrackList> text_tracks() const { return *m_text_tracks; }
WebIDL::ExceptionOr<void> handle_keydown(Badge<Web::EventHandler>, UIEvents::KeyCode);
@ -260,6 +261,9 @@ private:
// https://html.spec.whatwg.org/multipage/media.html#dom-media-videotracks
JS::GCPtr<VideoTrackList> m_video_tracks;
// https://html.spec.whatwg.org/multipage/media.html#dom-media-texttracks
JS::GCPtr<TextTrackList> m_text_tracks;
// https://html.spec.whatwg.org/multipage/media.html#media-data
ByteBuffer m_media_data;

View file

@ -1,6 +1,7 @@
#import <HTML/AudioTrackList.idl>
#import <HTML/HTMLElement.idl>
#import <HTML/MediaError.idl>
#import <HTML/TextTrackList.idl>
#import <HTML/TimeRanges.idl>
#import <HTML/VideoTrackList.idl>
#import <HTML/Scripting/Fetching.idl>
@ -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 = "");
};