Prechádzať zdrojové kódy

LibWeb: Reorder and add missing HTML elements IDL items

Bastiaan van der Plaat 1 rok pred
rodič
commit
fc46def2f5
42 zmenil súbory, kde vykonal 219 pridanie a 47 odobranie
  1. 2 0
      Userland/Libraries/LibWeb/HTML/HTMLAreaElement.idl
  2. 1 0
      Userland/Libraries/LibWeb/HTML/HTMLBodyElement.idl
  3. 3 1
      Userland/Libraries/LibWeb/HTML/HTMLCanvasElement.idl
  4. 1 0
      Userland/Libraries/LibWeb/HTML/HTMLDetailsElement.idl
  5. 32 7
      Userland/Libraries/LibWeb/HTML/HTMLElement.idl
  6. 2 0
      Userland/Libraries/LibWeb/HTML/HTMLEmbedElement.idl
  7. 14 8
      Userland/Libraries/LibWeb/HTML/HTMLFormElement.idl
  8. 6 0
      Userland/Libraries/LibWeb/HTML/HTMLFrameElement.idl
  9. 1 0
      Userland/Libraries/LibWeb/HTML/HTMLHRElement.idl
  10. 1 0
      Userland/Libraries/LibWeb/HTML/HTMLHeadingElement.idl
  11. 1 0
      Userland/Libraries/LibWeb/HTML/HTMLHtmlElement.idl
  12. 7 4
      Userland/Libraries/LibWeb/HTML/HTMLIFrameElement.idl
  13. 19 7
      Userland/Libraries/LibWeb/HTML/HTMLImageElement.idl
  14. 2 0
      Userland/Libraries/LibWeb/HTML/HTMLLIElement.idl
  15. 2 0
      Userland/Libraries/LibWeb/HTML/HTMLLabelElement.idl
  16. 13 3
      Userland/Libraries/LibWeb/HTML/HTMLLinkElement.idl
  17. 1 0
      Userland/Libraries/LibWeb/HTML/HTMLMapElement.idl
  18. 9 0
      Userland/Libraries/LibWeb/HTML/HTMLMarqueeElement.idl
  19. 11 0
      Userland/Libraries/LibWeb/HTML/HTMLMediaElement.idl
  20. 1 0
      Userland/Libraries/LibWeb/HTML/HTMLMenuElement.idl
  21. 3 1
      Userland/Libraries/LibWeb/HTML/HTMLMetaElement.idl
  22. 1 0
      Userland/Libraries/LibWeb/HTML/HTMLOListElement.idl
  23. 15 3
      Userland/Libraries/LibWeb/HTML/HTMLObjectElement.idl
  24. 1 1
      Userland/Libraries/LibWeb/HTML/HTMLOptionElement.idl
  25. 1 0
      Userland/Libraries/LibWeb/HTML/HTMLParagraphElement.idl
  26. 0 1
      Userland/Libraries/LibWeb/HTML/HTMLParamElement.idl
  27. 2 0
      Userland/Libraries/LibWeb/HTML/HTMLPreElement.idl
  28. 5 0
      Userland/Libraries/LibWeb/HTML/HTMLScriptElement.idl
  29. 1 0
      Userland/Libraries/LibWeb/HTML/HTMLTableCaptionElement.idl
  30. 5 1
      Userland/Libraries/LibWeb/HTML/HTMLTableCellElement.idl
  31. 3 0
      Userland/Libraries/LibWeb/HTML/HTMLTableColElement.idl
  32. 1 0
      Userland/Libraries/LibWeb/HTML/HTMLTableElement.idl
  33. 7 6
      Userland/Libraries/LibWeb/HTML/HTMLTableRowElement.idl
  34. 5 4
      Userland/Libraries/LibWeb/HTML/HTMLTableSectionElement.idl
  35. 2 0
      Userland/Libraries/LibWeb/HTML/HTMLTitleElement.idl
  36. 9 0
      Userland/Libraries/LibWeb/HTML/HTMLTrackElement.idl
  37. 1 0
      Userland/Libraries/LibWeb/HTML/HTMLUListElement.idl
  38. 2 0
      Userland/Libraries/LibWeb/HTML/HTMLVideoElement.idl
  39. 10 0
      Userland/Libraries/LibWeb/MathML/MathMLElement.cpp
  40. 3 0
      Userland/Libraries/LibWeb/MathML/MathMLElement.h
  41. 10 0
      Userland/Libraries/LibWeb/SVG/SVGElement.cpp
  42. 3 0
      Userland/Libraries/LibWeb/SVG/SVGElement.h

+ 2 - 0
Userland/Libraries/LibWeb/HTML/HTMLAreaElement.idl

