summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Userland/Libraries/LibWeb/CSS/CSSConditionRule.idl2
-rw-r--r--Userland/Libraries/LibWeb/CSS/CSSGroupingRule.idl4
-rw-r--r--Userland/Libraries/LibWeb/CSS/CSSRuleList.idl2
-rw-r--r--Userland/Libraries/LibWeb/CSS/CSSStyleRule.idl3
-rw-r--r--Userland/Libraries/LibWeb/CSS/CSSStyleSheet.idl3
-rw-r--r--Userland/Libraries/LibWeb/CSS/MediaList.idl2
-rw-r--r--Userland/Libraries/LibWeb/CSS/MediaQueryList.idl2
-rw-r--r--Userland/Libraries/LibWeb/CSS/StyleSheet.idl4
-rw-r--r--Userland/Libraries/LibWeb/CSS/StyleSheetList.idl2
-rw-r--r--Userland/Libraries/LibWeb/Crypto/Crypto.idl2
-rw-r--r--Userland/Libraries/LibWeb/DOM/AbortController.idl2
-rw-r--r--Userland/Libraries/LibWeb/DOM/AbortSignal.idl2
-rw-r--r--Userland/Libraries/LibWeb/DOM/Attribute.idl3
-rw-r--r--Userland/Libraries/LibWeb/DOM/CharacterData.idl3
-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/Document.idl16
-rw-r--r--Userland/Libraries/LibWeb/DOM/DocumentFragment.idl5
-rw-r--r--Userland/Libraries/LibWeb/DOM/DocumentType.idl2
-rw-r--r--Userland/Libraries/LibWeb/DOM/Element.idl8
-rw-r--r--Userland/Libraries/LibWeb/DOM/Event.idl2
-rw-r--r--Userland/Libraries/LibWeb/DOM/HTMLCollection.idl2
-rw-r--r--Userland/Libraries/LibWeb/DOM/NamedNodeMap.idl2
-rw-r--r--Userland/Libraries/LibWeb/DOM/Node.idl4
-rw-r--r--Userland/Libraries/LibWeb/DOM/NodeList.idl2
-rw-r--r--Userland/Libraries/LibWeb/DOM/ProcessingInstruction.idl2
-rw-r--r--Userland/Libraries/LibWeb/DOM/Range.idl2
-rw-r--r--Userland/Libraries/LibWeb/DOM/ShadowRoot.idl2
-rw-r--r--Userland/Libraries/LibWeb/DOM/Text.idl2
-rw-r--r--Userland/Libraries/LibWeb/Geometry/DOMRect.idl2
-rw-r--r--Userland/Libraries/LibWeb/Geometry/DOMRectList.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/CanvasRenderingContext2D.idl6
-rw-r--r--Userland/Libraries/LibWeb/HTML/DOMParser.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLAreaElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLAudioElement.idl2
-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.idl3
-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.idl3
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLImageElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/HTMLInputElement.idl3
-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.idl2
-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.idl3
-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.idl6
-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.idl3
-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/MessageChannel.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/MessagePort.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/SubmitEvent.idl1
-rw-r--r--Userland/Libraries/LibWeb/HTML/WebSocket.idl2
-rw-r--r--Userland/Libraries/LibWeb/HTML/WorkerGlobalScope.idl4
-rw-r--r--Userland/Libraries/LibWeb/HighResolutionTime/Performance.idl3
-rw-r--r--Userland/Libraries/LibWeb/IntersectionObserver/IntersectionObserver.idl3
-rw-r--r--Userland/Libraries/LibWeb/ResizeObserver/ResizeObserver.idl2
-rw-r--r--Userland/Libraries/LibWeb/SVG/SVGCircleElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/SVG/SVGElement.idl3
-rw-r--r--Userland/Libraries/LibWeb/SVG/SVGEllipseElement.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/SVGLineElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/SVG/SVGPathElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/SVG/SVGPolygonElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/SVG/SVGPolylineElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/SVG/SVGRectElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/SVG/SVGSVGElement.idl2
-rw-r--r--Userland/Libraries/LibWeb/Selection/Selection.idl3
-rw-r--r--Userland/Libraries/LibWeb/URL/URL.idl2
-rw-r--r--Userland/Libraries/LibWeb/XHR/XMLHttpRequest.idl2
-rw-r--r--Userland/Libraries/LibWeb/XHR/XMLHttpRequestEventTarget.idl2
127 files changed, 303 insertions, 2 deletions
diff --git a/Userland/Libraries/LibWeb/CSS/CSSConditionRule.idl b/Userland/Libraries/LibWeb/CSS/CSSConditionRule.idl
index 3d4420cf3a..a5bbf70e27 100644
--- a/Userland/Libraries/LibWeb/CSS/CSSConditionRule.idl
+++ b/Userland/Libraries/LibWeb/CSS/CSSConditionRule.idl
@@ -1,3 +1,5 @@
+#import <CSS/CSSGroupingRule.idl>
+
interface CSSConditionRule : CSSGroupingRule {
attribute CSSOMString conditionText;
};
diff --git a/Userland/Libraries/LibWeb/CSS/CSSGroupingRule.idl b/Userland/Libraries/LibWeb/CSS/CSSGroupingRule.idl
index 6c904e0f74..9d942b4407 100644
--- a/Userland/Libraries/LibWeb/CSS/CSSGroupingRule.idl
+++ b/Userland/Libraries/LibWeb/CSS/CSSGroupingRule.idl
@@ -1,6 +1,8 @@
+#import <CSS/CSSRule.idl>
+#import <CSS/CSSRuleList.idl>
+
interface CSSGroupingRule : CSSRule {
[SameObject] readonly attribute CSSRuleList cssRules;
unsigned long insertRule(CSSOMString rule, optional unsigned long index = 0);
undefined deleteRule(unsigned long index);
};
-
diff --git a/Userland/Libraries/LibWeb/CSS/CSSRuleList.idl b/Userland/Libraries/LibWeb/CSS/CSSRuleList.idl
index 13acd35b1d..67b4a66cb7 100644
--- a/Userland/Libraries/LibWeb/CSS/CSSRuleList.idl
+++ b/Userland/Libraries/LibWeb/CSS/CSSRuleList.idl
@@ -1,3 +1,5 @@
+#import <CSS/CSSRule.idl>
+
[Exposed=Window]
interface CSSRuleList {
diff --git a/Userland/Libraries/LibWeb/CSS/CSSStyleRule.idl b/Userland/Libraries/LibWeb/CSS/CSSStyleRule.idl
index f82272d5ed..5e4708a6e6 100644
--- a/Userland/Libraries/LibWeb/CSS/CSSStyleRule.idl
+++ b/Userland/Libraries/LibWeb/CSS/CSSStyleRule.idl
@@ -1,3 +1,6 @@
+#import <CSS/CSSRule.idl>
+#import <CSS/CSSStyleDeclaration.idl>
+
interface CSSStyleRule : CSSRule {
attribute CSSOMString selectorText;
diff --git a/Userland/Libraries/LibWeb/CSS/CSSStyleSheet.idl b/Userland/Libraries/LibWeb/CSS/CSSStyleSheet.idl
index fa973a9389..f8fe8ebe51 100644
--- a/Userland/Libraries/LibWeb/CSS/CSSStyleSheet.idl
+++ b/Userland/Libraries/LibWeb/CSS/CSSStyleSheet.idl
@@ -1,3 +1,6 @@
+#import <CSS/CSSRule.idl>
+#import <CSS/CSSRuleList.idl>
+
interface CSSStyleSheet : StyleSheet {
// readonly attribute CSSRule? ownerRule;
[SameObject] readonly attribute CSSRuleList cssRules;
diff --git a/Userland/Libraries/LibWeb/CSS/MediaList.idl b/Userland/Libraries/LibWeb/CSS/MediaList.idl
index 8ab4047b51..f4fd20a209 100644
--- a/Userland/Libraries/LibWeb/CSS/MediaList.idl
+++ b/Userland/Libraries/LibWeb/CSS/MediaList.idl
@@ -1,5 +1,5 @@
interface MediaList {
- stringifier attribute [LegacyNullToEmptyString] CSSOMString mediaText;
+ [LegacyNullToEmptyString] stringifier attribute CSSOMString mediaText;
readonly attribute unsigned long length;
getter CSSOMString? item(unsigned long index);
undefined appendMedium(CSSOMString medium);
diff --git a/Userland/Libraries/LibWeb/CSS/MediaQueryList.idl b/Userland/Libraries/LibWeb/CSS/MediaQueryList.idl
index dcd72c50d8..cd8fa55119 100644
--- a/Userland/Libraries/LibWeb/CSS/MediaQueryList.idl
+++ b/Userland/Libraries/LibWeb/CSS/MediaQueryList.idl
@@ -1,3 +1,5 @@
+#import <DOM/EventTarget.idl>
+
[Exposed=Window]
interface MediaQueryList : EventTarget {
readonly attribute CSSOMString media;
diff --git a/Userland/Libraries/LibWeb/CSS/StyleSheet.idl b/Userland/Libraries/LibWeb/CSS/StyleSheet.idl
index 9faecc36d7..bf7ca4c25a 100644
--- a/Userland/Libraries/LibWeb/CSS/StyleSheet.idl
+++ b/Userland/Libraries/LibWeb/CSS/StyleSheet.idl
@@ -1,3 +1,7 @@
+#import <CSS/CSSStyleSheet.idl>
+#import <CSS/MediaList.idl>
+#import <DOM/Element.idl>
+
interface StyleSheet {
readonly attribute Element? ownerNode;
diff --git a/Userland/Libraries/LibWeb/CSS/StyleSheetList.idl b/Userland/Libraries/LibWeb/CSS/StyleSheetList.idl
index 15dc0d41f6..c617626611 100644
--- a/Userland/Libraries/LibWeb/CSS/StyleSheetList.idl
+++ b/Userland/Libraries/LibWeb/CSS/StyleSheetList.idl
@@ -1,3 +1,5 @@
+#import <CSS/CSSStyleSheet.idl>
+
[Exposed=Window]
interface StyleSheetList {
getter CSSStyleSheet? item(unsigned long index);
diff --git a/Userland/Libraries/LibWeb/Crypto/Crypto.idl b/Userland/Libraries/LibWeb/Crypto/Crypto.idl
index 8cedd797a4..0cfee5afeb 100644
--- a/Userland/Libraries/LibWeb/Crypto/Crypto.idl
+++ b/Userland/Libraries/LibWeb/Crypto/Crypto.idl
@@ -1,3 +1,5 @@
+#import <Crypto/SubtleCrypto.idl>
+
[Exposed=(Window,Worker)]
interface Crypto {
[SecureContext] readonly attribute SubtleCrypto subtle;
diff --git a/Userland/Libraries/LibWeb/DOM/AbortController.idl b/Userland/Libraries/LibWeb/DOM/AbortController.idl
index 162c3e9dc1..c8b67f8bd0 100644
--- a/Userland/Libraries/LibWeb/DOM/AbortController.idl
+++ b/Userland/Libraries/LibWeb/DOM/AbortController.idl
@@ -1,3 +1,5 @@
+#import <DOM/AbortSignal.idl>
+
[Exposed=(Window,Worker)]
interface AbortController {
constructor();
diff --git a/Userland/Libraries/LibWeb/DOM/AbortSignal.idl b/Userland/Libraries/LibWeb/DOM/AbortSignal.idl
index 902626de92..82b26fd5e6 100644
--- a/Userland/Libraries/LibWeb/DOM/AbortSignal.idl
+++ b/Userland/Libraries/LibWeb/DOM/AbortSignal.idl
@@ -1,3 +1,5 @@
+#import <DOM/EventTarget.idl>
+
[Exposed=(Window,Worker), CustomVisit]
interface AbortSignal : EventTarget {
// FIXME: [NewObject] static AbortSignal abort(optional any reason);
diff --git a/Userland/Libraries/LibWeb/DOM/Attribute.idl b/Userland/Libraries/LibWeb/DOM/Attribute.idl
index 8b15866a3f..e5ecb4d40d 100644
--- a/Userland/Libraries/LibWeb/DOM/Attribute.idl
+++ b/Userland/Libraries/LibWeb/DOM/Attribute.idl
@@ -1,3 +1,6 @@
+#import <DOM/Node.idl>
+#import <DOM/Element.idl>
+
[Exposed=Window]
interface Attribute : Node {
readonly attribute DOMString? namespaceURI;
diff --git a/Userland/Libraries/LibWeb/DOM/CharacterData.idl b/Userland/Libraries/LibWeb/DOM/CharacterData.idl
index c3aaf8e816..a9c7590526 100644
--- a/Userland/Libraries/LibWeb/DOM/CharacterData.idl
+++ b/Userland/Libraries/LibWeb/DOM/CharacterData.idl
@@ -1,3 +1,6 @@
+#import <DOM/Element.idl>
+#import <DOM/Node.idl>
+
interface CharacterData : Node {
[LegacyNullToEmptyString] attribute DOMString data;
diff --git a/Userland/Libraries/LibWeb/DOM/Comment.idl b/Userland/Libraries/LibWeb/DOM/Comment.idl
index df107d1d6f..57ddb278b1 100644
--- a/Userland/Libraries/LibWeb/DOM/Comment.idl
+++ b/Userland/Libraries/LibWeb/DOM/Comment.idl
@@ -1,3 +1,5 @@
+#import <DOM/CharacterData.idl>
+
interface Comment : CharacterData {
constructor(optional DOMString data = "");
};
diff --git a/Userland/Libraries/LibWeb/DOM/DOMImplementation.idl b/Userland/Libraries/LibWeb/DOM/DOMImplementation.idl
index 40a35fd271..9ac200c546 100644
--- a/Userland/Libraries/LibWeb/DOM/DOMImplementation.idl
+++ b/Userland/Libraries/LibWeb/DOM/DOMImplementation.idl
@@ -1,3 +1,5 @@
+#import <DOM/Document.idl>
+
interface DOMImplementation {
// FIXME: This is missing "optional DocumentType? doctype = null" at the end.
diff --git a/Userland/Libraries/LibWeb/DOM/Document.idl b/Userland/Libraries/LibWeb/DOM/Document.idl
index cad5c23d26..90913d04c6 100644
--- a/Userland/Libraries/LibWeb/DOM/Document.idl
+++ b/Userland/Libraries/LibWeb/DOM/Document.idl
@@ -1,3 +1,19 @@
+#import <CSS/StyleSheetList.idl>
+#import <DOM/Comment.idl>
+#import <DOM/DOMImplementation.idl>
+#import <DOM/DocumentFragment.idl>
+#import <DOM/DocumentType.idl>
+#import <DOM/Element.idl>
+#import <DOM/Event.idl>
+#import <DOM/HTMLCollection.idl>
+#import <DOM/Node.idl>
+#import <DOM/NodeList.idl>
+#import <DOM/Range.idl>
+#import <DOM/Text.idl>
+#import <HTML/HTMLElement.idl>
+#import <HTML/HTMLHeadElement.idl>
+#import <HTML/HTMLScriptElement.idl>
+
interface Document : Node {
constructor();
diff --git a/Userland/Libraries/LibWeb/DOM/DocumentFragment.idl b/Userland/Libraries/LibWeb/DOM/DocumentFragment.idl
index 2735e9c70c..fcee29e72c 100644
--- a/Userland/Libraries/LibWeb/DOM/DocumentFragment.idl
+++ b/Userland/Libraries/LibWeb/DOM/DocumentFragment.idl
@@ -1,3 +1,8 @@
+#import <DOM/Element.idl>
+#import <DOM/HTMLCollection.idl>
+#import <DOM/Node.idl>
+#import <DOM/NodeList.idl>
+
interface DocumentFragment : Node {
constructor();
diff --git a/Userland/Libraries/LibWeb/DOM/DocumentType.idl b/Userland/Libraries/LibWeb/DOM/DocumentType.idl
index 2485d2431a..bc1c622f5b 100644
--- a/Userland/Libraries/LibWeb/DOM/DocumentType.idl
+++ b/Userland/Libraries/LibWeb/DOM/DocumentType.idl
@@ -1,3 +1,5 @@
+#import <DOM/Node.idl>
+
interface DocumentType : Node {
readonly attribute DOMString name;
diff --git a/Userland/Libraries/LibWeb/DOM/Element.idl b/Userland/Libraries/LibWeb/DOM/Element.idl
index 0569653dd0..31ad2666aa 100644
--- a/Userland/Libraries/LibWeb/DOM/Element.idl
+++ b/Userland/Libraries/LibWeb/DOM/Element.idl
@@ -1,3 +1,11 @@
+#import <DOM/DOMTokenList.idl>
+#import <DOM/NamedNodeMap.idl>
+#import <DOM/Node.idl>
+#import <DOM/NodeList.idl>
+#import <Geometry/DOMRect.idl>
+#import <Geometry/DOMRectList.idl>
+#import <CSS/CSSStyleDeclaration.idl>
+
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 5e10b94a02..803cd7015e 100644
--- a/Userland/Libraries/LibWeb/DOM/Event.idl
+++ b/Userland/Libraries/LibWeb/DOM/Event.idl
@@ -1,3 +1,5 @@
+#import <DOM/EventTarget.idl>
+
interface Event {
constructor(DOMString type, optional EventInit eventInitDict = {});
diff --git a/Userland/Libraries/LibWeb/DOM/HTMLCollection.idl b/Userland/Libraries/LibWeb/DOM/HTMLCollection.idl
index ab641f6bf6..0bcf02221c 100644
--- a/Userland/Libraries/LibWeb/DOM/HTMLCollection.idl
+++ b/Userland/Libraries/LibWeb/DOM/HTMLCollection.idl
@@ -1,3 +1,5 @@
+#import <DOM/Element.idl>
+
[Exposed=Window, LegacyUnenumerableNamedProperties]
interface HTMLCollection {
diff --git a/Userland/Libraries/LibWeb/DOM/NamedNodeMap.idl b/Userland/Libraries/LibWeb/DOM/NamedNodeMap.idl
index 68f889a5bb..eee7762de3 100644
--- a/Userland/Libraries/LibWeb/DOM/NamedNodeMap.idl
+++ b/Userland/Libraries/LibWeb/DOM/NamedNodeMap.idl
@@ -1,3 +1,5 @@
+#import <DOM/Attribute.idl>
+
[Exposed=Window, LegacyUnenumerableNamedProperties]
interface NamedNodeMap {
readonly attribute unsigned long length;
diff --git a/Userland/Libraries/LibWeb/DOM/Node.idl b/Userland/Libraries/LibWeb/DOM/Node.idl
index 7e069f39d7..a25bfb6d81 100644
--- a/Userland/Libraries/LibWeb/DOM/Node.idl
+++ b/Userland/Libraries/LibWeb/DOM/Node.idl
@@ -1,3 +1,7 @@
+#import <DOM/Document.idl>
+#import <DOM/Element.idl>
+#import <DOM/EventTarget.idl>
+
interface Node : EventTarget {
readonly attribute unsigned short nodeType;
diff --git a/Userland/Libraries/LibWeb/DOM/NodeList.idl b/Userland/Libraries/LibWeb/DOM/NodeList.idl
index b6b26d347b..8a4fa5a3aa 100644
--- a/Userland/Libraries/LibWeb/DOM/NodeList.idl
+++ b/Userland/Libraries/LibWeb/DOM/NodeList.idl
@@ -1,3 +1,5 @@
+#import <DOM/Node.idl>
+
[Exposed=Window]
interface NodeList {
getter Node? item(unsigned long index);
diff --git a/Userland/Libraries/LibWeb/DOM/ProcessingInstruction.idl b/Userland/Libraries/LibWeb/DOM/ProcessingInstruction.idl
index 05a3761045..459f4da625 100644
--- a/Userland/Libraries/LibWeb/DOM/ProcessingInstruction.idl
+++ b/Userland/Libraries/LibWeb/DOM/ProcessingInstruction.idl
@@ -1,3 +1,5 @@
+#import <DOM/CharacterData.idl>
+
interface ProcessingInstruction : CharacterData {
readonly attribute DOMString target;
};
diff --git a/Userland/Libraries/LibWeb/DOM/Range.idl b/Userland/Libraries/LibWeb/DOM/Range.idl
index eeafe5d841..bcc49c2796 100644
--- a/Userland/Libraries/LibWeb/DOM/Range.idl
+++ b/Userland/Libraries/LibWeb/DOM/Range.idl
@@ -1,3 +1,5 @@
+#import <DOM/Node.idl>
+
interface Range {
constructor();
diff --git a/Userland/Libraries/LibWeb/DOM/ShadowRoot.idl b/Userland/Libraries/LibWeb/DOM/ShadowRoot.idl
index ea228c9aa8..769bf4b3ac 100644
--- a/Userland/Libraries/LibWeb/DOM/ShadowRoot.idl
+++ b/Userland/Libraries/LibWeb/DOM/ShadowRoot.idl
@@ -1,3 +1,5 @@
+#import <DOM/DocumentFragment.idl>
+
interface ShadowRoot : DocumentFragment {
readonly attribute DOMString mode;
diff --git a/Userland/Libraries/LibWeb/DOM/Text.idl b/Userland/Libraries/LibWeb/DOM/Text.idl
index 86c6a8d52c..f6556bf1fc 100644
--- a/Userland/Libraries/LibWeb/DOM/Text.idl
+++ b/Userland/Libraries/LibWeb/DOM/Text.idl
@@ -1,3 +1,5 @@
+#import <DOM/CharacterData.idl>
+
interface Text : CharacterData {
constructor(optional DOMString data = "");
};
diff --git a/Userland/Libraries/LibWeb/Geometry/DOMRect.idl b/Userland/Libraries/LibWeb/Geometry/DOMRect.idl
index de5ad59fb7..01e3777f8f 100644
--- a/Userland/Libraries/LibWeb/Geometry/DOMRect.idl
+++ b/Userland/Libraries/LibWeb/Geometry/DOMRect.idl
@@ -1,3 +1,5 @@
+#import <Geometry/DOMRectReadOnly.idl>
+
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/DOMRectList.idl b/Userland/Libraries/LibWeb/Geometry/DOMRectList.idl
index c5bdda867d..a46eaae847 100644
--- a/Userland/Libraries/LibWeb/Geometry/DOMRectList.idl
+++ b/Userland/Libraries/LibWeb/Geometry/DOMRectList.idl
@@ -1,3 +1,5 @@
+#import <Geometry/DOMRect.idl>
+
[Exposed=Window]
interface DOMRectList {
getter DOMRect? item(unsigned long index);
diff --git a/Userland/Libraries/LibWeb/HTML/CanvasRenderingContext2D.idl b/Userland/Libraries/LibWeb/HTML/CanvasRenderingContext2D.idl
index eafba2c79c..3a6b84125c 100644
--- a/Userland/Libraries/LibWeb/HTML/CanvasRenderingContext2D.idl
+++ b/Userland/Libraries/LibWeb/HTML/CanvasRenderingContext2D.idl
@@ -1,3 +1,9 @@
+#import <HTML/HTMLCanvasElement.idl>
+#import <HTML/HTMLImageElement.idl>
+#import <HTML/ImageData.idl>
+#import <HTML/TextMetrics.idl>
+#import <HTML/CanvasGradient.idl>
+
interface CanvasRenderingContext2D {
undefined fillRect(double x, double y, double w, double h);
diff --git a/Userland/Libraries/LibWeb/HTML/DOMParser.idl b/Userland/Libraries/LibWeb/HTML/DOMParser.idl
index 276076359f..b30d46bc1e 100644
--- a/Userland/Libraries/LibWeb/HTML/DOMParser.idl
+++ b/Userland/Libraries/LibWeb/HTML/DOMParser.idl
@@ -1,3 +1,5 @@
+#import <DOM/Document.idl>
+
interface DOMParser {
constructor();
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.idl
index 0f28114c10..a8a707c7f3 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLAnchorElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLAnchorElement : HTMLElement {
[Reflect] attribute DOMString target;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLAreaElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLAreaElement.idl
index 318cddeb1f..91c388bdf2 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLAreaElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLAreaElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLAreaElement : HTMLElement {
[Reflect=nohref] attribute boolean noHref;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLAudioElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLAudioElement.idl
index c56ca47938..ab158202b7 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLAudioElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLAudioElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLMediaElement.idl>
+
interface HTMLAudioElement : HTMLMediaElement {
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLBRElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLBRElement.idl
index a71383c890..f939749018 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLBRElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLBRElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLBRElement : HTMLElement {
[Reflect] attribute DOMString clear;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLBaseElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLBaseElement.idl
index 868e4a84a4..6e227d64b9 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLBaseElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLBaseElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLBaseElement : HTMLElement {
[Reflect] attribute DOMString target;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLBodyElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLBodyElement.idl
index dcd0b4d753..bf24c5727f 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLBodyElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLBodyElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
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 7e50852e64..f49a3be315 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLButtonElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLButtonElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
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 50a3cb8b15..1ff0f64a46 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLCanvasElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLCanvasElement.idl
@@ -1,3 +1,6 @@
+#import <HTML/CanvasRenderingContext2D.idl>
+#import <HTML/HTMLElement.idl>
+
interface HTMLCanvasElement : HTMLElement {
CanvasRenderingContext2D? getContext(DOMString contextId);
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLDListElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLDListElement.idl
index 16b3b881ac..d925a36109 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLDListElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLDListElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLDListElement : HTMLElement {
[Reflect] attribute boolean compact;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLDataElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLDataElement.idl
index 4edce306fa..12844eef03 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLDataElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLDataElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLDataElement : HTMLElement {
[Reflect] attribute DOMString value;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLDataListElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLDataListElement.idl
index c9383448e4..eb0e96babc 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLDataListElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLDataListElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLDataListElement : HTMLElement {
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLDetailsElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLDetailsElement.idl
index 2b0daa6c7f..078bc84d3c 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLDetailsElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLDetailsElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLDetailsElement : HTMLElement {
[Reflect] attribute boolean open;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLDialogElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLDialogElement.idl
index 0d37547ed3..6e669c3193 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLDialogElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLDialogElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLDialogElement : HTMLElement {
[Reflect] attribute boolean open;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLDirectoryElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLDirectoryElement.idl
index 9adb6ad670..999ecc41c3 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLDirectoryElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLDirectoryElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLDirectoryElement : HTMLElement {
[Reflect] attribute boolean compact;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLDivElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLDivElement.idl
index bb5cfba9b4..7d3c5d3abe 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLDivElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLDivElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLDivElement : HTMLElement {
[Reflect] attribute DOMString align;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLElement.idl
index 41c8643d3f..8b5518ef1e 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/DOMStringMap.idl>
+
interface HTMLElement : Element {
[Reflect] attribute DOMString title;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLEmbedElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLEmbedElement.idl
index 5eb48b3509..c6dd8618c7 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLEmbedElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLEmbedElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLEmbedElement : HTMLElement {
[Reflect] attribute DOMString src;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLFieldSetElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLFieldSetElement.idl
index 4901c8aae8..9ae9092002 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLFieldSetElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLFieldSetElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLFieldSetElement : HTMLElement {
readonly attribute DOMString type;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLFontElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLFontElement.idl
index 578e313ed0..63e37c511c 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLFontElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLFontElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
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 81d4fe37f4..b29a0f29a0 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLFormElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLFormElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLFormElement : HTMLElement {
[Reflect] attribute DOMString name;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLFrameElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLFrameElement.idl
index e1092ce79e..92b2512a4c 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLFrameElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLFrameElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLFrameElement : HTMLElement {
[Reflect] attribute DOMString name;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLFrameSetElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLFrameSetElement.idl
index abf5699ec4..996c734d7b 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLFrameSetElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLFrameSetElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLFrameSetElement : HTMLElement {
[Reflect] attribute DOMString cols;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLHRElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLHRElement.idl
index 5cfd1e700e..c47d34fff7 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLHRElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLHRElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLHRElement : HTMLElement {
[Reflect] attribute DOMString align;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLHeadElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLHeadElement.idl
index 8730e7c1e4..4a374458d0 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLHeadElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLHeadElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLHeadElement : HTMLElement {
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLHeadingElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLHeadingElement.idl
index fa3d5a4ed7..269834f97a 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLHeadingElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLHeadingElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLHeadingElement : HTMLElement {
[Reflect] attribute DOMString align;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLHtmlElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLHtmlElement.idl
index dad97564c8..97544a5879 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLHtmlElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLHtmlElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLHtmlElement : HTMLElement {
[Reflect] attribute DOMString version;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLIFrameElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLIFrameElement.idl
index 9384c134a0..d0c8f9ef9b 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLIFrameElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLIFrameElement.idl
@@ -1,3 +1,6 @@
+#import <HTML/HTMLElement.idl>
+#import <DOM/Document.idl>
+
interface HTMLIFrameElement : HTMLElement {
[Reflect] attribute DOMString src;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLImageElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLImageElement.idl
index d0d4330a9a..5e8d6f508d 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLImageElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLImageElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLImageElement : HTMLElement {
[Reflect] attribute DOMString src;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLInputElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLInputElement.idl
index d9a982e2b6..b8ed3705df 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLInputElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLInputElement.idl
@@ -1,3 +1,6 @@
+#import <HTML/HTMLElement.idl>
+#import <HTML/HTMLFormElement.idl>
+
interface HTMLInputElement : HTMLElement {
readonly attribute HTMLFormElement? form;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLLIElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLLIElement.idl
index 9330aa88b1..54d7017b9e 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLLIElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLLIElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLLIElement : HTMLElement {
[Reflect] attribute DOMString type;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLLabelElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLLabelElement.idl
index bbddd2052f..610a117daf 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLLabelElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLLabelElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
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 49ee03cd21..be8a331a0a 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLLegendElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLLegendElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLLegendElement : HTMLElement {
[Reflect] attribute DOMString align;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLLinkElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLLinkElement.idl
index e1999c74b8..69f2fc5a88 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLLinkElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLLinkElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLLinkElement : HTMLElement {
[Reflect] attribute DOMString href;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLMapElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLMapElement.idl
index 636a96f8a5..4eea1b5fc3 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLMapElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLMapElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLMapElement : HTMLElement {
[Reflect] attribute DOMString name;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLMarqueeElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLMarqueeElement.idl
index ae258866f0..b58dd0e52c 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLMarqueeElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLMarqueeElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLMarqueeElement : HTMLElement {
[Reflect] attribute DOMString behavior;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.idl
index dda7615580..6b0c8012bb 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLMediaElement : HTMLElement {
[Reflect] attribute DOMString src;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLMenuElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLMenuElement.idl
index f9dc7ed7a0..cfed488680 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLMenuElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLMenuElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLMenuElement : HTMLElement {
[Reflect] attribute boolean compact;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLMetaElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLMetaElement.idl
index de1868b65c..34e4a8f586 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLMetaElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLMetaElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLMetaElement : HTMLElement {
[Reflect] attribute DOMString name;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLMeterElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLMeterElement.idl
index 72f6c1d4fe..713f3690a5 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLMeterElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLMeterElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLMeterElement : HTMLElement {
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLModElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLModElement.idl
index 8e3a489fa4..0edb621078 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLModElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLModElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLModElement : HTMLElement {
[Reflect] attribute DOMString cite;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLOListElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLOListElement.idl
index c81faf9c0e..5e494b5723 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLOListElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLOListElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLOListElement : HTMLElement {
[Reflect] attribute boolean reversed;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLObjectElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLObjectElement.idl
index 3c5790bcc5..8f668043be 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLObjectElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLObjectElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLObjectElement : HTMLElement {
[Reflect] attribute DOMString data;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLOptGroupElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLOptGroupElement.idl
index d442091b1a..e88f553279 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLOptGroupElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLOptGroupElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLOptGroupElement : HTMLElement {
[Reflect] attribute boolean disabled;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLOptionElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLOptionElement.idl
index 96dcaec548..4708c4d980 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLOptionElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLOptionElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLOptionElement : HTMLElement {
[Reflect] attribute boolean disabled;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLOutputElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLOutputElement.idl
index 94c45e99f3..f8f5dbb8e3 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLOutputElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLOutputElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLOutputElement : HTMLElement {
readonly attribute DOMString type;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLParagraphElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLParagraphElement.idl
index e1248da905..cd3b3f221d 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLParagraphElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLParagraphElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLParagraphElement : HTMLElement {
[Reflect] attribute DOMString align;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLParamElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLParamElement.idl
index a848fc5364..b4630af8ac 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLParamElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLParamElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLParamElement : HTMLElement {
[Reflect] attribute DOMString name;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLPictureElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLPictureElement.idl
index 9bd6cefe16..5b6ecb335a 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLPictureElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLPictureElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLPictureElement : HTMLElement {
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLPreElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLPreElement.idl
index 27a0404ba5..cc7cc33d0d 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLPreElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLPreElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLPreElement : HTMLElement {
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLProgressElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLProgressElement.idl
index 1d00f9b3fc..cabd26a136 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLProgressElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLProgressElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLProgressElement : HTMLElement {
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLQuoteElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLQuoteElement.idl
index 390074f746..8133ce5892 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLQuoteElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLQuoteElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLQuoteElement : HTMLElement {
[Reflect] attribute DOMString cite;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLScriptElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLScriptElement.idl
index 36eb5ccd2e..6571a9f3c7 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLScriptElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLScriptElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLScriptElement : HTMLElement {
[Reflect] attribute DOMString src;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLSelectElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLSelectElement.idl
index 808db0b45f..ddbfc31f69 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLSelectElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLSelectElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLSelectElement : HTMLElement {
[Reflect] attribute boolean disabled;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLSlotElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLSlotElement.idl
index 04dc7a7111..fbe2aab5ce 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLSlotElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLSlotElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLSlotElement : HTMLElement {
[Reflect] attribute DOMString name;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLSourceElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLSourceElement.idl
index 5496d55a1a..4d94c99eca 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLSourceElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLSourceElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLSourceElement : HTMLElement {
[Reflect] attribute DOMString src;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLSpanElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLSpanElement.idl
index a87dda0eb7..c43f4c0df3 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLSpanElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLSpanElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLSpanElement : HTMLElement {
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLStyleElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLStyleElement.idl
index bab3c4d8ab..322862742f 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLStyleElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLStyleElement.idl
@@ -1,3 +1,6 @@
+#import <CSS/CSSStyleSheet.idl>
+#import <HTML/HTMLElement.idl>
+
interface HTMLStyleElement : HTMLElement {
[Reflect] attribute DOMString media;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTableCaptionElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTableCaptionElement.idl
index 97d9419ccf..0c9983a836 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTableCaptionElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTableCaptionElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLTableCaptionElement : HTMLElement {
[Reflect] attribute DOMString align;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTableCellElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTableCellElement.idl
index bcf8f1a04a..8c13607b04 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTableCellElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTableCellElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLTableCellElement : HTMLElement {
[Reflect] attribute DOMString headers;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTableColElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTableColElement.idl
index d76f0da76b..41533248a3 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTableColElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTableColElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLTableColElement : HTMLElement {
[Reflect] attribute DOMString align;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTableElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTableElement.idl
index b0813555f4..2e1adf1a40 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTableElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTableElement.idl
@@ -1,3 +1,9 @@
+#import <HTML/HTMLElement.idl>
+#import <HTML/HTMLTableCaptionElement.idl>
+#import <HTML/HTMLTableRowElement.idl>
+#import <HTML/HTMLTableSectionElement.idl>
+#import <DOM/HTMLCollection.idl>
+
interface HTMLTableElement : HTMLElement {
attribute HTMLTableCaptionElement? caption;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTableRowElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTableRowElement.idl
index 1b999948f4..0b97272bc1 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTableRowElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTableRowElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLTableRowElement : HTMLElement {
[Reflect] attribute DOMString align;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTableSectionElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTableSectionElement.idl
index 4201411b8c..c7c678ab01 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTableSectionElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTableSectionElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLTableSectionElement : HTMLElement {
[Reflect] attribute DOMString align;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTemplateElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTemplateElement.idl
index efbbc57e02..02da460923 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTemplateElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTemplateElement.idl
@@ -1,3 +1,6 @@
+#import <DOM/DocumentFragment.idl>
+#import <HTML/HTMLElement.idl>
+
interface HTMLTemplateElement : HTMLElement {
readonly attribute DocumentFragment content;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTextAreaElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTextAreaElement.idl
index 878cc67db0..7f5978187b 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTextAreaElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTextAreaElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLTextAreaElement : HTMLElement {
[Reflect] attribute DOMString placeholder;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTimeElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTimeElement.idl
index f82d1e1aea..52334d5a1f 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTimeElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTimeElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
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 6cfbc9ef29..c8c74378a5 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTitleElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTitleElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLTitleElement : HTMLElement {
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTrackElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLTrackElement.idl
index d58d662cb0..3e1a0296e3 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTrackElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTrackElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLTrackElement : HTMLElement {
[Reflect] attribute DOMString src;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLUListElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLUListElement.idl
index 6490a6d5c8..26fe12d55f 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLUListElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLUListElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLUListElement : HTMLElement {
[Reflect] attribute boolean compact;
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLUnknownElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLUnknownElement.idl
index 7a6672d4f4..6b15e11700 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLUnknownElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLUnknownElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLElement.idl>
+
interface HTMLUnknownElement : HTMLElement {
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLVideoElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLVideoElement.idl
index 6fb6ba3a50..9c3a52cce7 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLVideoElement.idl
+++ b/Userland/Libraries/LibWeb/HTML/HTMLVideoElement.idl
@@ -1,3 +1,5 @@
+#import <HTML/HTMLMediaElement.idl>
+
interface HTMLVideoElement : HTMLMediaElement {
[Reflect] attribute DOMString poster;
diff --git a/Userland/Libraries/LibWeb/HTML/MessageChannel.idl b/Userland/Libraries/LibWeb/HTML/MessageChannel.idl
index 22cd3cb5a2..f1dfc346dc 100644
--- a/Userland/Libraries/LibWeb/HTML/MessageChannel.idl
+++ b/Userland/Libraries/LibWeb/HTML/MessageChannel.idl
@@ -1,3 +1,5 @@
+#import <HTML/MessagePort.idl>
+
interface MessageChannel {
constructor();
diff --git a/Userland/Libraries/LibWeb/HTML/MessagePort.idl b/Userland/Libraries/LibWeb/HTML/MessagePort.idl
index ca5e4b49a4..af03a2ce83 100644
--- a/Userland/Libraries/LibWeb/HTML/MessagePort.idl
+++ b/Userland/Libraries/LibWeb/HTML/MessagePort.idl
@@ -1,3 +1,5 @@
+#import <DOM/EventTarget.idl>
+
interface MessagePort : EventTarget {
undefined postMessage(any message);
diff --git a/Userland/Libraries/LibWeb/HTML/SubmitEvent.idl b/Userland/Libraries/LibWeb/HTML/SubmitEvent.idl
index 30254534eb..cf04698fc4 100644
--- a/Userland/Libraries/LibWeb/HTML/SubmitEvent.idl
+++ b/Userland/Libraries/LibWeb/HTML/SubmitEvent.idl
@@ -1,4 +1,5 @@
#import <DOM/Event.idl>
+#import <HTML/HTMLElement.idl>
interface SubmitEvent : Event {
constructor(DOMString type, optional SubmitEventInit eventInitDict = {});
diff --git a/Userland/Libraries/LibWeb/HTML/WebSocket.idl b/Userland/Libraries/LibWeb/HTML/WebSocket.idl
index 80f0fbde53..8457b84da6 100644
--- a/Userland/Libraries/LibWeb/HTML/WebSocket.idl
+++ b/Userland/Libraries/LibWeb/HTML/WebSocket.idl
@@ -1,3 +1,5 @@
+#import <DOM/EventTarget.idl>
+
interface WebSocket : EventTarget {
// FIXME: A second "protocols" argument should be added once supported
diff --git a/Userland/Libraries/LibWeb/HTML/WorkerGlobalScope.idl b/Userland/Libraries/LibWeb/HTML/WorkerGlobalScope.idl
index d827dc315a..04117e1d4c 100644
--- a/Userland/Libraries/LibWeb/HTML/WorkerGlobalScope.idl
+++ b/Userland/Libraries/LibWeb/HTML/WorkerGlobalScope.idl
@@ -1,3 +1,7 @@
+#import <DOM/EventTarget.idl>
+#import <HTML/WorkerLocation.idl>
+#import <HTML/WorkerNavigator.idl>
+
[Exposed=Worker]
interface WorkerGlobalScope : EventTarget {
readonly attribute WorkerGlobalScope self;
diff --git a/Userland/Libraries/LibWeb/HighResolutionTime/Performance.idl b/Userland/Libraries/LibWeb/HighResolutionTime/Performance.idl
index 278bffde4b..3a869c0382 100644
--- a/Userland/Libraries/LibWeb/HighResolutionTime/Performance.idl
+++ b/Userland/Libraries/LibWeb/HighResolutionTime/Performance.idl
@@ -1,3 +1,6 @@
+#import <DOM/EventTarget.idl>
+#import <NavigationTiming/PerformanceTiming.idl>
+
interface Performance : EventTarget {
double now();
readonly attribute double timeOrigin;
diff --git a/Userland/Libraries/LibWeb/IntersectionObserver/IntersectionObserver.idl b/Userland/Libraries/LibWeb/IntersectionObserver/IntersectionObserver.idl
index 651a9fce17..c5d2a4bbfc 100644
--- a/Userland/Libraries/LibWeb/IntersectionObserver/IntersectionObserver.idl
+++ b/Userland/Libraries/LibWeb/IntersectionObserver/IntersectionObserver.idl
@@ -1,3 +1,6 @@
+#import <DOM/Element.idl>
+#import <DOM/Node.idl>
+
[Exposed=(Window)]
interface IntersectionObserver {
// FIXME: Should be: IntersectionObserverCallback
diff --git a/Userland/Libraries/LibWeb/ResizeObserver/ResizeObserver.idl b/Userland/Libraries/LibWeb/ResizeObserver/ResizeObserver.idl
index 868ad4612d..68d0be6c67 100644
--- a/Userland/Libraries/LibWeb/ResizeObserver/ResizeObserver.idl
+++ b/Userland/Libraries/LibWeb/ResizeObserver/ResizeObserver.idl
@@ -1,3 +1,5 @@
+#import <DOM/Element.idl>
+
[Exposed=(Window)]
interface ResizeObserver {
diff --git a/Userland/Libraries/LibWeb/SVG/SVGCircleElement.idl b/Userland/Libraries/LibWeb/SVG/SVGCircleElement.idl
index 5866cbaeff..0e28614626 100644
--- a/Userland/Libraries/LibWeb/SVG/SVGCircleElement.idl
+++ b/Userland/Libraries/LibWeb/SVG/SVGCircleElement.idl
@@ -1,3 +1,5 @@
+#import <SVG/SVGGeometryElement.idl>
+
[Exposed=Window]
interface SVGCircleElement : SVGGeometryElement {
// [SameObject] readonly attribute SVGAnimatedLength cx;
diff --git a/Userland/Libraries/LibWeb/SVG/SVGElement.idl b/Userland/Libraries/LibWeb/SVG/SVGElement.idl
index 3729757766..cf448f6693 100644
--- a/Userland/Libraries/LibWeb/SVG/SVGElement.idl
+++ b/Userland/Libraries/LibWeb/SVG/SVGElement.idl
@@ -1,3 +1,6 @@
+#import <DOM/Element.idl>
+#import <HTML/DOMStringMap.idl>
+
interface SVGElement : Element {
// FIXME: This should come from a HTMLOrSVGElement mixin
[SameObject] readonly attribute DOMStringMap dataset;
diff --git a/Userland/Libraries/LibWeb/SVG/SVGEllipseElement.idl b/Userland/Libraries/LibWeb/SVG/SVGEllipseElement.idl
index 876435ca05..4fa0a60261 100644
--- a/Userland/Libraries/LibWeb/SVG/SVGEllipseElement.idl
+++ b/Userland/Libraries/LibWeb/SVG/SVGEllipseElement.idl
@@ -1,3 +1,5 @@
+#import <SVG/SVGGeometryElement.idl>
+
[Exposed=Window]
interface SVGEllipseElement : SVGGeometryElement {
// [SameObject] readonly attribute SVGAnimatedLength cx;
diff --git a/Userland/Libraries/LibWeb/SVG/SVGGeometryElement.idl b/Userland/Libraries/LibWeb/SVG/SVGGeometryElement.idl
index bd64356c71..437cc278eb 100644
--- a/Userland/Libraries/LibWeb/SVG/SVGGeometryElement.idl
+++ b/Userland/Libraries/LibWeb/SVG/SVGGeometryElement.idl
@@ -1,3 +1,5 @@
+#import <SVG/SVGGraphicsElement.idl>
+
interface SVGGeometryElement : SVGGraphicsElement {
};
diff --git a/Userland/Libraries/LibWeb/SVG/SVGGraphicsElement.idl b/Userland/Libraries/LibWeb/SVG/SVGGraphicsElement.idl
index 9636176dd0..bd01e9c8b5 100644
--- a/Userland/Libraries/LibWeb/SVG/SVGGraphicsElement.idl
+++ b/Userland/Libraries/LibWeb/SVG/SVGGraphicsElement.idl
@@ -1,3 +1,5 @@
+#import <SVG/SVGElement.idl>
+
interface SVGGraphicsElement : SVGElement {
};
diff --git a/Userland/Libraries/LibWeb/SVG/SVGLineElement.idl b/Userland/Libraries/LibWeb/SVG/SVGLineElement.idl
index 97a8bd6171..76f38a7201 100644
--- a/Userland/Libraries/LibWeb/SVG/SVGLineElement.idl
+++ b/Userland/Libraries/LibWeb/SVG/SVGLineElement.idl
@@ -1,3 +1,5 @@
+#import <SVG/SVGGeometryElement.idl>
+
[Exposed=Window]
interface SVGLineElement : SVGGeometryElement {
// [SameObject] readonly attribute SVGAnimatedLength x1;
diff --git a/Userland/Libraries/LibWeb/SVG/SVGPathElement.idl b/Userland/Libraries/LibWeb/SVG/SVGPathElement.idl
index d0c195bf25..eeec8717fc 100644
--- a/Userland/Libraries/LibWeb/SVG/SVGPathElement.idl
+++ b/Userland/Libraries/LibWeb/SVG/SVGPathElement.idl
@@ -1,3 +1,5 @@
+#import <SVG/SVGGeometryElement.idl>
+
interface SVGPathElement : SVGGeometryElement {
};
diff --git a/Userland/Libraries/LibWeb/SVG/SVGPolygonElement.idl b/Userland/Libraries/LibWeb/SVG/SVGPolygonElement.idl
index 58f7a16af4..9e2707ec06 100644
--- a/Userland/Libraries/LibWeb/SVG/SVGPolygonElement.idl
+++ b/Userland/Libraries/LibWeb/SVG/SVGPolygonElement.idl
@@ -1,3 +1,5 @@
+#import <SVG/SVGGeometryElement.idl>
+
[Exposed=Window]
interface SVGPolygonElement : SVGGeometryElement {
};
diff --git a/Userland/Libraries/LibWeb/SVG/SVGPolylineElement.idl b/Userland/Libraries/LibWeb/SVG/SVGPolylineElement.idl
index d0f10a6585..85457683b6 100644
--- a/Userland/Libraries/LibWeb/SVG/SVGPolylineElement.idl
+++ b/Userland/Libraries/LibWeb/SVG/SVGPolylineElement.idl
@@ -1,3 +1,5 @@
+#import <SVG/SVGGeometryElement.idl>
+
[Exposed=Window]
interface SVGPolylineElement : SVGGeometryElement {
};
diff --git a/Userland/Libraries/LibWeb/SVG/SVGRectElement.idl b/Userland/Libraries/LibWeb/SVG/SVGRectElement.idl
index 40544b7f0b..801742b95d 100644
--- a/Userland/Libraries/LibWeb/SVG/SVGRectElement.idl
+++ b/Userland/Libraries/LibWeb/SVG/SVGRectElement.idl
@@ -1,3 +1,5 @@
+#import <SVG/SVGGeometryElement.idl>
+
[Exposed=Window]
interface SVGRectElement : SVGGeometryElement {
// [SameObject] readonly attribute SVGAnimatedLength x;
diff --git a/Userland/Libraries/LibWeb/SVG/SVGSVGElement.idl b/Userland/Libraries/LibWeb/SVG/SVGSVGElement.idl
index 7182cc2389..92561e6ce5 100644
--- a/Userland/Libraries/LibWeb/SVG/SVGSVGElement.idl
+++ b/Userland/Libraries/LibWeb/SVG/SVGSVGElement.idl
@@ -1,3 +1,5 @@
+#import <SVG/SVGGraphicsElement.idl>
+
interface SVGSVGElement : SVGGraphicsElement {
};
diff --git a/Userland/Libraries/LibWeb/Selection/Selection.idl b/Userland/Libraries/LibWeb/Selection/Selection.idl
index 96a9b37a68..c783f029ce 100644
--- a/Userland/Libraries/LibWeb/Selection/Selection.idl
+++ b/Userland/Libraries/LibWeb/Selection/Selection.idl
@@ -1,3 +1,6 @@
+#import <DOM/Node.idl>
+#import <DOM/Range.idl>
+
[Exposed=Window]
interface Selection {
diff --git a/Userland/Libraries/LibWeb/URL/URL.idl b/Userland/Libraries/LibWeb/URL/URL.idl
index 1ad7f2ba18..4848173774 100644
--- a/Userland/Libraries/LibWeb/URL/URL.idl
+++ b/Userland/Libraries/LibWeb/URL/URL.idl
@@ -1,3 +1,5 @@
+#import <URL/URLSearchParams.idl>
+
interface URL {
constructor(USVString url, optional USVString base);
diff --git a/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.idl b/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.idl
index 2665660032..b0de53a340 100644
--- a/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.idl
+++ b/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.idl
@@ -1,3 +1,5 @@
+#import <XHR/XMLHttpRequestEventTarget.idl>
+
enum XMLHttpRequestResponseType {
"",
"arraybuffer",
diff --git a/Userland/Libraries/LibWeb/XHR/XMLHttpRequestEventTarget.idl b/Userland/Libraries/LibWeb/XHR/XMLHttpRequestEventTarget.idl
index ed61c70bae..1bedd16034 100644
--- a/Userland/Libraries/LibWeb/XHR/XMLHttpRequestEventTarget.idl
+++ b/Userland/Libraries/LibWeb/XHR/XMLHttpRequestEventTarget.idl
@@ -1,3 +1,5 @@
+#import <DOM/EventTarget.idl>
+
interface XMLHttpRequestEventTarget : EventTarget {
attribute EventHandler onloadstart;