mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-30 12:49:19 +00:00
LibWeb: Implement HTMLMediaElement.textTracks
This commit is contained in:
parent
ecad28657a
commit
65be928d4e
Notes:
sideshowbarker
2024-07-17 05:58:46 +09:00
Author: https://github.com/jamierocks
Commit: 65be928d4e
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/447
Reviewed-by: https://github.com/awesomekling
3 changed files with 10 additions and 1 deletions
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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 = "");
|
||||
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue