Преглед изворни кода

LibWeb: Implement TextTrack.id

Jamie Mansfield пре 1 година
родитељ
комит
ba8e77df16

+ 6 - 0
Userland/Libraries/LibWeb/HTML/HTMLTrackElement.cpp

@@ -48,6 +48,12 @@ void HTMLTrackElement::attribute_changed(FlyString const& name, Optional<String>
     } else if (name.equals_ignoring_ascii_case("srclang"sv)) {
         m_track->set_language(value.value_or({}));
     }
+
+    // https://html.spec.whatwg.org/multipage/media.html#dom-texttrack-id
+    // For tracks that correspond to track elements, the track's identifier is the value of the element's id attribute, if any.
+    if (name.equals_ignoring_ascii_case("id"sv)) {
+        m_track->set_id(value.value_or({}));
+    }
 }
 
 }

+ 11 - 0
Userland/Libraries/LibWeb/HTML/TextTrack.cpp

@@ -64,6 +64,17 @@ void TextTrack::set_language(String language)
     m_language = language;
 }
 
+// https://html.spec.whatwg.org/multipage/media.html#dom-texttrack-id
+String TextTrack::id()
+{
+    return m_id;
+}
+
+void TextTrack::set_id(String id)
+{
+    m_id = id;
+}
+
 // https://html.spec.whatwg.org/multipage/media.html#handler-texttrack-oncuechange
 void TextTrack::set_oncuechange(WebIDL::CallbackType* event_handler)
 {

+ 5 - 0
Userland/Libraries/LibWeb/HTML/TextTrack.h

@@ -33,6 +33,9 @@ public:
     String language();
     void set_language(String);
 
+    String id();
+    void set_id(String);
+
     void set_oncuechange(WebIDL::CallbackType*);
     WebIDL::CallbackType* oncuechange();
 
@@ -44,6 +47,8 @@ private:
     Bindings::TextTrackKind m_kind { Bindings::TextTrackKind::Subtitles };
     String m_label {};
     String m_language {};
+
+    String m_id {};
 };
 
 Bindings::TextTrackKind text_track_kind_from_string(String);

+ 1 - 1
Userland/Libraries/LibWeb/HTML/TextTrack.idl

@@ -13,7 +13,7 @@ interface TextTrack : EventTarget {
     readonly attribute DOMString label;
     readonly attribute DOMString language;
 
-    [FIXME] readonly attribute DOMString id;
+    readonly attribute DOMString id;
     [FIXME] readonly attribute DOMString inBandMetadataTrackDispatchType;
 
     [FIXME] attribute TextTrackMode mode;