@@ -14,6 +14,8 @@ interface HTMLAreaElement : HTMLElement {
     [CEReactions, Reflect] attribute DOMString download;
     [CEReactions, Reflect] attribute USVString ping;
     [CEReactions, Reflect] attribute DOMString rel;
+    // FIXME: [SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
+    // FIXME: [CEReactions] attribute DOMString referrerPolicy;
 
     // Obsolete
     [Reflect=nohref] attribute boolean noHref;

+ 1 - 0
Userland/Libraries/LibWeb/HTML/HTMLBodyElement.idl

@@ -7,6 +7,7 @@ interface HTMLBodyElement : HTMLElement {
 
     [HTMLConstructor] constructor();
 
+    // Obsolete
     [CEReactions, LegacyNullToEmptyString, Reflect] attribute DOMString text;
     [CEReactions, LegacyNullToEmptyString, Reflect] attribute DOMString link;
     [CEReactions, LegacyNullToEmptyString, Reflect=vlink] attribute DOMString vLink;

+ 3 - 1
Userland/Libraries/LibWeb/HTML/HTMLCanvasElement.idl

@@ -10,12 +10,14 @@ interface HTMLCanvasElement : HTMLElement {
 
     [HTMLConstructor] constructor();
 
-    RenderingContext? getContext(DOMString contextId, optional any options = null);
     [CEReactions] attribute unsigned long width;
     [CEReactions] attribute unsigned long height;
 
+    RenderingContext? getContext(DOMString contextId, optional any options = null);
+
     USVString toDataURL(optional DOMString type = "image/png", optional double quality);
     undefined toBlob(BlobCallback _callback, optional DOMString type = "image/png", optional double quality);
+
 };
 
 callback BlobCallback = undefined (Blob? blob);

+ 1 - 0
Userland/Libraries/LibWeb/HTML/HTMLDetailsElement.idl

@@ -6,6 +6,7 @@ interface HTMLDetailsElement : HTMLElement {
 
     [HTMLConstructor] constructor();
 
+    [CEReactions, Reflect] attribute DOMString name;
     [CEReactions, Reflect] attribute boolean open;
 
 };

+ 32 - 7
Userland/Libraries/LibWeb/HTML/HTMLElement.idl

@@ -8,37 +8,62 @@ interface HTMLElement : Element {
 
     [HTMLConstructor] constructor();
 
+    // metadata attributes
     [Reflect, CEReactions] attribute DOMString title;
     [Reflect, CEReactions] attribute DOMString lang;
+    // FIXME: [CEReactions] attribute boolean translate;
     [CEReactions] attribute DOMString dir;
 
+    // user interaction
     [Reflect, CEReactions] attribute boolean hidden;
-
-    attribute DOMString contentEditable;
-
+    // FIXME: [CEReactions] attribute boolean inert;
     undefined click();
+    // FIXME: [CEReactions] attribute DOMString accessKey;
+    // FIXME: readonly attribute DOMString accessKeyLabel;
+    // FIXME: [CEReactions] attribute boolean draggable;
+    // FIXME: [CEReactions] attribute boolean spellcheck;
+    // FIXME: [CEReactions] attribute DOMString autocapitalize;
 
-    // FIXME: Support the optional FocusOptions parameter.
-    undefined focus();
+    [LegacyNullToEmptyString, CEReactions] attribute DOMString innerText;
+    // FIXME: [LegacyNullToEmptyString, CEReactions] attribute DOMString outerText;
 
-    undefined blur();
+    // FIXME: ElementInternals attachInternals();
 
-    [LegacyNullToEmptyString, CEReactions] attribute DOMString innerText;
+    // The popover API
+    // FIXME: undefined showPopover();
+    // FIXME: undefined hidePopover();
+    // FIXME: boolean togglePopover(optional boolean force);
+    // FIXME: [CEReactions] attribute DOMString? popover;
 
+    // https://drafts.csswg.org/cssom-view/#extensions-to-the-htmlelement-interface
+    // FIXME: readonly attribute Element? offsetParent;
     readonly attribute long offsetTop;
     readonly attribute long offsetLeft;
     readonly attribute long offsetWidth;
     readonly attribute long offsetHeight;
+
 };
 
 HTMLElement includes GlobalEventHandlers;
+HTMLElement includes ElementContentEditable;
 HTMLElement includes HTMLOrSVGElement;
 
+interface mixin ElementContentEditable {
+    [CEReactions] attribute DOMString contentEditable;
+    // FIXME: [CEReactions] attribute DOMString enterKeyHint;
+    // FIXME: readonly attribute boolean isContentEditable;
+    // FIXME: [CEReactions] attribute DOMString inputMode;
+};
+
 interface mixin HTMLOrSVGElement {
     [SameObject] readonly attribute DOMStringMap dataset;
+    // FIXME: attribute DOMString nonce; // intentionally no [CEReactions]
 
     [CEReactions, Reflect] attribute boolean autofocus;
     [CEReactions] attribute long tabIndex;
+    // FIXME: Support the optional FocusOptions parameter.
+    undefined focus();
+    undefined blur();
 };
 
 HTMLElement includes ElementCSSInlineStyle;

+ 2 - 0
Userland/Libraries/LibWeb/HTML/HTMLEmbedElement.idl

@@ -10,7 +10,9 @@ interface HTMLEmbedElement : HTMLElement {
     [CEReactions, Reflect] attribute DOMString type;
     [CEReactions, Reflect] attribute DOMString width;
     [CEReactions, Reflect] attribute DOMString height;
+    // FIXME: Document? getSVGDocument();
 
+    // Obsolete
     [CEReactions, Reflect] attribute DOMString align;
     [CEReactions, Reflect] attribute DOMString name;
 

+ 14 - 8
Userland/Libraries/LibWeb/HTML/HTMLFormElement.idl

@@ -7,21 +7,27 @@ interface HTMLFormElement : HTMLElement {
 
     [HTMLConstructor] constructor();
 
-    [CEReactions, Reflect] attribute DOMString name;
-    [CEReactions, Reflect] attribute DOMString rel;
-    [CEReactions] attribute DOMString method;
     [CEReactions, Reflect=accept-charset] attribute DOMString acceptCharset;
-    [CEReactions, Reflect=novalidate] attribute boolean noValidate;
     [CEReactions] attribute USVString action;
+    // FIXME: [CEReactions] attribute DOMString autocomplete;
+    // FIXME: [CEReactions] attribute DOMString enctype;
+    // FIXME: [CEReactions] attribute DOMString encoding;
+    [CEReactions] attribute DOMString method;
+    [CEReactions, Reflect] attribute DOMString name;
+    [CEReactions, Reflect=novalidate] attribute boolean noValidate;
     [CEReactions, Reflect] attribute DOMString target;
+    [CEReactions, Reflect] attribute DOMString rel;
+    // FIXME: [SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
+
+    [SameObject] readonly attribute HTMLFormControlsCollection elements;
+    readonly attribute unsigned long length;
+    // FIXME: getter Element (unsigned long index);
+    // FIXME: getter (RadioNodeList or Element) (DOMString name);
 
     undefined submit();
+    // FIXME: undefined requestSubmit(optional HTMLElement? submitter = null);
     [CEReactions] undefined reset();
     boolean checkValidity();
     boolean reportValidity();
 
-    [SameObject] readonly attribute HTMLFormControlsCollection elements;
-
-    readonly attribute unsigned long length;
-
 };

+ 6 - 0
Userland/Libraries/LibWeb/HTML/HTMLFrameElement.idl

@@ -11,5 +11,11 @@ interface HTMLFrameElement : HTMLElement {
     [CEReactions, Reflect] attribute DOMString src;
     [CEReactions, Reflect=frameborder] attribute DOMString frameBorder;
     [CEReactions, Reflect=longdesc] attribute DOMString longDesc;
+    // FIXME: [CEReactions] attribute boolean noResize;
+    // FIXME: readonly attribute Document? contentDocument;
+    // FIXME: readonly attribute WindowProxy? contentWindow;
+
+    // FIXME: [CEReactions] attribute [LegacyNullToEmptyString] DOMString marginHeight;
+    // FIXME: [CEReactions] attribute [LegacyNullToEmptyString] DOMString marginWidth;
 
 };

+ 1 - 0
Userland/Libraries/LibWeb/HTML/HTMLHRElement.idl

@@ -6,6 +6,7 @@ interface HTMLHRElement : HTMLElement {
 
     [HTMLConstructor] constructor();
 
+    // Obsolete
     [CEReactions, Reflect] attribute DOMString align;
     [CEReactions, Reflect] attribute DOMString color;
     [CEReactions, Reflect=noshade] attribute boolean noShade;

+ 1 - 0
Userland/Libraries/LibWeb/HTML/HTMLHeadingElement.idl

@@ -6,6 +6,7 @@ interface HTMLHeadingElement : HTMLElement {
 
     [HTMLConstructor] constructor();
 
+    // Obsolete
     [CEReactions, Reflect] attribute DOMString align;
 
 };

+ 1 - 0
Userland/Libraries/LibWeb/HTML/HTMLHtmlElement.idl

@@ -6,6 +6,7 @@ interface HTMLHtmlElement : HTMLElement {
 
     [HTMLConstructor] constructor();
 
+    // Obsolete
     [CEReactions, Reflect] attribute DOMString version;
 
 };

+ 7 - 4
Userland/Libraries/LibWeb/HTML/HTMLIFrameElement.idl

@@ -10,21 +10,24 @@ interface HTMLIFrameElement : HTMLElement {
     [CEReactions, Reflect] attribute DOMString src;
     [CEReactions, Reflect] attribute DOMString srcdoc;
     [CEReactions, Reflect] attribute DOMString name;
+    // FIXME: [SameObject, PutForwards=value] readonly attribute DOMTokenList sandbox;
     [CEReactions, Reflect] attribute DOMString allow;
+    [CEReactions, Reflect=allowfullscreen] attribute boolean allowFullscreen;
     [CEReactions, Reflect] attribute DOMString width;
     [CEReactions, Reflect] attribute DOMString height;
-    [CEReactions, Reflect=allowfullscreen] attribute boolean allowFullscreen;
-
+    // FIXME: [CEReactions] attribute DOMString referrerPolicy;
+    // FIXME: [CEReactions] attribute DOMString loading;
     readonly attribute Document? contentDocument;
-
     readonly attribute WindowProxy? contentWindow;
+    Document? getSVGDocument();
 
+    // Obsolete
     [CEReactions, Reflect] attribute DOMString align;
     [CEReactions, Reflect] attribute DOMString scrolling;
     [CEReactions, Reflect=frameborder] attribute DOMString frameBorder;
+    // FIXME: [CEReactions] attribute USVString longDesc;
 
     [CEReactions, LegacyNullToEmptyString, Reflect=marginheight] attribute DOMString marginHeight;
     [CEReactions, LegacyNullToEmptyString, Reflect=marginwidth] attribute DOMString marginWidth;
 
-    Document? getSVGDocument();
 };

+ 19 - 7
Userland/Libraries/LibWeb/HTML/HTMLImageElement.idl

@@ -6,22 +6,34 @@ interface HTMLImageElement : HTMLElement {
 
     [HTMLConstructor] constructor();
 
-    [CEReactions, Reflect] attribute DOMString src;
     [CEReactions, Reflect] attribute DOMString alt;
+    [CEReactions, Reflect] attribute DOMString src;
     [CEReactions, Reflect] attribute DOMString srcset;
     [CEReactions, Reflect] attribute DOMString sizes;
+    // FIXME: [CEReactions] attribute DOMString? crossOrigin;
     [CEReactions, Reflect=usemap] attribute DOMString useMap;
     [CEReactions, Reflect=ismap] attribute boolean isMap;
-
-    [CEReactions, Reflect] attribute DOMString name;
-    [CEReactions, Reflect] attribute DOMString align;
-    [CEReactions, LegacyNullToEmptyString, Reflect] attribute DOMString border;
-
     [CEReactions] attribute unsigned long width;
     [CEReactions] attribute unsigned long height;
     readonly attribute unsigned long naturalWidth;
     readonly attribute unsigned long naturalHeight;
-
     readonly attribute boolean complete;
+    // FIXME: readonly attribute USVString currentSrc;
+    // FIXME: [CEReactions] attribute DOMString referrerPolicy;
+    // FIXME: [CEReactions] attribute DOMString decoding;
+    // FIXME: [CEReactions] attribute DOMString loading;
+    // FIXME: [CEReactions] attribute DOMString fetchPriority;
+
+    // FIXME: Promise<undefined> decode();
+
+    // Obsolete
+    [CEReactions, Reflect] attribute DOMString name;
+    // FIXME: [CEReactions] attribute USVString lowsrc;
+    [CEReactions, Reflect] attribute DOMString align;
+    // FIXME: [CEReactions] attribute unsigned long hspace;
+    // FIXME: [CEReactions] attribute unsigned long vspace;
+    // FIXME: [CEReactions] attribute USVString longDesc;
+
+    [CEReactions, LegacyNullToEmptyString, Reflect] attribute DOMString border;
 
 };

+ 2 - 0
Userland/Libraries/LibWeb/HTML/HTMLLIElement.idl

@@ -5,8 +5,10 @@
 interface HTMLLIElement : HTMLElement {
 
     [HTMLConstructor] constructor();
+
     // FIXME: [CEReactions] attribute long value;
 
+    // Obsolete
     [CEReactions, Reflect] attribute DOMString type;
 
 };

+ 2 - 0
Userland/Libraries/LibWeb/HTML/HTMLLabelElement.idl

@@ -6,6 +6,8 @@ interface HTMLLabelElement : HTMLElement {
 
     [HTMLConstructor] constructor();
 
+    // FIXME: readonly attribute HTMLFormElement? form;
     [CEReactions, Reflect=for] attribute DOMString htmlFor;
+    // FIXME: readonly attribute HTMLElement? control;
 
 };

+ 13 - 3
Userland/Libraries/LibWeb/HTML/HTMLLinkElement.idl

@@ -1,3 +1,4 @@
+#import <CSS/LinkStyle.idl>
 #import <HTML/HTMLElement.idl>
 
 // https://html.spec.whatwg.org/multipage/semantics.html#htmllinkelement
@@ -7,17 +8,26 @@ interface HTMLLinkElement : HTMLElement {
     [HTMLConstructor] constructor();
 
     [CEReactions, Reflect] attribute DOMString href;
-    [CEReactions, Reflect] attribute DOMString hreflang;
-    [CEReactions, Reflect] attribute DOMString integrity;
-    [CEReactions, Reflect] attribute DOMString media;
+    // FIXME: [CEReactions] attribute DOMString? crossOrigin;
     [CEReactions, Reflect] attribute DOMString rel;
+    // FIXME: [CEReactions] attribute DOMString as;
+    // FIXME: [SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
+    [CEReactions, Reflect] attribute DOMString media;
+    [CEReactions, Reflect] attribute DOMString integrity;
+    [CEReactions, Reflect] attribute DOMString hreflang;
     [CEReactions, Reflect] attribute DOMString type;
+    // FIXME: [SameObject, PutForwards=value] readonly attribute DOMTokenList sizes;
     [CEReactions, Reflect=imagesrcset] attribute DOMString imageSrcset;
     [CEReactions, Reflect=imagesizes] attribute DOMString imageSizes;
+    // FIXME: [CEReactions] attribute DOMString referrerPolicy;
+    // FIXME: [SameObject, PutForwards=value] readonly attribute DOMTokenList blocking;
     [CEReactions, Reflect] attribute boolean disabled;
+    // FIXME: [CEReactions] attribute DOMString fetchPriority;
 
+    // Obsolete
     [CEReactions, Reflect] attribute DOMString charset;
     [CEReactions, Reflect] attribute DOMString rev;
     [CEReactions, Reflect] attribute DOMString target;
 
 };
+// FIXME: HTMLLinkElement includes LinkStyle;

+ 1 - 0
Userland/Libraries/LibWeb/HTML/HTMLMapElement.idl

@@ -7,5 +7,6 @@ interface HTMLMapElement : HTMLElement {
     [HTMLConstructor] constructor();
 
     [CEReactions, Reflect] attribute DOMString name;
+    // FIXME: [SameObject] readonly attribute HTMLCollection areas;
 
 };

+ 9 - 0
Userland/Libraries/LibWeb/HTML/HTMLMarqueeElement.idl

@@ -10,6 +10,15 @@ interface HTMLMarqueeElement : HTMLElement {
     [CEReactions, Reflect=bgcolor] attribute DOMString bgColor;
     [CEReactions, Reflect] attribute DOMString direction;
     [CEReactions, Reflect] attribute DOMString height;
+    // FIXME: [CEReactions] attribute unsigned long hspace;
+    // FIXME: [CEReactions] attribute long loop;
+    // FIXME: [CEReactions] attribute unsigned long scrollAmount;
+    // FIXME: [CEReactions] attribute unsigned long scrollDelay;
+    // FIXME: [CEReactions] attribute boolean trueSpeed;
+    // FIXME: [CEReactions] attribute unsigned long vspace;
     [CEReactions, Reflect] attribute DOMString width;
 
+    // FIXME: undefined start();
+    // FIXME: undefined stop();
+
 };

+ 11 - 0
Userland/Libraries/LibWeb/HTML/HTMLMediaElement.idl

@@ -19,6 +19,7 @@ interface HTMLMediaElement : HTMLElement {
 
     // network state
     [Reflect, CEReactions] attribute DOMString src;
+    // FIXME: attribute MediaProvider? srcObject;
     readonly attribute USVString currentSrc;
     [Reflect=crossorigin, CEReactions] attribute DOMString? crossOrigin;
     const unsigned short NETWORK_EMPTY = 0;
@@ -26,6 +27,7 @@ interface HTMLMediaElement : HTMLElement {
     const unsigned short NETWORK_LOADING = 2;
     const unsigned short NETWORK_NO_SOURCE = 3;
     readonly attribute unsigned short networkState;
+    // FIXME: [CEReactions] attribute DOMString preload;
     readonly attribute TimeRanges buffered;
     undefined load();
     CanPlayTypeResult canPlayType(DOMString type);
@@ -43,7 +45,13 @@ interface HTMLMediaElement : HTMLElement {
     attribute double currentTime;
     undefined fastSeek(double time);
     readonly attribute unrestricted double duration;
+    // FIXME: object getStartDate();
     readonly attribute boolean paused;
+    // FIXME: attribute double defaultPlaybackRate;
+    // FIXME: attribute double playbackRate;
+    // FIXME: attribute boolean preservesPitch;
+    // FIXME: readonly attribute TimeRanges played;
+    // FIXME: readonly attribute TimeRanges seekable;
     readonly attribute boolean ended;
     [Reflect, CEReactions] attribute boolean autoplay;
     [Reflect, CEReactions] attribute boolean loop;
@@ -59,4 +67,7 @@ interface HTMLMediaElement : HTMLElement {
     // tracks
     [SameObject] readonly attribute AudioTrackList audioTracks;
     [SameObject] readonly attribute VideoTrackList videoTracks;
+    // FIXME: [SameObject] readonly attribute TextTrackList textTracks;
+    // FIXME: TextTrack addTextTrack(TextTrackKind kind, optional DOMString label = "", optional DOMString language = "");
+
 };

+ 1 - 0
Userland/Libraries/LibWeb/HTML/HTMLMenuElement.idl

@@ -6,6 +6,7 @@ interface HTMLMenuElement : HTMLElement {
 
     [HTMLConstructor] constructor();
 
+    // Obsolete
     [CEReactions, Reflect] attribute boolean compact;
 
 };

+ 3 - 1
Userland/Libraries/LibWeb/HTML/HTMLMetaElement.idl

@@ -7,9 +7,11 @@ interface HTMLMetaElement : HTMLElement {
     [HTMLConstructor] constructor();
 
     [CEReactions, Reflect] attribute DOMString name;
-    [CEReactions, Reflect] attribute DOMString content;
     [CEReactions, Reflect=http-equiv] attribute DOMString httpEquiv;
+    [CEReactions, Reflect] attribute DOMString content;
+    // FIXME: [CEReactions] attribute DOMString media;
 
+    // Obsolete
     [CEReactions, Reflect] attribute DOMString scheme;
 
 };

+ 1 - 0
Userland/Libraries/LibWeb/HTML/HTMLOListElement.idl

@@ -10,6 +10,7 @@ interface HTMLOListElement : HTMLElement {
     // FIXME: [CEReactions] attribute long start;
     [CEReactions, Reflect] attribute DOMString type;
 
+    // Obsolete
     [CEReactions, Reflect] attribute boolean compact;
 
 };

+ 15 - 3
Userland/Libraries/LibWeb/HTML/HTMLObjectElement.idl

@@ -10,20 +10,32 @@ interface HTMLObjectElement : HTMLElement {
     [CEReactions] attribute DOMString data;
     [CEReactions, Reflect] attribute DOMString type;
     [CEReactions, Reflect] attribute DOMString name;
-    [CEReactions, Reflect=usemap] attribute DOMString useMap;
+    // FIXME: readonly attribute HTMLFormElement? form;
     [CEReactions, Reflect] attribute DOMString width;
     [CEReactions, Reflect] attribute DOMString height;
-
     readonly attribute Document? contentDocument;
+    // FIXME: readonly attribute WindowProxy? contentWindow;
+    Document? getSVGDocument();
 
+    // FIXME: readonly attribute boolean willValidate;
+    // FIXME: readonly attribute ValidityState validity;
+    // FIXME: readonly attribute DOMString validationMessage;
+    // FIXME: boolean checkValidity();
+    // FIXME: boolean reportValidity();
+    // FIXME: undefined setCustomValidity(DOMString error);
+
+    // Obsolete
     [CEReactions, Reflect] attribute DOMString align;
     [CEReactions, Reflect] attribute DOMString archive;
     [CEReactions, Reflect] attribute DOMString code;
     [CEReactions, Reflect] attribute boolean declare;
+    // FIXME: [CEReactions] attribute unsigned long hspace;
     [CEReactions, Reflect] attribute DOMString standby;
+    // FIXME: [CEReactions] attribute unsigned long vspace;
+    // FIXME: [CEReactions] attribute DOMString codeBase;
     [CEReactions, Reflect=codetype] attribute DOMString codeType;
+    [CEReactions, Reflect=usemap] attribute DOMString useMap;
 
     [CEReactions, LegacyNullToEmptyString, Reflect] attribute DOMString border;
 
-    Document? getSVGDocument();
 };

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

@@ -1,7 +1,7 @@
 #import <HTML/HTMLElement.idl>
 
 // https://html.spec.whatwg.org/multipage/form-elements.html#htmloptionelement
-[Exposed=Window,  LegacyFactoryFunction=Option(optional DOMString text = "", optional DOMString value, optional boolean defaultSelected = false, optional boolean selected = false)]
+[Exposed=Window, LegacyFactoryFunction=Option(optional DOMString text = "", optional DOMString value, optional boolean defaultSelected = false, optional boolean selected = false)]
 interface HTMLOptionElement : HTMLElement {
     [HTMLConstructor] constructor();
 

+ 1 - 0
Userland/Libraries/LibWeb/HTML/HTMLParagraphElement.idl

@@ -6,6 +6,7 @@ interface HTMLParagraphElement : HTMLElement {
 
     [HTMLConstructor] constructor();
 
+    // Obsolete
     [CEReactions, Reflect] attribute DOMString align;
 
 };

+ 0 - 1
Userland/Libraries/LibWeb/HTML/HTMLParamElement.idl

@@ -8,7 +8,6 @@ interface HTMLParamElement : HTMLElement {
 
     [CEReactions, Reflect] attribute DOMString name;
     [CEReactions, Reflect] attribute DOMString value;
-
     [CEReactions, Reflect] attribute DOMString type;
     [CEReactions, Reflect=valuetype] attribute DOMString valueType;
 

+ 2 - 0
Userland/Libraries/LibWeb/HTML/HTMLPreElement.idl

@@ -5,6 +5,8 @@
 interface HTMLPreElement : HTMLElement {
 
     [HTMLConstructor] constructor();
+
+    // Obsolete
     // FIXME: [CEReactions, Reflect] attribute long width;
 
 };

+ 5 - 0
Userland/Libraries/LibWeb/HTML/HTMLScriptElement.idl

@@ -9,13 +9,18 @@ interface HTMLScriptElement : HTMLElement {
     [CEReactions, Reflect] attribute DOMString src;
     [CEReactions, Reflect] attribute DOMString type;
     [CEReactions, Reflect=nomodule] attribute boolean noModule;
+    // FIXME: [CEReactions] attribute boolean async;
     [CEReactions, Reflect] attribute boolean defer;
     [CEReactions, Reflect=crossorigin] attribute DOMString? crossOrigin;
+    // FIXME: [CEReactions] attribute DOMString text;
     [CEReactions, Reflect] attribute DOMString integrity;
     [CEReactions, Reflect=referrerpolicy] attribute DOMString referrerPolicy;
+    // FIXME: [SameObject, PutForwards=value] readonly attribute DOMTokenList blocking;
+    // FIXME: [CEReactions] attribute DOMString fetchPriority;
 
     static boolean supports(DOMString type);
 
+    // Obsolete
     [CEReactions, Reflect] attribute DOMString charset;
     [CEReactions, Reflect] attribute DOMString event;
     [CEReactions, Reflect=for] attribute DOMString htmlFor;

+ 1 - 0
Userland/Libraries/LibWeb/HTML/HTMLTableCaptionElement.idl

@@ -6,6 +6,7 @@ interface HTMLTableCaptionElement : HTMLElement {
 
     [HTMLConstructor] constructor();
 
+    // Obsolete
     [CEReactions, Reflect] attribute DOMString align;
 
 };

+ 5 - 1
Userland/Libraries/LibWeb/HTML/HTMLTableCellElement.idl

@@ -9,8 +9,12 @@ interface HTMLTableCellElement : HTMLElement {
     [CEReactions] attribute unsigned long colSpan;
     [CEReactions] attribute unsigned long rowSpan;
     [CEReactions, Reflect] attribute DOMString headers;
-    [CEReactions, Reflect] attribute DOMString abbr;
+    // FIXME: readonly attribute long cellIndex;
 
+    // FIXME: [CEReactions] attribute DOMString scope; // only conforming for th elements
+    [CEReactions, Reflect] attribute DOMString abbr;  // only conforming for th elements
+
+    // Obsolete
     [CEReactions, Reflect] attribute DOMString align;
     [CEReactions, Reflect] attribute DOMString axis;
     [CEReactions, Reflect] attribute DOMString height;

+ 3 - 0
Userland/Libraries/LibWeb/HTML/HTMLTableColElement.idl

@@ -6,6 +6,9 @@ interface HTMLTableColElement : HTMLElement {
 
     [HTMLConstructor] constructor();
 
+    // FIXME: [CEReactions] attribute unsigned long span;
+
+    // Obsolete
     [CEReactions, Reflect] attribute DOMString align;
     [CEReactions, Reflect=char] attribute DOMString ch;
     [CEReactions, Reflect=charoff] attribute DOMString chOff;

+ 1 - 0
Userland/Libraries/LibWeb/HTML/HTMLTableElement.idl

@@ -29,6 +29,7 @@ interface HTMLTableElement : HTMLElement {
     HTMLTableRowElement insertRow(optional long index = -1);
     [CEReactions] undefined deleteRow(long index);
 
+    // Obsolete
     [CEReactions, Reflect] attribute DOMString align;
     [CEReactions, Reflect] attribute DOMString border;
     [CEReactions, Reflect] attribute DOMString frame;

+ 7 - 6
Userland/Libraries/LibWeb/HTML/HTMLTableRowElement.idl

@@ -8,6 +8,13 @@ interface HTMLTableRowElement : HTMLElement {
 
     [HTMLConstructor] constructor();
 
+    readonly attribute long rowIndex;
+    readonly attribute long sectionRowIndex;
+    [SameObject] readonly attribute HTMLCollection cells;
+    HTMLTableCellElement insertCell(optional long index = -1);
+    [CEReactions] undefined deleteCell(long index);
+
+    // Obsolete
     [CEReactions, Reflect] attribute DOMString align;
     [CEReactions, Reflect=char] attribute DOMString ch;
     [CEReactions, Reflect=charoff] attribute DOMString chOff;
@@ -15,10 +22,4 @@ interface HTMLTableRowElement : HTMLElement {
 
     [CEReactions, LegacyNullToEmptyString, Reflect=bgcolor] attribute DOMString bgColor;
 
-    readonly attribute long rowIndex;
-    readonly attribute long sectionRowIndex;
-
-    [SameObject] readonly attribute HTMLCollection cells;
-    HTMLTableCellElement insertCell(optional long index = -1);
-    [CEReactions] undefined deleteCell(long index);
 };

+ 5 - 4
Userland/Libraries/LibWeb/HTML/HTMLTableSectionElement.idl

@@ -8,13 +8,14 @@ interface HTMLTableSectionElement : HTMLElement {
 
     [HTMLConstructor] constructor();
 
+    [SameObject] readonly attribute HTMLCollection rows;
+    HTMLTableRowElement insertRow(optional long index = -1);
+    [CEReactions] undefined deleteRow(long index);
+
+    // Obsolete
     [CEReactions, Reflect] attribute DOMString align;
     [CEReactions, Reflect=char] attribute DOMString ch;
     [CEReactions, Reflect=charoff] attribute DOMString chOff;
     [CEReactions, Reflect=valign] attribute DOMString vAlign;
 
-    [SameObject] readonly attribute HTMLCollection rows;
-    HTMLTableRowElement insertRow(optional long index = -1);
-    [CEReactions] undefined deleteRow(long index);
-
 };

+ 2 - 0
Userland/Libraries/LibWeb/HTML/HTMLTitleElement.idl

@@ -6,4 +6,6 @@ interface HTMLTitleElement : HTMLElement {
 
     [HTMLConstructor] constructor();
 
+    // FIXME: [CEReactions] attribute DOMString text;
+
 };

+ 9 - 0
Userland/Libraries/LibWeb/HTML/HTMLTrackElement.idl

@@ -6,9 +6,18 @@ interface HTMLTrackElement : HTMLElement {
 
     [HTMLConstructor] constructor();
 
+    // FIXME: [CEReactions] attribute DOMString kind;
     [CEReactions, Reflect] attribute DOMString src;
     [CEReactions, Reflect] attribute DOMString srclang;
     [CEReactions, Reflect] attribute DOMString label;
     [CEReactions, Reflect] attribute boolean default;
 
+    // FIXME: [const unsigned short NONE = 0;
+    // FIXME: [const unsigned short LOADING = 1;
+    // FIXME: [const unsigned short LOADED = 2;
+    // FIXME: [const unsigned short ERROR = 3;
+    // FIXME: [readonly attribute unsigned short readyState;
+
+    // FIXME: [readonly attribute TextTrack track;
+
 };

+ 1 - 0
Userland/Libraries/LibWeb/HTML/HTMLUListElement.idl

@@ -6,6 +6,7 @@ interface HTMLUListElement : HTMLElement {
 
     [HTMLConstructor] constructor();
 
+    // Obsolete
     [CEReactions, Reflect] attribute boolean compact;
     [CEReactions, Reflect] attribute DOMString type;
 

+ 2 - 0
Userland/Libraries/LibWeb/HTML/HTMLVideoElement.idl

@@ -6,6 +6,8 @@ interface HTMLVideoElement : HTMLMediaElement {
 
     [HTMLConstructor] constructor();
 
+    // FIXME: [CEReactions] attribute unsigned long width;
+    // FIXME: [CEReactions] attribute unsigned long height;
     readonly attribute unsigned long videoWidth;
     readonly attribute unsigned long videoHeight;
     [CEReactions, Reflect] attribute USVString poster;

+ 10 - 0
Userland/Libraries/LibWeb/MathML/MathMLElement.cpp

@@ -33,4 +33,14 @@ Optional<ARIA::Role> MathMLElement::default_role() const
     return {};
 }
 
+void MathMLElement::focus()
+{
+    dbgln("(STUBBED) MathMLElement::focus()");
+}
+
+void MathMLElement::blur()
+{
+    dbgln("(STUBBED) MathMLElement::blur()");
+}
+
 }

+ 3 - 0
Userland/Libraries/LibWeb/MathML/MathMLElement.h

@@ -24,6 +24,9 @@ public:
 
     virtual Optional<ARIA::Role> default_role() const override;
 
+    void focus();
+    void blur();
+
 protected:
     virtual DOM::EventTarget& global_event_handlers_to_event_target(FlyString const&) override { return *this; }
 

+ 10 - 0
Userland/Libraries/LibWeb/SVG/SVGElement.cpp

@@ -97,4 +97,14 @@ void SVGElement::remove_from_use_element_that_reference_this()
     });
 }
 
+void SVGElement::focus()
+{
+    dbgln("(STUBBED) SVGElement::focus()");
+}
+
+void SVGElement::blur()
+{
+    dbgln("(STUBBED) SVGElement::blur()");
+}
+
 }

+ 3 - 0
Userland/Libraries/LibWeb/SVG/SVGElement.h

@@ -26,6 +26,9 @@ public:
     HTML::DOMStringMap* dataset() { return m_dataset.ptr(); }
     HTML::DOMStringMap const* dataset() const { return m_dataset.ptr(); }
 
+    void focus();
+    void blur();
+
 protected:
     SVGElement(DOM::Document&, DOM::QualifiedName);