summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;