From bdaa7f0e8ed738ad0bd6e19878f296436fe40377 Mon Sep 17 00:00:00 2001 From: Tim Ledbetter Date: Sat, 29 Jun 2024 23:07:57 +0100 Subject: [PATCH] LibWeb: Implement the `HTMLTrackElement.kind` attribute This reflects the HTML `kind` attribute. --- .../HTML/HTMLTrackElement-kind-attribute.txt | 7 +++++++ .../HTML/HTMLTrackElement-kind-attribute.html | 20 +++++++++++++++++++ .../Libraries/LibWeb/HTML/AttributeNames.h | 1 + .../LibWeb/HTML/HTMLTrackElement.idl | 12 ++++++++++- 4 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 Tests/LibWeb/Text/expected/HTML/HTMLTrackElement-kind-attribute.txt create mode 100644 Tests/LibWeb/Text/input/HTML/HTMLTrackElement-kind-attribute.html diff --git a/Tests/LibWeb/Text/expected/HTML/HTMLTrackElement-kind-attribute.txt b/Tests/LibWeb/Text/expected/HTML/HTMLTrackElement-kind-attribute.txt new file mode 100644 index 00000000000..53c30d9882e --- /dev/null +++ b/Tests/LibWeb/Text/expected/HTML/HTMLTrackElement-kind-attribute.txt @@ -0,0 +1,7 @@ +kind initial value: 'subtitles' +kind value after setting to "invalid": 'metadata' +kind value after setting to "captions": 'captions' +kind value after setting to null: 'metadata' +kind value after setting to "CHAPTERS": 'chapters' +kind value after setting to "": 'metadata' +kind value after calling removeAttribute: 'subtitles' \ No newline at end of file diff --git a/Tests/LibWeb/Text/input/HTML/HTMLTrackElement-kind-attribute.html b/Tests/LibWeb/Text/input/HTML/HTMLTrackElement-kind-attribute.html new file mode 100644 index 00000000000..f1bde43a498 --- /dev/null +++ b/Tests/LibWeb/Text/input/HTML/HTMLTrackElement-kind-attribute.html @@ -0,0 +1,20 @@ + + + diff --git a/Userland/Libraries/LibWeb/HTML/AttributeNames.h b/Userland/Libraries/LibWeb/HTML/AttributeNames.h index 39e6d060d90..01ccfde4920 100644 --- a/Userland/Libraries/LibWeb/HTML/AttributeNames.h +++ b/Userland/Libraries/LibWeb/HTML/AttributeNames.h @@ -94,6 +94,7 @@ namespace AttributeNames { __ENUMERATE_HTML_ATTRIBUTE(is) \ __ENUMERATE_HTML_ATTRIBUTE(ismap) \ __ENUMERATE_HTML_ATTRIBUTE(itemscope) \ + __ENUMERATE_HTML_ATTRIBUTE(kind) \ __ENUMERATE_HTML_ATTRIBUTE(label) \ __ENUMERATE_HTML_ATTRIBUTE(lang) \ __ENUMERATE_HTML_ATTRIBUTE(language) \ diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTrackElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTrackElement.idl index 6d800e28c44..b9e1155d610 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLTrackElement.idl +++ b/Userland/Libraries/LibWeb/HTML/HTMLTrackElement.idl @@ -1,12 +1,22 @@ #import +// https://html.spec.whatwg.org/multipage/media.html#attr-track-kind +[MissingValueDefault=subtitles, InvalidValueDefault=metadata] +enum TrackKindAttribute { + "subtitles", + "captions", + "descriptions", + "chapters", + "metadata" +}; + // https://html.spec.whatwg.org/multipage/media.html#htmltrackelement [Exposed=Window] interface HTMLTrackElement : HTMLElement { [HTMLConstructor] constructor(); - [FIXME, CEReactions] attribute DOMString kind; + [CEReactions, Enumerated=TrackKindAttribute, Reflect] attribute DOMString kind; [CEReactions, Reflect] attribute DOMString src; [CEReactions, Reflect] attribute DOMString srclang; [CEReactions, Reflect] attribute DOMString label;