summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibWeb
diff options
context:
space:
mode:
authorAndrew Kaster <akaster@serenityos.org>2022-10-07 16:45:09 -0600
committerAndreas Kling <kling@serenityos.org>2022-10-09 10:14:57 +0200
commit67ceba2e6a98c280eb685dfa7559beef09a35409 (patch)
tree78eb5e696ca22b9e5acbdf46f7d20068c7db206d /Userland/Libraries/LibWeb
parent0265041d44b313e18d097d30fb8e204fa367c5f9 (diff)
downloadserenity-67ceba2e6a98c280eb685dfa7559beef09a35409.zip
LibWeb: Add Exposed attribute and IDL spec links where missing
The intent is to use these to autogenerate prototype declarations for Window and WorkerGlobalScope classes. And the spec links are just nice to have :^)
Diffstat (limited to 'Userland/Libraries/LibWeb')
-rw-r--r--Userland/Libraries/LibWeb/CSS/CSSStyleDeclaration.idl3
-rw-r--r--Userland/Libraries/LibWeb/CSS/CSSStyleSheet.idl2
-rw-r--r--Userland/Libraries/LibWeb/CSS/MediaQueryListEvent.idl3
-rw-r--r--Userland/Libraries/LibWeb/CSS/Screen.idl2
-rw-r--r--Userland/Libraries/LibWeb/CSS/StyleSheet.idl2
-rw-r--r--Userland/Libraries/LibWeb/DOM/CharacterData.idl1
-rw-r--r--Userland/Libraries/LibWeb/DOM/Comment.idl2
-rw-r--r--Userland/Libraries/LibWeb/DOM/DOMImplementation.idl2
-rw-r--r--Userland/Libraries/LibWeb/DOM/DOMTokenList.idl3
-rw-r--r--Userland/Libraries/LibWeb/DOM/Document.idl1
-rw-r--r--Userland/Libraries/LibWeb/DOM/DocumentFragment.idl1
-rw-r--r--Userland/Libraries/LibWeb/DOM/DocumentType.idl1
-rw-r--r--Userland/Libraries/LibWeb/DOM/Element.idl1
-rw-r--r--Userland/Libraries/LibWeb/DOM/Event.idl3
-rw-r--r--Userland/Libraries/LibWeb/DOM/EventTarget.idl2
-rw-r--r--Userland/Libraries/LibWeb/DOM/Node.idl2
-rw-r--r--Userland/Libraries/LibWeb/DOM/ProcessingInstruction.idl2
-rw-r--r--Userland/Libraries/LibWeb/DOM/ShadowRoot.idl1
-rw-r--r--Userland/Libraries/LibWeb/DOM/Text.idl2
-rw-r--r--Userland/Libraries/LibWeb/Geometry/DOMPoint.idl1
-rw-r--r--Userland/Libraries/LibWeb/Geometry/DOMPointReadOnly.idl1
-rw-r--r--Userland/Libraries/LibWeb/Geometry/DOMRect.idl2
-rw-r--r--Userland/Libraries/LibWeb/Geometry/DOMRectReadOnly.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/CloseEvent.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/DOMParser.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.idl1
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLAreaElement.idl1
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLAudioElement.idl5
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLBRElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLBaseElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLBodyElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLButtonElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLCanvasElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLDListElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLDataElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLDataListElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLDetailsElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLDialogElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLDirectoryElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLDivElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLEmbedElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLFieldSetElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLFontElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLFormElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLFrameElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLFrameSetElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLHRElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLHeadElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLHeadingElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLHtmlElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLIFrameElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLImageElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLInputElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLLIElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLLabelElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLLegendElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLLinkElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLMapElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLMarqueeElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLMediaElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLMenuElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLMetaElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLMeterElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLModElement.idl4
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLOListElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLObjectElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLOptGroupElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLOptionElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLOutputElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLParagraphElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLParamElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLPictureElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLPreElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLProgressElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLQuoteElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLScriptElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLSelectElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLSlotElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLSourceElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLSpanElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLStyleElement.idl1
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLTableCaptionElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLTableCellElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLTableColElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLTableElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLTableRowElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLTableSectionElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLTemplateElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLTextAreaElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLTimeElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLTitleElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLTrackElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLUListElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLUnknownElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLVideoElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/ImageData.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/MessageChannel.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/MessageEvent.idl3
-rw-r--r--Userland/Libraries/LibWeb/HTML/MessagePort.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/PageTransitionEvent.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/SubmitEvent.idl3
-rw-r--r--Userland/Libraries/LibWeb/HTML/TextMetrics.idl2
-rw-r--r--Userland/Libraries/LibWeb/HighResolutionTime/Performance.idl2
-rw-r--r--Userland/Libraries/LibWeb/NavigationTiming/PerformanceTiming.idl3
-rw-r--r--Userland/Libraries/LibWeb/RequestIdleCallback/IdleDeadline.idl4
-rw-r--r--Userland/Libraries/LibWeb/SVG/SVGAnimatedLength.idl2
-rw-r--r--Userland/Libraries/LibWeb/SVG/SVGElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/SVG/SVGGeometryElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/SVG/SVGGraphicsElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/SVG/SVGLength.idl2
-rw-r--r--Userland/Libraries/LibWeb/SVG/SVGPathElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/SVG/SVGSVGElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/Streams/ReadableStream.idl1
-rw-r--r--Userland/Libraries/LibWeb/UIEvents/MouseEvent.idl2
-rw-r--r--Userland/Libraries/LibWeb/UIEvents/UIEvent.idl3
-rw-r--r--Userland/Libraries/LibWeb/URL/URL.idl2
-rw-r--r--Userland/Libraries/LibWeb/URL/URLSearchParams.idl2
-rw-r--r--Userland/Libraries/LibWeb/WebIDL/DOMException.idl2
-rw-r--r--Userland/Libraries/LibWeb/WebSockets/WebSocket.idl2
-rw-r--r--Userland/Libraries/LibWeb/XHR/ProgressEvent.idl3
-rw-r--r--Userland/Libraries/LibWeb/XHR/XMLHttpRequest.idl2
-rw-r--r--Userland/Libraries/LibWeb/XHR/XMLHttpRequestEventTarget.idl2
123 files changed, 236 insertions, 14 deletions
diff --git a/Userland/Libraries/LibWeb/CSS/CSSStyleDeclaration.idl b/Userland/Libraries/LibWeb/CSS/CSSStyleDeclaration.idl
index 9869ff9339..0a73e7ef51 100644
--- a/Userland/Libraries/LibWeb/CSS/CSSStyleDeclaration.idl
+++ b/Userland/Libraries/LibWeb/CSS/CSSStyleDeclaration.idl
@@ -1,4 +1,5 @@
-[]
+// https://drafts.csswg.org/cssom/#cssstyledeclaration
+[Exposed=Window]
interface CSSStyleDeclaration {
readonly attribute unsigned long length;
diff --git a/Userland/Libraries/LibWeb/CSS/CSSStyleSheet.idl b/Userland/Libraries/LibWeb/CSS/CSSStyleSheet.idl
index f8fe8ebe51..b026c76c80 100644
--- a/Userland/Libraries/LibWeb/CSS/CSSStyleSheet.idl
+++ b/Userland/Libraries/LibWeb/CSS/CSSStyleSheet.idl
@@ -1,6 +1,8 @@
#import <CSS/CSSRule.idl>
#import <CSS/CSSRuleList.idl>
+// https://drafts.csswg.org/cssom/#cssstylesheet
+[Exposed=Window]
interface CSSStyleSheet : StyleSheet {
// readonly attribute CSSRule? ownerRule;
[SameObject] readonly attribute CSSRuleList cssRules;
diff --git a/Userland/Libraries/LibWeb/CSS/MediaQueryListEvent.idl b/Userland/Libraries/LibWeb/CSS/MediaQueryListEvent.idl
index 57bc719353..c1a7d361d0 100644
--- a/Userland/Libraries/LibWeb/CSS/MediaQueryListEvent.idl
+++ b/Userland/Libraries/LibWeb/CSS/MediaQueryListEvent.idl
@@ -1,6 +1,7 @@
#import <DOM/Event.idl>
-[]
+// https://w3c.github.io/csswg-drafts/cssom-view-1/#mediaquerylistevent
+[Exposed=Window]
interface MediaQueryListEvent : Event {
constructor(CSSOMString type, optional MediaQueryListEventInit eventInitDict = {});
diff --git a/Userland/Libraries/LibWeb/CSS/Screen.idl b/Userland/Libraries/LibWeb/CSS/Screen.idl
index 075ef57e32..edd7f92273 100644
--- a/Userland/Libraries/LibWeb/CSS/Screen.idl
+++ b/Userland/Libraries/LibWeb/CSS/Screen.idl
@@ -1,3 +1,5 @@
+// https://w3c.github.io/csswg-drafts/cssom-view-1/#screen
+[Exposed=Window]
interface Screen {
readonly attribute long availWidth;
readonly attribute long availHeight;
diff --git a/Userland/Libraries/LibWeb/CSS/StyleSheet.idl b/Userland/Libraries/LibWeb/CSS/StyleSheet.idl
index 700cbff601..502c4a81f9 100644
--- a/Userland/Libraries/LibWeb/CSS/StyleSheet.idl
+++ b/Userland/Libraries/LibWeb/CSS/StyleSheet.idl
@@ -2,6 +2,8 @@
#import <CSS/MediaList.idl>
#import <DOM/Element.idl>
+// https://drafts.csswg.org/cssom/#stylesheet
+[Exposed=Window]
interface StyleSheet {
readonly attribute Element? ownerNode;
diff --git a/Userland/Libraries/LibWeb/DOM/CharacterData.idl b/Userland/Libraries/LibWeb/DOM/CharacterData.idl
index bb0c375ee9..324a9c7bb0 100644
--- a/Userland/Libraries/LibWeb/DOM/CharacterData.idl
+++ b/Userland/Libraries/LibWeb/DOM/CharacterData.idl
@@ -3,6 +3,7 @@
#import <DOM/Node.idl>
// https://dom.spec.whatwg.org/#characterdata
+[Exposed=Window]
interface CharacterData : Node {
[LegacyNullToEmptyString] attribute DOMString data;
readonly attribute unsigned long length;
diff --git a/Userland/Libraries/LibWeb/DOM/Comment.idl b/Userland/Libraries/LibWeb/DOM/Comment.idl
index 57ddb278b1..bb3728dbf3 100644
--- a/Userland/Libraries/LibWeb/DOM/Comment.idl
+++ b/Userland/Libraries/LibWeb/DOM/Comment.idl
@@ -1,5 +1,7 @@
#import <DOM/CharacterData.idl>
+// https://dom.spec.whatwg.org/#comment
+[Exposed=Window]
interface Comment : CharacterData {
constructor(optional DOMString data = "");
};
diff --git a/Userland/Libraries/LibWeb/DOM/DOMImplementation.idl b/Userland/Libraries/LibWeb/DOM/DOMImplementation.idl
index 164805eea4..14060e83ea 100644
--- a/Userland/Libraries/LibWeb/DOM/DOMImplementation.idl
+++ b/Userland/Libraries/LibWeb/DOM/DOMImplementation.idl
@@ -1,5 +1,7 @@
#import <DOM/Document.idl>
+// https://dom.spec.whatwg.org/#domimplementation
+[Exposed=Window]
interface DOMImplementation {
// FIXME: This should return XMLDocument instead of Document.
diff --git a/Userland/Libraries/LibWeb/DOM/DOMTokenList.idl b/Userland/Libraries/LibWeb/DOM/DOMTokenList.idl
index d42d4b9ecc..9f397afff0 100644
--- a/Userland/Libraries/LibWeb/DOM/DOMTokenList.idl
+++ b/Userland/Libraries/LibWeb/DOM/DOMTokenList.idl
@@ -1,4 +1,5 @@
-[]
+// https://dom.spec.whatwg.org/#interface-domtokenlist
+[Exposed=Window]
interface DOMTokenList {
readonly attribute unsigned long length;
getter DOMString? item(unsigned long index);
diff --git a/Userland/Libraries/LibWeb/DOM/Document.idl b/Userland/Libraries/LibWeb/DOM/Document.idl
index f479068872..2bd6063e00 100644
--- a/Userland/Libraries/LibWeb/DOM/Document.idl
+++ b/Userland/Libraries/LibWeb/DOM/Document.idl
@@ -20,6 +20,7 @@
#import <HTML/HTMLScriptElement.idl>
// https://dom.spec.whatwg.org/#document
+[Exposed=Window]
interface Document : Node {
constructor();
diff --git a/Userland/Libraries/LibWeb/DOM/DocumentFragment.idl b/Userland/Libraries/LibWeb/DOM/DocumentFragment.idl
index 10e66132f3..297a116e5c 100644
--- a/Userland/Libraries/LibWeb/DOM/DocumentFragment.idl
+++ b/Userland/Libraries/LibWeb/DOM/DocumentFragment.idl
@@ -5,6 +5,7 @@
#import <DOM/ParentNode.idl>
// https://dom.spec.whatwg.org/#documentfragment
+[Exposed=Window]
interface DocumentFragment : Node {
constructor();
diff --git a/Userland/Libraries/LibWeb/DOM/DocumentType.idl b/Userland/Libraries/LibWeb/DOM/DocumentType.idl
index f2ea4fc0cb..7834d9d49d 100644
--- a/Userland/Libraries/LibWeb/DOM/DocumentType.idl
+++ b/Userland/Libraries/LibWeb/DOM/DocumentType.idl
@@ -2,6 +2,7 @@
#import <DOM/Node.idl>
// https://dom.spec.whatwg.org/#documenttype
+[Exposed=Window]
interface DocumentType : Node {
readonly attribute DOMString name;
readonly attribute DOMString publicId;
diff --git a/Userland/Libraries/LibWeb/DOM/Element.idl b/Userland/Libraries/LibWeb/DOM/Element.idl
index f3617d5fea..dd7f9863de 100644
--- a/Userland/Libraries/LibWeb/DOM/Element.idl
+++ b/Userland/Libraries/LibWeb/DOM/Element.idl
@@ -21,6 +21,7 @@ dictionary ScrollIntoViewOptions : ScrollOptions {
};
// https://dom.spec.whatwg.org/#element
+[Exposed=Window]
interface Element : Node {
readonly attribute DOMString? namespaceURI;
readonly attribute DOMString? prefix;
diff --git a/Userland/Libraries/LibWeb/DOM/Event.idl b/Userland/Libraries/LibWeb/DOM/Event.idl
index dd5efac5e2..ccae48396c 100644
--- a/Userland/Libraries/LibWeb/DOM/Event.idl
+++ b/Userland/Libraries/LibWeb/DOM/Event.idl
@@ -1,6 +1,7 @@
#import <DOM/EventTarget.idl>
-[]
+// https://dom.spec.whatwg.org/#event
+[Exposed=*]
interface Event {
constructor(DOMString type, optional EventInit eventInitDict = {});
diff --git a/Userland/Libraries/LibWeb/DOM/EventTarget.idl b/Userland/Libraries/LibWeb/DOM/EventTarget.idl
index 8913b232b5..30c1b82890 100644
--- a/Userland/Libraries/LibWeb/DOM/EventTarget.idl
+++ b/Userland/Libraries/LibWeb/DOM/EventTarget.idl
@@ -1,5 +1,7 @@
#import <DOM/AbortSignal.idl>
+// https://dom.spec.whatwg.org/#eventtarget
+[Exposed=*]
interface EventTarget {
undefined addEventListener(DOMString type, EventListener? callback, optional (AddEventListenerOptions or boolean) options = {});
diff --git a/Userland/Libraries/LibWeb/DOM/Node.idl b/Userland/Libraries/LibWeb/DOM/Node.idl
index 72ce15ae16..8ac5cdca67 100644
--- a/Userland/Libraries/LibWeb/DOM/Node.idl
+++ b/Userland/Libraries/LibWeb/DOM/Node.idl
@@ -2,6 +2,8 @@
#import <DOM/Element.idl>
#import <DOM/EventTarget.idl>
+// https://dom.spec.whatwg.org/#node
+[Exposed=Window]
interface Node : EventTarget {
readonly attribute unsigned short nodeType;
diff --git a/Userland/Libraries/LibWeb/DOM/ProcessingInstruction.idl b/Userland/Libraries/LibWeb/DOM/ProcessingInstruction.idl
index 459f4da625..eaa4160b55 100644
--- a/Userland/Libraries/LibWeb/DOM/ProcessingInstruction.idl
+++ b/Userland/Libraries/LibWeb/DOM/ProcessingInstruction.idl
@@ -1,5 +1,7 @@
#import <DOM/CharacterData.idl>
+// https://dom.spec.whatwg.org/#processinginstruction
+[Exposed=Window]
interface ProcessingInstruction : CharacterData {
readonly attribute DOMString target;
};
diff --git a/Userland/Libraries/LibWeb/DOM/ShadowRoot.idl b/Userland/Libraries/LibWeb/DOM/ShadowRoot.idl
index 1190e7bb70..c5474d5903 100644
--- a/Userland/Libraries/LibWeb/DOM/ShadowRoot.idl
+++ b/Userland/Libraries/LibWeb/DOM/ShadowRoot.idl
@@ -2,6 +2,7 @@
#import <DOM/InnerHTML.idl>
// https://dom.spec.whatwg.org/#shadowroot
+[Exposed=Window]
interface ShadowRoot : DocumentFragment {
// FIXME: mode should return a ShadowRootMode
readonly attribute DOMString mode;
diff --git a/Userland/Libraries/LibWeb/DOM/Text.idl b/Userland/Libraries/LibWeb/DOM/Text.idl
index 635fd7a29d..4093e6fdac 100644
--- a/Userland/Libraries/LibWeb/DOM/Text.idl
+++ b/Userland/Libraries/LibWeb/DOM/Text.idl
@@ -1,5 +1,7 @@
#import <DOM/CharacterData.idl>
+// https://dom.spec.whatwg.org/#text
+[Exposed=Window]
interface Text : CharacterData {
constructor(optional DOMString data = "");
diff --git a/Userland/Libraries/LibWeb/Geometry/DOMPoint.idl b/Userland/Libraries/LibWeb/Geometry/DOMPoint.idl
index 99378ec9bf..47b9857144 100644
--- a/Userland/Libraries/LibWeb/Geometry/DOMPoint.idl
+++ b/Userland/Libraries/LibWeb/Geometry/DOMPoint.idl
@@ -1,6 +1,7 @@
#import <Geometry/DOMPointReadOnly.idl>
// https://drafts.fxtf.org/geometry/#dompoint
+[Exposed=(Window,Worker), Serializable, LegacyWindowAlias=SVGPoint]
interface DOMPoint : DOMPointReadOnly {
constructor(optional unrestricted double x = 0, optional unrestricted double y = 0,
diff --git a/Userland/Libraries/LibWeb/Geometry/DOMPointReadOnly.idl b/Userland/Libraries/LibWeb/Geometry/DOMPointReadOnly.idl
index 75053bb44e..302f3ad8f3 100644
--- a/Userland/Libraries/LibWeb/Geometry/DOMPointReadOnly.idl
+++ b/Userland/Libraries/LibWeb/Geometry/DOMPointReadOnly.idl
@@ -1,4 +1,5 @@
// https://drafts.fxtf.org/geometry/#dompointreadonly
+[Exposed=(Window,Worker), Serializable]
interface DOMPointReadOnly {
constructor(optional unrestricted double x = 0, optional unrestricted double y = 0,
diff --git a/Userland/Libraries/LibWeb/Geometry/DOMRect.idl b/Userland/Libraries/LibWeb/Geometry/DOMRect.idl
index 01e3777f8f..a364dba2a0 100644
--- a/Userland/Libraries/LibWeb/Geometry/DOMRect.idl
+++ b/Userland/Libraries/LibWeb/Geometry/DOMRect.idl
@@ -1,5 +1,7 @@
#import <Geometry/DOMRectReadOnly.idl>
+// https://drafts.fxtf.org/geometry/#dompoint
+[Exposed=(Window,Worker), Serializable, LegacyWindowAlias=SVGRect]
interface DOMRect : DOMRectReadOnly {
constructor(optional double x = 0, optional double y = 0, optional double width = 0, optional double height = 0);
diff --git a/Userland/Libraries/LibWeb/Geometry/DOMRectReadOnly.idl b/Userland/Libraries/LibWeb/Geometry/DOMRectReadOnly.idl
index 9e503c5d47..aa77d24e4b 100644
--- a/Userland/Libraries/LibWeb/Geometry/DOMRectReadOnly.idl
+++ b/Userland/Libraries/LibWeb/Geometry/DOMRectReadOnly.idl
@@ -1,3 +1,5 @@
+// https://drafts.fxtf.org/geometry/#domrectreadonly
+[Exposed=(Window, Worker), Serializable]
interface DOMRectReadOnly {
constructor(optional double x = 0, optional double y = 0, optional double width = 0, optional double height = 0);
diff --git a/Userland/Libraries/LibWeb/HTML/CloseEvent.idl b/Userland/Libraries/LibWeb/HTML/CloseEvent.idl
index da2d588959..389486f3ab 100644
--- a/Userland/Libraries/LibWeb/HTML/CloseEvent.idl
+++ b/Userland/Libraries/LibWeb/HTML/CloseEvent.idl
@@ -1,6 +1,6 @@
#import <DOM/Event.idl>
-[]
+[Exposed=*]
interface CloseEvent : Event {
constructor(DOMString type, optional CloseEventInit eventInitDict = {});
diff --git a/Userland/Libraries/LibWeb/HTML/DOMParser.idl b/Userland/Libraries/LibWeb/HTML/DOMParser.idl
index 71e6a742e7..bfe112d109 100644
--- a/Userland/Libraries/LibWeb/HTML/DOMParser.idl
+++ b/Userland/Libraries/LibWeb/HTML/DOMParser.idl
@@ -8,6 +8,8 @@ enum DOMParserSupportedType {
"image/svg+xml"
};
+// https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#domparser
+[Exposed=Window]
interface DOMParser {
constructor();
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.idl
index f6c2e62438..34c572bf3a 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.idl
@@ -2,6 +2,7 @@
#import <HTML/HTMLHyperlinkElementUtils.idl>
// https://html.spec.whatwg.org/multipage/text-level-semantics.html#htmlanchorelement
+[Exposed=Window]
interface HTMLAnchorElement : HTMLElement {
// FIXME: [HTMLConstructor] constructor();
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLAreaElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLAreaElement.idl
index 9cf4c63aee..148e7f2e2c 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLAreaElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLAreaElement.idl
@@ -2,6 +2,7 @@
#import <HTML/HTMLHyperlinkElementUtils.idl>
// https://html.spec.whatwg.org/multipage/image-maps.html#htmlareaelement
+[Exposed=Window]
interface HTMLAreaElement : HTMLElement {
// FIXME: [HTMLConstructor] constructor();
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLAudioElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLAudioElement.idl
index ab158202b7..eab8f5946b 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLAudioElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLAudioElement.idl
@@ -1,7 +1,6 @@
#import <HTML/HTMLMediaElement.idl>
+[Exposed=Window, LegacyFactoryFunction=Audio(optional DOMString src)]
interface HTMLAudioElement : HTMLMediaElement {
-
-
-
+ // FIXME: [HTMLConstructor] constructor();
};
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLBRElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLBRElement.idl
index f939749018..870ef98bbe 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLBRElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLBRElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlbrelement
+[Exposed=Window]
interface HTMLBRElement : HTMLElement {
[Reflect] attribute DOMString clear;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLBaseElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLBaseElement.idl
index 43c4bc80d9..5cdf64f113 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLBaseElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLBaseElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlbaseelement
+[Exposed=Window]
interface HTMLBaseElement : HTMLElement {
[CEReactions] attribute USVString href;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLBodyElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLBodyElement.idl
index 758b9ded0e..483c59dc57 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLBodyElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLBodyElement.idl
@@ -1,6 +1,8 @@
#import <DOM/EventHandler.idl>
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/sections.html#htmlbodyelement
+[Exposed=Window]
interface HTMLBodyElement : HTMLElement {
[LegacyNullToEmptyString, Reflect] attribute DOMString text;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLButtonElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLButtonElement.idl
index 74bad1b1fa..76e7e13815 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLButtonElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLButtonElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlbuttonelement
+[Exposed=Window]
interface HTMLButtonElement : HTMLElement {
[Reflect=formnovalidate] attribute boolean formNoValidate;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLCanvasElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLCanvasElement.idl
index 28ad99a8c5..cdf9f2281c 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLCanvasElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLCanvasElement.idl
@@ -4,6 +4,8 @@
typedef (CanvasRenderingContext2D or WebGLRenderingContext) RenderingContext;
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlcanvaselement
+[Exposed=Window]
interface HTMLCanvasElement : HTMLElement {
RenderingContext? getContext(DOMString contextId, optional any options = null);
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLDListElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLDListElement.idl
index d925a36109..ebba839fdf 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLDListElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLDListElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmldlistelement
+[Exposed=Window]
interface HTMLDListElement : HTMLElement {
[Reflect] attribute boolean compact;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLDataElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLDataElement.idl
index 12844eef03..18ab60228e 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLDataElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLDataElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmldataelement
+[Exposed=Window]
interface HTMLDataElement : HTMLElement {
[Reflect] attribute DOMString value;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLDataListElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLDataListElement.idl
index eb0e96babc..0396a370b8 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLDataListElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLDataListElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmldatalistelement
+[Exposed=Window]
interface HTMLDataListElement : HTMLElement {
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLDetailsElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLDetailsElement.idl
index 078bc84d3c..3afb203246 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLDetailsElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLDetailsElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmldetailselement
+[Exposed=Window]
interface HTMLDetailsElement : HTMLElement {
[Reflect] attribute boolean open;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLDialogElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLDialogElement.idl
index 6e669c3193..e0c8b5fc7d 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLDialogElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLDialogElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmldialogelement
+[Exposed=Window]
interface HTMLDialogElement : HTMLElement {
[Reflect] attribute boolean open;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLDirectoryElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLDirectoryElement.idl
index 999ecc41c3..30cada4463 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLDirectoryElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLDirectoryElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmldirectoryelement
+[Exposed=Window]
interface HTMLDirectoryElement : HTMLElement {
[Reflect] attribute boolean compact;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLDivElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLDivElement.idl
index 7d3c5d3abe..7aa5e651a0 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLDivElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLDivElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmldivelement
+[Exposed=Window]
interface HTMLDivElement : HTMLElement {
[Reflect] attribute DOMString align;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLElement.idl
index 81ac8c4597..6cb9bbcc85 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLElement.idl
@@ -1,6 +1,8 @@
#import <HTML/DOMStringMap.idl>
#import <DOM/EventHandler.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlelement
+[Exposed=Window]
interface HTMLElement : Element {
[Reflect] attribute DOMString title;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLEmbedElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLEmbedElement.idl
index c6dd8618c7..45bc6a75f3 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLEmbedElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLEmbedElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlembedelement
+[Exposed=Window]
interface HTMLEmbedElement : HTMLElement {
[Reflect] attribute DOMString src;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLFieldSetElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLFieldSetElement.idl
index 9ae9092002..6b40bf2daa 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLFieldSetElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLFieldSetElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlfieldsetelement
+[Exposed=Window]
interface HTMLFieldSetElement : HTMLElement {
readonly attribute DOMString type;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLFontElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLFontElement.idl
index 63e37c511c..f2697772f7 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLFontElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLFontElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlfontelement
+[Exposed=Window]
interface HTMLFontElement : HTMLElement {
[LegacyNullToEmptyString, Reflect] attribute DOMString color;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLFormElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLFormElement.idl
index c2a443c534..9be32481e1 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLFormElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLFormElement.idl
@@ -1,6 +1,8 @@
#import <DOM/HTMLCollection.idl>
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlformelement
+[Exposed=Window]
interface HTMLFormElement : HTMLElement {
[Reflect] attribute DOMString name;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLFrameElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLFrameElement.idl
index 92b2512a4c..76221edf04 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLFrameElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLFrameElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlframeelement
+[Exposed=Window]
interface HTMLFrameElement : HTMLElement {
[Reflect] attribute DOMString name;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLFrameSetElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLFrameSetElement.idl
index 650be3c737..d0ca96b1d3 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLFrameSetElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLFrameSetElement.idl
@@ -1,6 +1,8 @@
#import <DOM/EventHandler.idl>
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlframesetelement
+[Exposed=Window]
interface HTMLFrameSetElement : HTMLElement {
[Reflect] attribute DOMString cols;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLHRElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLHRElement.idl
index c47d34fff7..4304dc2a9c 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLHRElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLHRElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/grouping-content.html#htmlhrelement
+[Exposed=Window]
interface HTMLHRElement : HTMLElement {
[Reflect] attribute DOMString align;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLHeadElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLHeadElement.idl
index 4a374458d0..740eff023e 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLHeadElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLHeadElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlheadelement
+[Exposed=Window]
interface HTMLHeadElement : HTMLElement {
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLHeadingElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLHeadingElement.idl
index 269834f97a..f43100569d 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLHeadingElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLHeadingElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlheadingelement
+[Exposed=Window]
interface HTMLHeadingElement : HTMLElement {
[Reflect] attribute DOMString align;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLHtmlElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLHtmlElement.idl
index 97544a5879..9ade7f117d 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLHtmlElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLHtmlElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlhtmlelement
+[Exposed=Window]
interface HTMLHtmlElement : HTMLElement {
[Reflect] attribute DOMString version;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLIFrameElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLIFrameElement.idl
index 8c25b63df6..f0d9ae5aef 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLIFrameElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLIFrameElement.idl
@@ -1,6 +1,8 @@
#import <HTML/HTMLElement.idl>
#import <DOM/Document.idl>
+// https://html.spec.whatwg.org/multipage/iframe-embed-object.html#htmliframeelement
+[Exposed=Window]
interface HTMLIFrameElement : HTMLElement {
[Reflect] attribute DOMString src;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLImageElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLImageElement.idl
index 339c90fb13..e33167770e 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLImageElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLImageElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/embedded-content.html#htmlimageelement
+[Exposed=Window, LegacyFactoryFunction=Image(optional unsigned long width, optional unsigned long height)]
interface HTMLImageElement : HTMLElement {
[Reflect] attribute DOMString src;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLInputElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLInputElement.idl
index 1c4dba1046..2db4de4496 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLInputElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLInputElement.idl
@@ -2,6 +2,8 @@
#import <HTML/HTMLFormElement.idl>
#import <FileAPI/FileList.idl>
+// https://html.spec.whatwg.org/multipage/input.html#htmlinputelement
+[Exposed=Window]
interface HTMLInputElement : HTMLElement {
readonly attribute HTMLFormElement? form;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLLIElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLLIElement.idl
index 54d7017b9e..6223d5ddb0 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLLIElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLLIElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/grouping-content.html#htmllielement
+[Exposed=Window]
interface HTMLLIElement : HTMLElement {
[Reflect] attribute DOMString type;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLLabelElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLLabelElement.idl
index 610a117daf..84f9a6e2c4 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLLabelElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLLabelElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/forms.html#htmllabelelement
+[Exposed=Window]
interface HTMLLabelElement : HTMLElement {
[Reflect=for] attribute DOMString htmlFor;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLLegendElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLLegendElement.idl
index be8a331a0a..d6f6737262 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLLegendElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLLegendElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/form-elements.html#htmllegendelement
+[Exposed=Window]
interface HTMLLegendElement : HTMLElement {
[Reflect] attribute DOMString align;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLLinkElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLLinkElement.idl
index 69f2fc5a88..cadbe6a9e6 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLLinkElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLLinkElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmllinkelement
+[Exposed=Window]
interface HTMLLinkElement : HTMLElement {
[Reflect] attribute DOMString href;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLMapElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLMapElement.idl
index 4eea1b5fc3..6d77f934a2 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLMapElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLMapElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/image-maps.html#htmlmapelement
+[Exposed=Window]
interface HTMLMapElement : HTMLElement {
[Reflect] attribute DOMString name;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLMarqueeElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLMarqueeElement.idl
index b58dd0e52c..88b46b6748 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLMarqueeElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLMarqueeElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/obsolete.html#htmlmarqueeelement
+[Exposed=Window]
interface HTMLMarqueeElement : HTMLElement {
[Reflect] attribute DOMString behavior;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.idl
index a97e1e29ba..b328bc8ac0 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.idl
@@ -6,6 +6,8 @@ enum CanPlayTypeResult {
"probably"
};
+// https://html.spec.whatwg.org/multipage/media.html#htmlmediaelement
+[Exposed=Window]
interface HTMLMediaElement : HTMLElement {
[Reflect] attribute DOMString src;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLMenuElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLMenuElement.idl
index cfed488680..77c167998e 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLMenuElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLMenuElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/grouping-content.html#htmlmenuelement
+[Exposed=Window]
interface HTMLMenuElement : HTMLElement {
[Reflect] attribute boolean compact;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLMetaElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLMetaElement.idl
index 34e4a8f586..90e9b8f654 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLMetaElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLMetaElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlmetaelement
+[Exposed=Window]
interface HTMLMetaElement : HTMLElement {
[Reflect] attribute DOMString name;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLMeterElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLMeterElement.idl
index 713f3690a5..1da3b094aa 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLMeterElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLMeterElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/form-elements.html#htmlmeterelement
+[Exposed=Window]
interface HTMLMeterElement : HTMLElement {
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLModElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLModElement.idl
index 0edb621078..2f04f512ac 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLModElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLModElement.idl
@@ -1,8 +1,10 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/edits.html#htmlmodelement
+[Exposed=Window]
interface HTMLModElement : HTMLElement {
- [Reflect] attribute DOMString cite;
+ [Reflect] attribute USVString cite;
[Reflect=datetime] attribute DOMString dateTime;
};
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLOListElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLOListElement.idl
index 5e494b5723..7ba8ae4ca1 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLOListElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLOListElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/grouping-content.html#htmlolistelement
+[Exposed=Window]
interface HTMLOListElement : HTMLElement {
[Reflect] attribute boolean reversed;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLObjectElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLObjectElement.idl
index ce45d467f2..d5ce7799f6 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLObjectElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLObjectElement.idl
@@ -1,6 +1,8 @@
#import <DOM/Document.idl>
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/iframe-embed-object.html#htmlobjectelement
+[Exposed=Window]
interface HTMLObjectElement : HTMLElement {
[CEReactions] attribute DOMString data;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLOptGroupElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLOptGroupElement.idl
index e88f553279..dd76d5822c 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLOptGroupElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLOptGroupElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/form-elements.html#htmloptgroupelement
+[Exposed=Window]
interface HTMLOptGroupElement : HTMLElement {
[Reflect] attribute boolean disabled;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLOptionElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLOptionElement.idl
index 5a2a1f5395..d3fbc9f0fe 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLOptionElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLOptionElement.idl
@@ -1,5 +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)]
interface HTMLOptionElement : HTMLElement {
[Reflect] attribute boolean disabled;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLOutputElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLOutputElement.idl
index f8f5dbb8e3..468da6cc09 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLOutputElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLOutputElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/form-elements.html#htmloutputelement
+[Exposed=Window]
interface HTMLOutputElement : HTMLElement {
readonly attribute DOMString type;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLParagraphElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLParagraphElement.idl
index cd3b3f221d..85b4499732 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLParagraphElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLParagraphElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmlparagraphelement
+[Exposed=Window]
interface HTMLParagraphElement : HTMLElement {
[Reflect] attribute DOMString align;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLParamElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLParamElement.idl
index b4630af8ac..10f55556f8 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLParamElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLParamElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/obsolete.html#htmlparamelement
+[Exposed=Window]
interface HTMLParamElement : HTMLElement {
[Reflect] attribute DOMString name;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLPictureElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLPictureElement.idl
index 5b6ecb335a..74120dadeb 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLPictureElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLPictureElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/embedded-content.html#htmlpictureelement
+[Exposed=Window]
interface HTMLPictureElement : HTMLElement {
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLPreElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLPreElement.idl
index cc7cc33d0d..e94e676070 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLPreElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLPreElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/grouping-content.html#htmlpreelement
+[Exposed=Window]
interface HTMLPreElement : HTMLElement {
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLProgressElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLProgressElement.idl
index 4064f278c9..18ad7d0b38 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLProgressElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLProgressElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/form-elements.html#htmlprogresselement
+[Exposed=Window]
interface HTMLProgressElement : HTMLElement {
[CEReactions] attribute double value;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLQuoteElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLQuoteElement.idl
index 8133ce5892..522df0a544 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLQuoteElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLQuoteElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/grouping-content.html#htmlquoteelement
+[Exposed=Window]
interface HTMLQuoteElement : HTMLElement {
[Reflect] attribute DOMString cite;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLScriptElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLScriptElement.idl
index 6571a9f3c7..72648dfbff 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLScriptElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLScriptElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/scripting.html#htmlscriptelement
+[Exposed=Window]
interface HTMLScriptElement : HTMLElement {
[Reflect] attribute DOMString src;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLSelectElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLSelectElement.idl
index 3717993572..1aa0bcd9ac 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLSelectElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLSelectElement.idl
@@ -1,6 +1,8 @@
#import <HTML/HTMLElement.idl>
#import <HTML/HTMLOptionsCollection.idl>
+// https://html.spec.whatwg.org/multipage/form-elements.html#htmlselectelement
+[Exposed=Window]
interface HTMLSelectElement : HTMLElement {
[Reflect] attribute boolean disabled;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLSlotElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLSlotElement.idl
index fbe2aab5ce..2087cb1f6e 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLSlotElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLSlotElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/scripting.html#htmlslotelement
+[Exposed=Window]
interface HTMLSlotElement : HTMLElement {
[Reflect] attribute DOMString name;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLSourceElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLSourceElement.idl
index 4d94c99eca..bb7d3d0891 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLSourceElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLSourceElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/embedded-content.html#htmlsourceelement
+[Exposed=Window]
interface HTMLSourceElement : HTMLElement {
[Reflect] attribute DOMString src;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLSpanElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLSpanElement.idl
index c43f4c0df3..cefaa91d9b 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLSpanElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLSpanElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/text-level-semantics.html#htmlspanelement
+[Exposed=Window]
interface HTMLSpanElement : HTMLElement {
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLStyleElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLStyleElement.idl
index c33e8be66d..a3ade64587 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLStyleElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLStyleElement.idl
@@ -3,6 +3,7 @@
#import <HTML/HTMLElement.idl>
// https://html.spec.whatwg.org/multipage/semantics.html#htmlstyleelement
+[Exposed=Window]
interface HTMLStyleElement : HTMLElement {
// FIXME: [HTMLConstructor] constructor();
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTableCaptionElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTableCaptionElement.idl
index 0c9983a836..9155740334 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTableCaptionElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTableCaptionElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/tables.html#htmltablecaptionelement
+[Exposed=Window]
interface HTMLTableCaptionElement : HTMLElement {
[Reflect] attribute DOMString align;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTableCellElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTableCellElement.idl
index b6d42581ee..6bc4ad9338 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTableCellElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTableCellElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/tables.html#htmltablecellelement
+[Exposed=Window]
interface HTMLTableCellElement : HTMLElement {
attribute unsigned long colSpan;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTableColElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTableColElement.idl
index 41533248a3..70680e4e65 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTableColElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTableColElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/tables.html#htmltablecolelement
+[Exposed=Window]
interface HTMLTableColElement : HTMLElement {
[Reflect] attribute DOMString align;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTableElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTableElement.idl
index 2e1adf1a40..c6ef9dcc78 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTableElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTableElement.idl
@@ -4,6 +4,8 @@
#import <HTML/HTMLTableSectionElement.idl>
#import <DOM/HTMLCollection.idl>
+// https://html.spec.whatwg.org/multipage/tables.html#htmltableelement
+[Exposed=Window]
interface HTMLTableElement : HTMLElement {
attribute HTMLTableCaptionElement? caption;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTableRowElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTableRowElement.idl
index 29d21d4f99..82c27c7ddf 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTableRowElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTableRowElement.idl
@@ -1,6 +1,8 @@
#import <DOM/HTMLCollection.idl>
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/tables.html#htmltablerowelement
+[Exposed=Window]
interface HTMLTableRowElement : HTMLElement {
[Reflect] attribute DOMString align;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTableSectionElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTableSectionElement.idl
index ee1025d819..ac9e1eeb8b 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTableSectionElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTableSectionElement.idl
@@ -2,6 +2,8 @@
#import <HTML/HTMLElement.idl>
#import <HTML/HTMLTableRowElement.idl>
+// https://html.spec.whatwg.org/multipage/tables.html#htmltablesectionelement
+[Exposed=Window]
interface HTMLTableSectionElement : HTMLElement {
[Reflect] attribute DOMString align;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTemplateElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTemplateElement.idl
index 02da460923..8783e48c2b 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTemplateElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTemplateElement.idl
@@ -1,6 +1,8 @@
#import <DOM/DocumentFragment.idl>
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/scripting.html#htmltemplateelement
+[Exposed=Window]
interface HTMLTemplateElement : HTMLElement {
readonly attribute DocumentFragment content;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTextAreaElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTextAreaElement.idl
index 7f5978187b..2490d10aef 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTextAreaElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTextAreaElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/form-elements.html#htmltextareaelement
+[Exposed=Window]
interface HTMLTextAreaElement : HTMLElement {
[Reflect] attribute DOMString placeholder;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTimeElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTimeElement.idl
index 52334d5a1f..c09f508701 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTimeElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTimeElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/text-level-semantics.html#htmltimeelement
+[Exposed=Window]
interface HTMLTimeElement : HTMLElement {
[Reflect=datetime] attribute DOMString dateTime;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTitleElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTitleElement.idl
index c8c74378a5..314cd0c571 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTitleElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTitleElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/semantics.html#htmltitleelement
+[Exposed=Window]
interface HTMLTitleElement : HTMLElement {
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTrackElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTrackElement.idl
index 3e1a0296e3..bcaeb8a47a 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTrackElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTrackElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/media.html#htmltrackelement
+[Exposed=Window]
interface HTMLTrackElement : HTMLElement {
[Reflect] attribute DOMString src;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLUListElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLUListElement.idl
index 26fe12d55f..cc8ddad5e8 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLUListElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLUListElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/grouping-content.html#htmlulistelement
+[Exposed=Window]
interface HTMLUListElement : HTMLElement {
[Reflect] attribute boolean compact;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLUnknownElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLUnknownElement.idl
index 6b15e11700..217d78d566 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLUnknownElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLUnknownElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLElement.idl>
+// https://html.spec.whatwg.org/multipage/dom.html#htmlunknownelement
+[Exposed=Window]
interface HTMLUnknownElement : HTMLElement {
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLVideoElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLVideoElement.idl
index 9c3a52cce7..bf1229871d 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLVideoElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLVideoElement.idl
@@ -1,5 +1,7 @@
#import <HTML/HTMLMediaElement.idl>
+// https://html.spec.whatwg.org/multipage/media.html#htmlvideoelement
+[Exposed=Window]
interface HTMLVideoElement : HTMLMediaElement {
[Reflect] attribute DOMString poster;
diff --git a/Userland/Libraries/LibWeb/HTML/ImageData.idl b/Userland/Libraries/LibWeb/HTML/ImageData.idl
index 29b683b547..cdb444b554 100644
--- a/Userland/Libraries/LibWeb/HTML/ImageData.idl
+++ b/Userland/Libraries/LibWeb/HTML/ImageData.idl
@@ -1,3 +1,5 @@
+// https://html.spec.whatwg.org/multipage/canvas.html#imagedata
+[Exposed=(Window,Worker), Serializable]
interface ImageData {
readonly attribute unsigned long width;
diff --git a/Userland/Libraries/LibWeb/HTML/MessageChannel.idl b/Userland/Libraries/LibWeb/HTML/MessageChannel.idl
index f1dfc346dc..b9d855f774 100644
--- a/Userland/Libraries/LibWeb/HTML/MessageChannel.idl
+++ b/Userland/Libraries/LibWeb/HTML/MessageChannel.idl
@@ -1,5 +1,7 @@
#import <HTML/MessagePort.idl>
+// https://html.spec.whatwg.org/multipage/web-messaging.html#messagechannel
+[Exposed=(Window,Worker)]
interface MessageChannel {
constructor();
diff --git a/Userland/Libraries/LibWeb/HTML/MessageEvent.idl b/Userland/Libraries/LibWeb/HTML/MessageEvent.idl
index 6f5f7fe866..f394f7b6d2 100644
--- a/Userland/Libraries/LibWeb/HTML/MessageEvent.idl
+++ b/Userland/Libraries/LibWeb/HTML/MessageEvent.idl
@@ -1,6 +1,7 @@
#import <DOM/Event.idl>
-[]
+// https://html.spec.whatwg.org/multipage/comms.html#messageevent
+[Exposed=(Window,Worker)]
interface MessageEvent : Event {
constructor(DOMString type, optional MessageEventInit eventInitDict = {});
diff --git a/Userland/Libraries/LibWeb/HTML/MessagePort.idl b/Userland/Libraries/LibWeb/HTML/MessagePort.idl
index 3a8a92fc7b..38b436c2da 100644
--- a/Userland/Libraries/LibWeb/HTML/MessagePort.idl
+++ b/Userland/Libraries/LibWeb/HTML/MessagePort.idl
@@ -1,6 +1,8 @@
#import <DOM/EventTarget.idl>
#import <DOM/EventHandler.idl>
+// https://html.spec.whatwg.org/multipage/web-messaging.html#messageport
+[Exposed=(Window,Worker,AudioWorklet), Transferable]
interface MessagePort : EventTarget {
undefined postMessage(any message);
diff --git a/Userland/Libraries/LibWeb/HTML/PageTransitionEvent.idl b/Userland/Libraries/LibWeb/HTML/PageTransitionEvent.idl
index 3a43880430..aba0f79320 100644
--- a/Userland/Libraries/LibWeb/HTML/PageTransitionEvent.idl
+++ b/Userland/Libraries/LibWeb/HTML/PageTransitionEvent.idl
@@ -1,5 +1,7 @@
#import <DOM/Event.idl>
+// https://html.spec.whatwg.org/multipage/browsing-the-web.html#pagetransitionevent
+[Exposed=Window]
interface PageTransitionEvent : Event {
constructor(DOMString type, optional PageTransitionEventInit eventInitDict = {});
diff --git a/Userland/Libraries/LibWeb/HTML/SubmitEvent.idl b/Userland/Libraries/LibWeb/HTML/SubmitEvent.idl
index 24b1c5780f..e408c3d74f 100644
--- a/Userland/Libraries/LibWeb/HTML/SubmitEvent.idl
+++ b/Userland/Libraries/LibWeb/HTML/SubmitEvent.idl
@@ -1,7 +1,8 @@
#import <DOM/Event.idl>
#import <HTML/HTMLElement.idl>
-[]
+// https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#submitevent
+[Exposed=Window]
interface SubmitEvent : Event {
constructor(DOMString type, optional SubmitEventInit eventInitDict = {});
diff --git a/Userland/Libraries/LibWeb/HTML/TextMetrics.idl b/Userland/Libraries/LibWeb/HTML/TextMetrics.idl
index a14300cbf1..fd7ac9d1d1 100644
--- a/Userland/Libraries/LibWeb/HTML/TextMetrics.idl
+++ b/Userland/Libraries/LibWeb/HTML/TextMetrics.idl
@@ -1,3 +1,5 @@
+// https://html.spec.whatwg.org/multipage/canvas.html#textmetrics
+[Exposed=Window]
interface TextMetrics {
// x-direction
readonly attribute double width; // advance width
diff --git a/Userland/Libraries/LibWeb/HighResolutionTime/Performance.idl b/Userland/Libraries/LibWeb/HighResolutionTime/Performance.idl
index 3a869c0382..5ed45278e0 100644
--- a/Userland/Libraries/LibWeb/HighResolutionTime/Performance.idl
+++ b/Userland/Libraries/LibWeb/HighResolutionTime/Performance.idl
@@ -1,6 +1,8 @@
#import <DOM/EventTarget.idl>
#import <NavigationTiming/PerformanceTiming.idl>
+// https://w3c.github.io/hr-time/#sec-performance
+[Exposed=(Window, Worker)]
interface Performance : EventTarget {
double now();
readonly attribute double timeOrigin;
diff --git a/Userland/Libraries/LibWeb/NavigationTiming/PerformanceTiming.idl b/Userland/Libraries/LibWeb/NavigationTiming/PerformanceTiming.idl
index e08fab360a..8fd6aee40f 100644
--- a/Userland/Libraries/LibWeb/NavigationTiming/PerformanceTiming.idl
+++ b/Userland/Libraries/LibWeb/NavigationTiming/PerformanceTiming.idl
@@ -1,3 +1,6 @@
+
+// https://w3c.github.io/navigation-timing/#dom-performancetiming
+[Exposed=Window]
interface PerformanceTiming {
readonly attribute unsigned long long navigationStart;
diff --git a/Userland/Libraries/LibWeb/RequestIdleCallback/IdleDeadline.idl b/Userland/Libraries/LibWeb/RequestIdleCallback/IdleDeadline.idl
index 0088fa3c68..2f80cdf34d 100644
--- a/Userland/Libraries/LibWeb/RequestIdleCallback/IdleDeadline.idl
+++ b/Userland/Libraries/LibWeb/RequestIdleCallback/IdleDeadline.idl
@@ -1,4 +1,6 @@
-[Exposed=Window] interface IdleDeadline {
+// https://w3c.github.io/requestidlecallback/#dom-idledeadline
+[Exposed=Window]
+interface IdleDeadline {
double timeRemaining();
readonly attribute boolean didTimeout;
diff --git a/Userland/Libraries/LibWeb/SVG/SVGAnimatedLength.idl b/Userland/Libraries/LibWeb/SVG/SVGAnimatedLength.idl
index 3f20ce712f..81dd206ca8 100644
--- a/Userland/Libraries/LibWeb/SVG/SVGAnimatedLength.idl
+++ b/Userland/Libraries/LibWeb/SVG/SVGAnimatedLength.idl
@@ -1,5 +1,7 @@
#import <SVG/SVGLength.idl>
+// https://svgwg.org/svg2-draft/types.html#InterfaceSVGAnimatedLength
+[Exposed=Window]
interface SVGAnimatedLength {
readonly attribute SVGLength baseVal;
readonly attribute SVGLength animVal;
diff --git a/Userland/Libraries/LibWeb/SVG/SVGElement.idl b/Userland/Libraries/LibWeb/SVG/SVGElement.idl
index 45f932b0b6..6e69c7bd15 100644
--- a/Userland/Libraries/LibWeb/SVG/SVGElement.idl
+++ b/Userland/Libraries/LibWeb/SVG/SVGElement.idl
@@ -2,6 +2,8 @@
#import <HTML/HTMLElement.idl>
#import <HTML/DOMStringMap.idl>
+// https://svgwg.org/svg2-draft/types.html#InterfaceSVGElement
+[Exposed=Window]
interface SVGElement : Element {
};
diff --git a/Userland/Libraries/LibWeb/SVG/SVGGeometryElement.idl b/Userland/Libraries/LibWeb/SVG/SVGGeometryElement.idl
index 047fddf84c..33b712b2a6 100644
--- a/Userland/Libraries/LibWeb/SVG/SVGGeometryElement.idl
+++ b/Userland/Libraries/LibWeb/SVG/SVGGeometryElement.idl
@@ -1,6 +1,8 @@
#import <Geometry/DOMPoint.idl>
#import <SVG/SVGGraphicsElement.idl>
+// https://svgwg.org/svg2-draft/types.html#InterfaceSVGGeometryElement
+[Exposed=Window]
interface SVGGeometryElement : SVGGraphicsElement {
float getTotalLength();
diff --git a/Userland/Libraries/LibWeb/SVG/SVGGraphicsElement.idl b/Userland/Libraries/LibWeb/SVG/SVGGraphicsElement.idl
index bd01e9c8b5..49cea98a23 100644
--- a/Userland/Libraries/LibWeb/SVG/SVGGraphicsElement.idl
+++ b/Userland/Libraries/LibWeb/SVG/SVGGraphicsElement.idl
@@ -1,5 +1,7 @@
#import <SVG/SVGElement.idl>
+// https://svgwg.org/svg2-draft/types.html#InterfaceSVGGraphicsElement
+[Exposed=Window]
interface SVGGraphicsElement : SVGElement {
};
diff --git a/Userland/Libraries/LibWeb/SVG/SVGLength.idl b/Userland/Libraries/LibWeb/SVG/SVGLength.idl
index 08e4e29e85..5924619ec6 100644
--- a/Userland/Libraries/LibWeb/SVG/SVGLength.idl
+++ b/Userland/Libraries/LibWeb/SVG/SVGLength.idl
@@ -1,3 +1,5 @@
+// https://svgwg.org/svg2-draft/types.html#InterfaceSVGLength
+[Exposed=Window]
interface SVGLength {
const unsigned short SVG_LENGTHTYPE_UNKNOWN = 0;
const unsigned short SVG_LENGTHTYPE_NUMBER = 1;
diff --git a/Userland/Libraries/LibWeb/SVG/SVGPathElement.idl b/Userland/Libraries/LibWeb/SVG/SVGPathElement.idl
index eeec8717fc..83d657a081 100644
--- a/Userland/Libraries/LibWeb/SVG/SVGPathElement.idl
+++ b/Userland/Libraries/LibWeb/SVG/SVGPathElement.idl
@@ -1,5 +1,7 @@
#import <SVG/SVGGeometryElement.idl>
+// https://svgwg.org/svg2-draft/paths.html#InterfaceSVGPathElement
+[Exposed=Window]
interface SVGPathElement : SVGGeometryElement {
};
diff --git a/Userland/Libraries/LibWeb/SVG/SVGSVGElement.idl b/Userland/Libraries/LibWeb/SVG/SVGSVGElement.idl
index 92561e6ce5..a060320b28 100644
--- a/Userland/Libraries/LibWeb/SVG/SVGSVGElement.idl
+++ b/Userland/Libraries/LibWeb/SVG/SVGSVGElement.idl
@@ -1,5 +1,7 @@
#import <SVG/SVGGraphicsElement.idl>
+// https://svgwg.org/svg2-draft/struct.html#InterfaceSVGSVGElement
+[Exposed=Window]
interface SVGSVGElement : SVGGraphicsElement {
};
diff --git a/Userland/Libraries/LibWeb/Streams/ReadableStream.idl b/Userland/Libraries/LibWeb/Streams/ReadableStream.idl
index fbe51a1825..4d18a06b7c 100644
--- a/Userland/Libraries/LibWeb/Streams/ReadableStream.idl
+++ b/Userland/Libraries/LibWeb/Streams/ReadableStream.idl
@@ -1,5 +1,6 @@
// Dummy definition so we can use ReadableStream as a type in Fetch.
// https://streams.spec.whatwg.org/#readablestream
+[Exposed=*, Transferable]
interface ReadableStream {
};
diff --git a/Userland/Libraries/LibWeb/UIEvents/MouseEvent.idl b/Userland/Libraries/LibWeb/UIEvents/MouseEvent.idl
index 330b65b898..2dd839ee9d 100644
--- a/Userland/Libraries/LibWeb/UIEvents/MouseEvent.idl
+++ b/Userland/Libraries/LibWeb/UIEvents/MouseEvent.idl
@@ -1,3 +1,5 @@
+// https://w3c.github.io/uievents/#mouseevent
+[Exposed=Window]
interface MouseEvent : UIEvent {
readonly attribute double offsetX;
diff --git a/Userland/Libraries/LibWeb/UIEvents/UIEvent.idl b/Userland/Libraries/LibWeb/UIEvents/UIEvent.idl
index 7c0fb49f8c..d79f774fa8 100644
--- a/Userland/Libraries/LibWeb/UIEvents/UIEvent.idl
+++ b/Userland/Libraries/LibWeb/UIEvents/UIEvent.idl
@@ -1,6 +1,7 @@
#import <DOM/Event.idl>
-[]
+// https://w3c.github.io/uievents/#uievent
+[Exposed=Window]
interface UIEvent : Event {
constructor(DOMString type, optional UIEventInit eventInitDict = {});
readonly attribute Window? view;
diff --git a/Userland/Libraries/LibWeb/URL/URL.idl b/Userland/Libraries/LibWeb/URL/URL.idl
index 4848173774..47b64bee7c 100644
--- a/Userland/Libraries/LibWeb/URL/URL.idl
+++ b/Userland/Libraries/LibWeb/URL/URL.idl
@@ -1,5 +1,7 @@
#import <URL/URLSearchParams.idl>
+// https://url.spec.whatwg.org/#url
+[Exposed=*, LegacyWindowAlias=webkitURL]
interface URL {
constructor(USVString url, optional USVString base);
diff --git a/Userland/Libraries/LibWeb/URL/URLSearchParams.idl b/Userland/Libraries/LibWeb/URL/URLSearchParams.idl
index b5030d004b..2ee96906b1 100644
--- a/Userland/Libraries/LibWeb/URL/URLSearchParams.idl
+++ b/Userland/Libraries/LibWeb/URL/URLSearchParams.idl
@@ -1,3 +1,5 @@
+// https://url.spec.whatwg.org/#urlsearchparams
+[Exposed=*]
interface URLSearchParams {
constructor(optional (sequence<sequence<USVString>> or record<USVString, USVString> or USVString) init = "");
diff --git a/Userland/Libraries/LibWeb/WebIDL/DOMException.idl b/Userland/Libraries/LibWeb/WebIDL/DOMException.idl
index bd7685060c..f150db7b00 100644
--- a/Userland/Libraries/LibWeb/WebIDL/DOMException.idl
+++ b/Userland/Libraries/LibWeb/WebIDL/DOMException.idl
@@ -1,3 +1,5 @@
+// https://webidl.spec.whatwg.org/#idl-DOMException
+[Exposed=*, Serializable]
interface DOMException {
constructor(optional DOMString message = "", optional DOMString name = "Error");
diff --git a/Userland/Libraries/LibWeb/WebSockets/WebSocket.idl b/Userland/Libraries/LibWeb/WebSockets/WebSocket.idl
index ebd4545e6d..7df127d950 100644
--- a/Userland/Libraries/LibWeb/WebSockets/WebSocket.idl
+++ b/Userland/Libraries/LibWeb/WebSockets/WebSocket.idl
@@ -1,6 +1,8 @@
#import <DOM/EventTarget.idl>
#import <DOM/EventHandler.idl>
+// https://websockets.spec.whatwg.org/#websocket
+[Exposed=(Window,Worker)]
interface WebSocket : EventTarget {
// FIXME: A second "protocols" argument should be added once supported
diff --git a/Userland/Libraries/LibWeb/XHR/ProgressEvent.idl b/Userland/Libraries/LibWeb/XHR/ProgressEvent.idl
index c2c1921352..169228cd20 100644
--- a/Userland/Libraries/LibWeb/XHR/ProgressEvent.idl
+++ b/Userland/Libraries/LibWeb/XHR/ProgressEvent.idl
@@ -1,6 +1,7 @@
#import <DOM/Event.idl>
-[]
+// https://xhr.spec.whatwg.org/#interface-progressevent
+[Exposed=(Window,Worker)]
interface ProgressEvent : Event {
constructor(DOMString type, optional ProgressEventInit eventInitDict = {});
diff --git a/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.idl b/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.idl
index 34c8726c7c..ca967466a9 100644
--- a/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.idl
+++ b/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.idl
@@ -11,6 +11,8 @@ enum XMLHttpRequestResponseType {
"text"
};
+// https://xhr.spec.whatwg.org/#xmlhttprequest
+[Exposed=(Window,DedicatedWorker,SharedWorker)]
interface XMLHttpRequest : XMLHttpRequestEventTarget {
constructor();
diff --git a/Userland/Libraries/LibWeb/XHR/XMLHttpRequestEventTarget.idl b/Userland/Libraries/LibWeb/XHR/XMLHttpRequestEventTarget.idl
index 90e4ab187e..d41fe85a7c 100644
--- a/Userland/Libraries/LibWeb/XHR/XMLHttpRequestEventTarget.idl
+++ b/Userland/Libraries/LibWeb/XHR/XMLHttpRequestEventTarget.idl
@@ -1,6 +1,8 @@
#import <DOM/EventTarget.idl>
#import <DOM/EventHandler.idl>
+// https://xhr.spec.whatwg.org/#xmlhttprequesteventtarget
+[Exposed=(Window,DedicatedWorker,SharedWorker)]
interface XMLHttpRequestEventTarget : EventTarget {
attribute EventHandler onloadstart;