WindowObjectHelper.h 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545
  1. /*
  2. * Copyright (c) 2021-2022, Andreas Kling <kling@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. // FIXME: Find a way to generate all of this
  8. #include <LibWeb/Bindings/AbortControllerConstructor.h>
  9. #include <LibWeb/Bindings/AbortControllerPrototype.h>
  10. #include <LibWeb/Bindings/AbortSignalConstructor.h>
  11. #include <LibWeb/Bindings/AbortSignalPrototype.h>
  12. #include <LibWeb/Bindings/AbstractRangeConstructor.h>
  13. #include <LibWeb/Bindings/AbstractRangePrototype.h>
  14. #include <LibWeb/Bindings/AudioConstructor.h>
  15. #include <LibWeb/Bindings/CDATASectionConstructor.h>
  16. #include <LibWeb/Bindings/CDATASectionPrototype.h>
  17. #include <LibWeb/Bindings/CSSConditionRuleConstructor.h>
  18. #include <LibWeb/Bindings/CSSConditionRulePrototype.h>
  19. #include <LibWeb/Bindings/CSSFontFaceRuleConstructor.h>
  20. #include <LibWeb/Bindings/CSSFontFaceRulePrototype.h>
  21. #include <LibWeb/Bindings/CSSGroupingRuleConstructor.h>
  22. #include <LibWeb/Bindings/CSSGroupingRulePrototype.h>
  23. #include <LibWeb/Bindings/CSSImportRuleConstructor.h>
  24. #include <LibWeb/Bindings/CSSImportRulePrototype.h>
  25. #include <LibWeb/Bindings/CSSMediaRuleConstructor.h>
  26. #include <LibWeb/Bindings/CSSMediaRulePrototype.h>
  27. #include <LibWeb/Bindings/CSSRuleConstructor.h>
  28. #include <LibWeb/Bindings/CSSRuleListConstructor.h>
  29. #include <LibWeb/Bindings/CSSRuleListPrototype.h>
  30. #include <LibWeb/Bindings/CSSRulePrototype.h>
  31. #include <LibWeb/Bindings/CSSStyleDeclarationConstructor.h>
  32. #include <LibWeb/Bindings/CSSStyleDeclarationPrototype.h>
  33. #include <LibWeb/Bindings/CSSStyleRuleConstructor.h>
  34. #include <LibWeb/Bindings/CSSStyleRulePrototype.h>
  35. #include <LibWeb/Bindings/CSSStyleSheetConstructor.h>
  36. #include <LibWeb/Bindings/CSSStyleSheetPrototype.h>
  37. #include <LibWeb/Bindings/CSSSupportsRuleConstructor.h>
  38. #include <LibWeb/Bindings/CSSSupportsRulePrototype.h>
  39. #include <LibWeb/Bindings/CanvasGradientConstructor.h>
  40. #include <LibWeb/Bindings/CanvasGradientPrototype.h>
  41. #include <LibWeb/Bindings/CanvasRenderingContext2DConstructor.h>
  42. #include <LibWeb/Bindings/CanvasRenderingContext2DPrototype.h>
  43. #include <LibWeb/Bindings/CharacterDataConstructor.h>
  44. #include <LibWeb/Bindings/CharacterDataPrototype.h>
  45. #include <LibWeb/Bindings/CloseEventConstructor.h>
  46. #include <LibWeb/Bindings/CloseEventPrototype.h>
  47. #include <LibWeb/Bindings/CommentConstructor.h>
  48. #include <LibWeb/Bindings/CommentPrototype.h>
  49. #include <LibWeb/Bindings/CryptoConstructor.h>
  50. #include <LibWeb/Bindings/CryptoPrototype.h>
  51. #include <LibWeb/Bindings/CustomEventConstructor.h>
  52. #include <LibWeb/Bindings/CustomEventPrototype.h>
  53. #include <LibWeb/Bindings/DOMExceptionConstructor.h>
  54. #include <LibWeb/Bindings/DOMExceptionPrototype.h>
  55. #include <LibWeb/Bindings/DOMImplementationConstructor.h>
  56. #include <LibWeb/Bindings/DOMImplementationPrototype.h>
  57. #include <LibWeb/Bindings/DOMParserConstructor.h>
  58. #include <LibWeb/Bindings/DOMParserPrototype.h>
  59. #include <LibWeb/Bindings/DOMRectConstructor.h>
  60. #include <LibWeb/Bindings/DOMRectListConstructor.h>
  61. #include <LibWeb/Bindings/DOMRectListPrototype.h>
  62. #include <LibWeb/Bindings/DOMRectPrototype.h>
  63. #include <LibWeb/Bindings/DOMRectReadOnlyConstructor.h>
  64. #include <LibWeb/Bindings/DOMRectReadOnlyPrototype.h>
  65. #include <LibWeb/Bindings/DOMStringMapConstructor.h>
  66. #include <LibWeb/Bindings/DOMStringMapPrototype.h>
  67. #include <LibWeb/Bindings/DocumentConstructor.h>
  68. #include <LibWeb/Bindings/DocumentFragmentConstructor.h>
  69. #include <LibWeb/Bindings/DocumentFragmentPrototype.h>
  70. #include <LibWeb/Bindings/DocumentPrototype.h>
  71. #include <LibWeb/Bindings/DocumentTypeConstructor.h>
  72. #include <LibWeb/Bindings/DocumentTypePrototype.h>
  73. #include <LibWeb/Bindings/ElementConstructor.h>
  74. #include <LibWeb/Bindings/ElementPrototype.h>
  75. #include <LibWeb/Bindings/ErrorEventConstructor.h>
  76. #include <LibWeb/Bindings/ErrorEventPrototype.h>
  77. #include <LibWeb/Bindings/EventConstructor.h>
  78. #include <LibWeb/Bindings/EventPrototype.h>
  79. #include <LibWeb/Bindings/EventTargetConstructor.h>
  80. #include <LibWeb/Bindings/EventTargetPrototype.h>
  81. #include <LibWeb/Bindings/FocusEventConstructor.h>
  82. #include <LibWeb/Bindings/FocusEventPrototype.h>
  83. #include <LibWeb/Bindings/HTMLAnchorElementConstructor.h>
  84. #include <LibWeb/Bindings/HTMLAnchorElementPrototype.h>
  85. #include <LibWeb/Bindings/HTMLAreaElementConstructor.h>
  86. #include <LibWeb/Bindings/HTMLAreaElementPrototype.h>
  87. #include <LibWeb/Bindings/HTMLAudioElementConstructor.h>
  88. #include <LibWeb/Bindings/HTMLAudioElementPrototype.h>
  89. #include <LibWeb/Bindings/HTMLBRElementConstructor.h>
  90. #include <LibWeb/Bindings/HTMLBRElementPrototype.h>
  91. #include <LibWeb/Bindings/HTMLBaseElementConstructor.h>
  92. #include <LibWeb/Bindings/HTMLBaseElementPrototype.h>
  93. #include <LibWeb/Bindings/HTMLBodyElementConstructor.h>
  94. #include <LibWeb/Bindings/HTMLBodyElementPrototype.h>
  95. #include <LibWeb/Bindings/HTMLButtonElementConstructor.h>
  96. #include <LibWeb/Bindings/HTMLButtonElementPrototype.h>
  97. #include <LibWeb/Bindings/HTMLCanvasElementConstructor.h>
  98. #include <LibWeb/Bindings/HTMLCanvasElementPrototype.h>
  99. #include <LibWeb/Bindings/HTMLCollectionConstructor.h>
  100. #include <LibWeb/Bindings/HTMLCollectionPrototype.h>
  101. #include <LibWeb/Bindings/HTMLDListElementConstructor.h>
  102. #include <LibWeb/Bindings/HTMLDListElementPrototype.h>
  103. #include <LibWeb/Bindings/HTMLDataElementConstructor.h>
  104. #include <LibWeb/Bindings/HTMLDataElementPrototype.h>
  105. #include <LibWeb/Bindings/HTMLDataListElementConstructor.h>
  106. #include <LibWeb/Bindings/HTMLDataListElementPrototype.h>
  107. #include <LibWeb/Bindings/HTMLDetailsElementConstructor.h>
  108. #include <LibWeb/Bindings/HTMLDetailsElementPrototype.h>
  109. #include <LibWeb/Bindings/HTMLDialogElementConstructor.h>
  110. #include <LibWeb/Bindings/HTMLDialogElementPrototype.h>
  111. #include <LibWeb/Bindings/HTMLDirectoryElementConstructor.h>
  112. #include <LibWeb/Bindings/HTMLDirectoryElementPrototype.h>
  113. #include <LibWeb/Bindings/HTMLDivElementConstructor.h>
  114. #include <LibWeb/Bindings/HTMLDivElementPrototype.h>
  115. #include <LibWeb/Bindings/HTMLElementConstructor.h>
  116. #include <LibWeb/Bindings/HTMLElementPrototype.h>
  117. #include <LibWeb/Bindings/HTMLEmbedElementConstructor.h>
  118. #include <LibWeb/Bindings/HTMLEmbedElementPrototype.h>
  119. #include <LibWeb/Bindings/HTMLFieldSetElementConstructor.h>
  120. #include <LibWeb/Bindings/HTMLFieldSetElementPrototype.h>
  121. #include <LibWeb/Bindings/HTMLFontElementConstructor.h>
  122. #include <LibWeb/Bindings/HTMLFontElementPrototype.h>
  123. #include <LibWeb/Bindings/HTMLFormElementConstructor.h>
  124. #include <LibWeb/Bindings/HTMLFormElementPrototype.h>
  125. #include <LibWeb/Bindings/HTMLFrameElementConstructor.h>
  126. #include <LibWeb/Bindings/HTMLFrameElementPrototype.h>
  127. #include <LibWeb/Bindings/HTMLFrameSetElementConstructor.h>
  128. #include <LibWeb/Bindings/HTMLFrameSetElementPrototype.h>
  129. #include <LibWeb/Bindings/HTMLHRElementConstructor.h>
  130. #include <LibWeb/Bindings/HTMLHRElementPrototype.h>
  131. #include <LibWeb/Bindings/HTMLHeadElementConstructor.h>
  132. #include <LibWeb/Bindings/HTMLHeadElementPrototype.h>
  133. #include <LibWeb/Bindings/HTMLHeadingElementConstructor.h>
  134. #include <LibWeb/Bindings/HTMLHeadingElementPrototype.h>
  135. #include <LibWeb/Bindings/HTMLHtmlElementConstructor.h>
  136. #include <LibWeb/Bindings/HTMLHtmlElementPrototype.h>
  137. #include <LibWeb/Bindings/HTMLIFrameElementConstructor.h>
  138. #include <LibWeb/Bindings/HTMLIFrameElementPrototype.h>
  139. #include <LibWeb/Bindings/HTMLImageElementConstructor.h>
  140. #include <LibWeb/Bindings/HTMLImageElementPrototype.h>
  141. #include <LibWeb/Bindings/HTMLInputElementConstructor.h>
  142. #include <LibWeb/Bindings/HTMLInputElementPrototype.h>
  143. #include <LibWeb/Bindings/HTMLLIElementConstructor.h>
  144. #include <LibWeb/Bindings/HTMLLIElementPrototype.h>
  145. #include <LibWeb/Bindings/HTMLLabelElementConstructor.h>
  146. #include <LibWeb/Bindings/HTMLLabelElementPrototype.h>
  147. #include <LibWeb/Bindings/HTMLLegendElementConstructor.h>
  148. #include <LibWeb/Bindings/HTMLLegendElementPrototype.h>
  149. #include <LibWeb/Bindings/HTMLLinkElementConstructor.h>
  150. #include <LibWeb/Bindings/HTMLLinkElementPrototype.h>
  151. #include <LibWeb/Bindings/HTMLMapElementConstructor.h>
  152. #include <LibWeb/Bindings/HTMLMapElementPrototype.h>
  153. #include <LibWeb/Bindings/HTMLMarqueeElementConstructor.h>
  154. #include <LibWeb/Bindings/HTMLMarqueeElementPrototype.h>
  155. #include <LibWeb/Bindings/HTMLMediaElementConstructor.h>
  156. #include <LibWeb/Bindings/HTMLMediaElementPrototype.h>
  157. #include <LibWeb/Bindings/HTMLMenuElementConstructor.h>
  158. #include <LibWeb/Bindings/HTMLMenuElementPrototype.h>
  159. #include <LibWeb/Bindings/HTMLMetaElementConstructor.h>
  160. #include <LibWeb/Bindings/HTMLMetaElementPrototype.h>
  161. #include <LibWeb/Bindings/HTMLMeterElementConstructor.h>
  162. #include <LibWeb/Bindings/HTMLMeterElementPrototype.h>
  163. #include <LibWeb/Bindings/HTMLModElementConstructor.h>
  164. #include <LibWeb/Bindings/HTMLModElementPrototype.h>
  165. #include <LibWeb/Bindings/HTMLOListElementConstructor.h>
  166. #include <LibWeb/Bindings/HTMLOListElementPrototype.h>
  167. #include <LibWeb/Bindings/HTMLObjectElementConstructor.h>
  168. #include <LibWeb/Bindings/HTMLObjectElementPrototype.h>
  169. #include <LibWeb/Bindings/HTMLOptGroupElementConstructor.h>
  170. #include <LibWeb/Bindings/HTMLOptGroupElementPrototype.h>
  171. #include <LibWeb/Bindings/HTMLOptionElementConstructor.h>
  172. #include <LibWeb/Bindings/HTMLOptionElementPrototype.h>
  173. #include <LibWeb/Bindings/HTMLOptionsCollectionConstructor.h>
  174. #include <LibWeb/Bindings/HTMLOptionsCollectionPrototype.h>
  175. #include <LibWeb/Bindings/HTMLOutputElementConstructor.h>
  176. #include <LibWeb/Bindings/HTMLOutputElementPrototype.h>
  177. #include <LibWeb/Bindings/HTMLParagraphElementConstructor.h>
  178. #include <LibWeb/Bindings/HTMLParagraphElementPrototype.h>
  179. #include <LibWeb/Bindings/HTMLParamElementConstructor.h>
  180. #include <LibWeb/Bindings/HTMLParamElementPrototype.h>
  181. #include <LibWeb/Bindings/HTMLPictureElementConstructor.h>
  182. #include <LibWeb/Bindings/HTMLPictureElementPrototype.h>
  183. #include <LibWeb/Bindings/HTMLPreElementConstructor.h>
  184. #include <LibWeb/Bindings/HTMLPreElementPrototype.h>
  185. #include <LibWeb/Bindings/HTMLProgressElementConstructor.h>
  186. #include <LibWeb/Bindings/HTMLProgressElementPrototype.h>
  187. #include <LibWeb/Bindings/HTMLQuoteElementConstructor.h>
  188. #include <LibWeb/Bindings/HTMLQuoteElementPrototype.h>
  189. #include <LibWeb/Bindings/HTMLScriptElementConstructor.h>
  190. #include <LibWeb/Bindings/HTMLScriptElementPrototype.h>
  191. #include <LibWeb/Bindings/HTMLSelectElementConstructor.h>
  192. #include <LibWeb/Bindings/HTMLSelectElementPrototype.h>
  193. #include <LibWeb/Bindings/HTMLSlotElementConstructor.h>
  194. #include <LibWeb/Bindings/HTMLSlotElementPrototype.h>
  195. #include <LibWeb/Bindings/HTMLSourceElementConstructor.h>
  196. #include <LibWeb/Bindings/HTMLSourceElementPrototype.h>
  197. #include <LibWeb/Bindings/HTMLSpanElementConstructor.h>
  198. #include <LibWeb/Bindings/HTMLSpanElementPrototype.h>
  199. #include <LibWeb/Bindings/HTMLStyleElementConstructor.h>
  200. #include <LibWeb/Bindings/HTMLStyleElementPrototype.h>
  201. #include <LibWeb/Bindings/HTMLTableCaptionElementConstructor.h>
  202. #include <LibWeb/Bindings/HTMLTableCaptionElementPrototype.h>
  203. #include <LibWeb/Bindings/HTMLTableCellElementConstructor.h>
  204. #include <LibWeb/Bindings/HTMLTableCellElementPrototype.h>
  205. #include <LibWeb/Bindings/HTMLTableColElementConstructor.h>
  206. #include <LibWeb/Bindings/HTMLTableColElementPrototype.h>
  207. #include <LibWeb/Bindings/HTMLTableElementConstructor.h>
  208. #include <LibWeb/Bindings/HTMLTableElementPrototype.h>
  209. #include <LibWeb/Bindings/HTMLTableRowElementConstructor.h>
  210. #include <LibWeb/Bindings/HTMLTableRowElementPrototype.h>
  211. #include <LibWeb/Bindings/HTMLTableSectionElementConstructor.h>
  212. #include <LibWeb/Bindings/HTMLTableSectionElementPrototype.h>
  213. #include <LibWeb/Bindings/HTMLTemplateElementConstructor.h>
  214. #include <LibWeb/Bindings/HTMLTemplateElementPrototype.h>
  215. #include <LibWeb/Bindings/HTMLTextAreaElementConstructor.h>
  216. #include <LibWeb/Bindings/HTMLTextAreaElementPrototype.h>
  217. #include <LibWeb/Bindings/HTMLTimeElementConstructor.h>
  218. #include <LibWeb/Bindings/HTMLTimeElementPrototype.h>
  219. #include <LibWeb/Bindings/HTMLTitleElementConstructor.h>
  220. #include <LibWeb/Bindings/HTMLTitleElementPrototype.h>
  221. #include <LibWeb/Bindings/HTMLTrackElementConstructor.h>
  222. #include <LibWeb/Bindings/HTMLTrackElementPrototype.h>
  223. #include <LibWeb/Bindings/HTMLUListElementConstructor.h>
  224. #include <LibWeb/Bindings/HTMLUListElementPrototype.h>
  225. #include <LibWeb/Bindings/HTMLUnknownElementConstructor.h>
  226. #include <LibWeb/Bindings/HTMLUnknownElementPrototype.h>
  227. #include <LibWeb/Bindings/HTMLVideoElementConstructor.h>
  228. #include <LibWeb/Bindings/HTMLVideoElementPrototype.h>
  229. #include <LibWeb/Bindings/HistoryConstructor.h>
  230. #include <LibWeb/Bindings/HistoryPrototype.h>
  231. #include <LibWeb/Bindings/IdleDeadlineConstructor.h>
  232. #include <LibWeb/Bindings/IdleDeadlinePrototype.h>
  233. #include <LibWeb/Bindings/ImageConstructor.h>
  234. #include <LibWeb/Bindings/ImageDataConstructor.h>
  235. #include <LibWeb/Bindings/ImageDataPrototype.h>
  236. #include <LibWeb/Bindings/IntersectionObserverConstructor.h>
  237. #include <LibWeb/Bindings/IntersectionObserverPrototype.h>
  238. #include <LibWeb/Bindings/KeyboardEventConstructor.h>
  239. #include <LibWeb/Bindings/KeyboardEventPrototype.h>
  240. #include <LibWeb/Bindings/LocationConstructor.h>
  241. #include <LibWeb/Bindings/LocationPrototype.h>
  242. #include <LibWeb/Bindings/MediaListConstructor.h>
  243. #include <LibWeb/Bindings/MediaListPrototype.h>
  244. #include <LibWeb/Bindings/MediaQueryListConstructor.h>
  245. #include <LibWeb/Bindings/MediaQueryListEventConstructor.h>
  246. #include <LibWeb/Bindings/MediaQueryListEventPrototype.h>
  247. #include <LibWeb/Bindings/MediaQueryListPrototype.h>
  248. #include <LibWeb/Bindings/MessageChannelConstructor.h>
  249. #include <LibWeb/Bindings/MessageChannelPrototype.h>
  250. #include <LibWeb/Bindings/MessageEventConstructor.h>
  251. #include <LibWeb/Bindings/MessageEventPrototype.h>
  252. #include <LibWeb/Bindings/MouseEventConstructor.h>
  253. #include <LibWeb/Bindings/MouseEventPrototype.h>
  254. #include <LibWeb/Bindings/NavigatorConstructor.h>
  255. #include <LibWeb/Bindings/NavigatorPrototype.h>
  256. #include <LibWeb/Bindings/NodeConstructor.h>
  257. #include <LibWeb/Bindings/NodeIteratorConstructor.h>
  258. #include <LibWeb/Bindings/NodeIteratorPrototype.h>
  259. #include <LibWeb/Bindings/NodeListConstructor.h>
  260. #include <LibWeb/Bindings/NodeListPrototype.h>
  261. #include <LibWeb/Bindings/NodePrototype.h>
  262. #include <LibWeb/Bindings/OptionConstructor.h>
  263. #include <LibWeb/Bindings/PageTransitionEventConstructor.h>
  264. #include <LibWeb/Bindings/PageTransitionEventPrototype.h>
  265. #include <LibWeb/Bindings/PerformanceConstructor.h>
  266. #include <LibWeb/Bindings/PerformancePrototype.h>
  267. #include <LibWeb/Bindings/PerformanceTimingConstructor.h>
  268. #include <LibWeb/Bindings/PerformanceTimingPrototype.h>
  269. #include <LibWeb/Bindings/ProcessingInstructionConstructor.h>
  270. #include <LibWeb/Bindings/ProcessingInstructionPrototype.h>
  271. #include <LibWeb/Bindings/ProgressEventConstructor.h>
  272. #include <LibWeb/Bindings/ProgressEventPrototype.h>
  273. #include <LibWeb/Bindings/PromiseRejectionEventConstructor.h>
  274. #include <LibWeb/Bindings/PromiseRejectionEventPrototype.h>
  275. #include <LibWeb/Bindings/RangeConstructor.h>
  276. #include <LibWeb/Bindings/RangePrototype.h>
  277. #include <LibWeb/Bindings/ResizeObserverConstructor.h>
  278. #include <LibWeb/Bindings/ResizeObserverPrototype.h>
  279. #include <LibWeb/Bindings/SVGCircleElementConstructor.h>
  280. #include <LibWeb/Bindings/SVGCircleElementPrototype.h>
  281. #include <LibWeb/Bindings/SVGClipPathElementConstructor.h>
  282. #include <LibWeb/Bindings/SVGClipPathElementPrototype.h>
  283. #include <LibWeb/Bindings/SVGDefsElementConstructor.h>
  284. #include <LibWeb/Bindings/SVGDefsElementPrototype.h>
  285. #include <LibWeb/Bindings/SVGElementConstructor.h>
  286. #include <LibWeb/Bindings/SVGElementPrototype.h>
  287. #include <LibWeb/Bindings/SVGEllipseElementConstructor.h>
  288. #include <LibWeb/Bindings/SVGEllipseElementPrototype.h>
  289. #include <LibWeb/Bindings/SVGGeometryElementConstructor.h>
  290. #include <LibWeb/Bindings/SVGGeometryElementPrototype.h>
  291. #include <LibWeb/Bindings/SVGGraphicsElementConstructor.h>
  292. #include <LibWeb/Bindings/SVGGraphicsElementPrototype.h>
  293. #include <LibWeb/Bindings/SVGLineElementConstructor.h>
  294. #include <LibWeb/Bindings/SVGLineElementPrototype.h>
  295. #include <LibWeb/Bindings/SVGPathElementConstructor.h>
  296. #include <LibWeb/Bindings/SVGPathElementPrototype.h>
  297. #include <LibWeb/Bindings/SVGPolygonElementConstructor.h>
  298. #include <LibWeb/Bindings/SVGPolygonElementPrototype.h>
  299. #include <LibWeb/Bindings/SVGPolylineElementConstructor.h>
  300. #include <LibWeb/Bindings/SVGPolylineElementPrototype.h>
  301. #include <LibWeb/Bindings/SVGRectElementConstructor.h>
  302. #include <LibWeb/Bindings/SVGRectElementPrototype.h>
  303. #include <LibWeb/Bindings/SVGSVGElementConstructor.h>
  304. #include <LibWeb/Bindings/SVGSVGElementPrototype.h>
  305. #include <LibWeb/Bindings/SVGTextContentElementConstructor.h>
  306. #include <LibWeb/Bindings/SVGTextContentElementPrototype.h>
  307. #include <LibWeb/Bindings/ScreenConstructor.h>
  308. #include <LibWeb/Bindings/ScreenPrototype.h>
  309. #include <LibWeb/Bindings/SelectionConstructor.h>
  310. #include <LibWeb/Bindings/SelectionPrototype.h>
  311. #include <LibWeb/Bindings/ShadowRootConstructor.h>
  312. #include <LibWeb/Bindings/ShadowRootPrototype.h>
  313. #include <LibWeb/Bindings/StaticRangeConstructor.h>
  314. #include <LibWeb/Bindings/StaticRangePrototype.h>
  315. #include <LibWeb/Bindings/StorageConstructor.h>
  316. #include <LibWeb/Bindings/StoragePrototype.h>
  317. #include <LibWeb/Bindings/StyleSheetConstructor.h>
  318. #include <LibWeb/Bindings/StyleSheetListConstructor.h>
  319. #include <LibWeb/Bindings/StyleSheetListPrototype.h>
  320. #include <LibWeb/Bindings/StyleSheetPrototype.h>
  321. #include <LibWeb/Bindings/SubmitEventConstructor.h>
  322. #include <LibWeb/Bindings/SubmitEventPrototype.h>
  323. #include <LibWeb/Bindings/SubtleCryptoConstructor.h>
  324. #include <LibWeb/Bindings/SubtleCryptoPrototype.h>
  325. #include <LibWeb/Bindings/TextConstructor.h>
  326. #include <LibWeb/Bindings/TextDecoderConstructor.h>
  327. #include <LibWeb/Bindings/TextDecoderPrototype.h>
  328. #include <LibWeb/Bindings/TextEncoderConstructor.h>
  329. #include <LibWeb/Bindings/TextEncoderPrototype.h>
  330. #include <LibWeb/Bindings/TextMetricsConstructor.h>
  331. #include <LibWeb/Bindings/TextMetricsPrototype.h>
  332. #include <LibWeb/Bindings/TextPrototype.h>
  333. #include <LibWeb/Bindings/TreeWalkerConstructor.h>
  334. #include <LibWeb/Bindings/TreeWalkerPrototype.h>
  335. #include <LibWeb/Bindings/UIEventConstructor.h>
  336. #include <LibWeb/Bindings/UIEventPrototype.h>
  337. #include <LibWeb/Bindings/URLConstructor.h>
  338. #include <LibWeb/Bindings/URLPrototype.h>
  339. #include <LibWeb/Bindings/URLSearchParamsConstructor.h>
  340. #include <LibWeb/Bindings/URLSearchParamsPrototype.h>
  341. #include <LibWeb/Bindings/WebGLContextEventConstructor.h>
  342. #include <LibWeb/Bindings/WebGLContextEventPrototype.h>
  343. #include <LibWeb/Bindings/WebGLRenderingContextConstructor.h>
  344. #include <LibWeb/Bindings/WebGLRenderingContextPrototype.h>
  345. #include <LibWeb/Bindings/WebSocketConstructor.h>
  346. #include <LibWeb/Bindings/WebSocketPrototype.h>
  347. #include <LibWeb/Bindings/WindowConstructor.h>
  348. #include <LibWeb/Bindings/WindowPrototype.h>
  349. #include <LibWeb/Bindings/WorkerConstructor.h>
  350. #include <LibWeb/Bindings/WorkerPrototype.h>
  351. #include <LibWeb/Bindings/XMLHttpRequestConstructor.h>
  352. #include <LibWeb/Bindings/XMLHttpRequestEventTargetConstructor.h>
  353. #include <LibWeb/Bindings/XMLHttpRequestEventTargetPrototype.h>
  354. #include <LibWeb/Bindings/XMLHttpRequestPrototype.h>
  355. #define ADD_WINDOW_OBJECT_CONSTRUCTOR_AND_PROTOTYPE(interface_name, constructor_name, prototype_name) \
  356. { \
  357. auto& constructor = ensure_web_constructor<constructor_name>(#interface_name); \
  358. constructor.define_direct_property(vm.names.name, js_string(vm, #interface_name), JS::Attribute::Configurable); \
  359. auto& prototype = ensure_web_prototype<prototype_name>(#interface_name); \
  360. prototype.define_direct_property(vm.names.constructor, &constructor, JS::Attribute::Writable | JS::Attribute::Configurable); \
  361. }
  362. #define ADD_WINDOW_OBJECT_INTERFACE(interface_name) \
  363. ADD_WINDOW_OBJECT_CONSTRUCTOR_AND_PROTOTYPE(interface_name, interface_name##Constructor, interface_name##Prototype)
  364. #define ADD_WINDOW_OBJECT_INTERFACES \
  365. auto& vm = this->vm(); \
  366. ADD_WINDOW_OBJECT_INTERFACE(AbortController) \
  367. ADD_WINDOW_OBJECT_INTERFACE(AbortSignal) \
  368. ADD_WINDOW_OBJECT_INTERFACE(AbstractRange) \
  369. ADD_WINDOW_OBJECT_INTERFACE(CDATASection) \
  370. ADD_WINDOW_OBJECT_INTERFACE(CSSConditionRule) \
  371. ADD_WINDOW_OBJECT_INTERFACE(CSSFontFaceRule) \
  372. ADD_WINDOW_OBJECT_INTERFACE(CSSGroupingRule) \
  373. ADD_WINDOW_OBJECT_INTERFACE(CSSImportRule) \
  374. ADD_WINDOW_OBJECT_INTERFACE(CSSMediaRule) \
  375. ADD_WINDOW_OBJECT_INTERFACE(CSSRule) \
  376. ADD_WINDOW_OBJECT_INTERFACE(CSSRuleList) \
  377. ADD_WINDOW_OBJECT_INTERFACE(CSSStyleDeclaration) \
  378. ADD_WINDOW_OBJECT_INTERFACE(CSSStyleRule) \
  379. ADD_WINDOW_OBJECT_INTERFACE(CSSStyleSheet) \
  380. ADD_WINDOW_OBJECT_INTERFACE(CSSSupportsRule) \
  381. ADD_WINDOW_OBJECT_INTERFACE(CanvasGradient) \
  382. ADD_WINDOW_OBJECT_INTERFACE(CanvasRenderingContext2D) \
  383. ADD_WINDOW_OBJECT_INTERFACE(CharacterData) \
  384. ADD_WINDOW_OBJECT_INTERFACE(CloseEvent) \
  385. ADD_WINDOW_OBJECT_INTERFACE(Comment) \
  386. ADD_WINDOW_OBJECT_INTERFACE(Crypto) \
  387. ADD_WINDOW_OBJECT_INTERFACE(CustomEvent) \
  388. ADD_WINDOW_OBJECT_INTERFACE(DocumentFragment) \
  389. ADD_WINDOW_OBJECT_INTERFACE(Document) \
  390. ADD_WINDOW_OBJECT_INTERFACE(DocumentType) \
  391. ADD_WINDOW_OBJECT_INTERFACE(DOMException) \
  392. ADD_WINDOW_OBJECT_INTERFACE(DOMImplementation) \
  393. ADD_WINDOW_OBJECT_INTERFACE(DOMParser) \
  394. ADD_WINDOW_OBJECT_INTERFACE(DOMRect) \
  395. ADD_WINDOW_OBJECT_INTERFACE(DOMRectList) \
  396. ADD_WINDOW_OBJECT_INTERFACE(DOMRectReadOnly) \
  397. ADD_WINDOW_OBJECT_INTERFACE(DOMStringMap) \
  398. ADD_WINDOW_OBJECT_INTERFACE(Element) \
  399. ADD_WINDOW_OBJECT_INTERFACE(ErrorEvent) \
  400. ADD_WINDOW_OBJECT_INTERFACE(Event) \
  401. ADD_WINDOW_OBJECT_INTERFACE(EventTarget) \
  402. ADD_WINDOW_OBJECT_INTERFACE(History) \
  403. ADD_WINDOW_OBJECT_INTERFACE(HTMLAnchorElement) \
  404. ADD_WINDOW_OBJECT_INTERFACE(HTMLAreaElement) \
  405. ADD_WINDOW_OBJECT_INTERFACE(HTMLAudioElement) \
  406. ADD_WINDOW_OBJECT_INTERFACE(HTMLBaseElement) \
  407. ADD_WINDOW_OBJECT_INTERFACE(HTMLBodyElement) \
  408. ADD_WINDOW_OBJECT_INTERFACE(HTMLBRElement) \
  409. ADD_WINDOW_OBJECT_INTERFACE(HTMLButtonElement) \
  410. ADD_WINDOW_OBJECT_INTERFACE(HTMLCanvasElement) \
  411. ADD_WINDOW_OBJECT_INTERFACE(HTMLCollection) \
  412. ADD_WINDOW_OBJECT_INTERFACE(HTMLDataElement) \
  413. ADD_WINDOW_OBJECT_INTERFACE(HTMLDataListElement) \
  414. ADD_WINDOW_OBJECT_INTERFACE(HTMLDetailsElement) \
  415. ADD_WINDOW_OBJECT_INTERFACE(HTMLDialogElement) \
  416. ADD_WINDOW_OBJECT_INTERFACE(HTMLDirectoryElement) \
  417. ADD_WINDOW_OBJECT_INTERFACE(HTMLDivElement) \
  418. ADD_WINDOW_OBJECT_INTERFACE(HTMLDListElement) \
  419. ADD_WINDOW_OBJECT_INTERFACE(HTMLElement) \
  420. ADD_WINDOW_OBJECT_INTERFACE(HTMLEmbedElement) \
  421. ADD_WINDOW_OBJECT_INTERFACE(HTMLFieldSetElement) \
  422. ADD_WINDOW_OBJECT_INTERFACE(HTMLFontElement) \
  423. ADD_WINDOW_OBJECT_INTERFACE(HTMLFormElement) \
  424. ADD_WINDOW_OBJECT_INTERFACE(HTMLFrameElement) \
  425. ADD_WINDOW_OBJECT_INTERFACE(HTMLFrameSetElement) \
  426. ADD_WINDOW_OBJECT_INTERFACE(HTMLHeadElement) \
  427. ADD_WINDOW_OBJECT_INTERFACE(HTMLHeadingElement) \
  428. ADD_WINDOW_OBJECT_INTERFACE(HTMLHRElement) \
  429. ADD_WINDOW_OBJECT_INTERFACE(HTMLHtmlElement) \
  430. ADD_WINDOW_OBJECT_INTERFACE(HTMLIFrameElement) \
  431. ADD_WINDOW_OBJECT_INTERFACE(HTMLImageElement) \
  432. ADD_WINDOW_OBJECT_INTERFACE(HTMLInputElement) \
  433. ADD_WINDOW_OBJECT_INTERFACE(HTMLLabelElement) \
  434. ADD_WINDOW_OBJECT_INTERFACE(HTMLLegendElement) \
  435. ADD_WINDOW_OBJECT_INTERFACE(HTMLLIElement) \
  436. ADD_WINDOW_OBJECT_INTERFACE(HTMLLinkElement) \
  437. ADD_WINDOW_OBJECT_INTERFACE(HTMLMapElement) \
  438. ADD_WINDOW_OBJECT_INTERFACE(HTMLMarqueeElement) \
  439. ADD_WINDOW_OBJECT_INTERFACE(HTMLMediaElement) \
  440. ADD_WINDOW_OBJECT_INTERFACE(HTMLMenuElement) \
  441. ADD_WINDOW_OBJECT_INTERFACE(HTMLMetaElement) \
  442. ADD_WINDOW_OBJECT_INTERFACE(HTMLMeterElement) \
  443. ADD_WINDOW_OBJECT_INTERFACE(HTMLModElement) \
  444. ADD_WINDOW_OBJECT_INTERFACE(HTMLObjectElement) \
  445. ADD_WINDOW_OBJECT_INTERFACE(HTMLOListElement) \
  446. ADD_WINDOW_OBJECT_INTERFACE(HTMLOptGroupElement) \
  447. ADD_WINDOW_OBJECT_INTERFACE(HTMLOptionElement) \
  448. ADD_WINDOW_OBJECT_INTERFACE(HTMLOptionsCollection) \
  449. ADD_WINDOW_OBJECT_INTERFACE(HTMLOutputElement) \
  450. ADD_WINDOW_OBJECT_INTERFACE(HTMLParagraphElement) \
  451. ADD_WINDOW_OBJECT_INTERFACE(HTMLParamElement) \
  452. ADD_WINDOW_OBJECT_INTERFACE(HTMLPictureElement) \
  453. ADD_WINDOW_OBJECT_INTERFACE(HTMLPreElement) \
  454. ADD_WINDOW_OBJECT_INTERFACE(HTMLProgressElement) \
  455. ADD_WINDOW_OBJECT_INTERFACE(HTMLQuoteElement) \
  456. ADD_WINDOW_OBJECT_INTERFACE(HTMLScriptElement) \
  457. ADD_WINDOW_OBJECT_INTERFACE(HTMLSelectElement) \
  458. ADD_WINDOW_OBJECT_INTERFACE(HTMLSlotElement) \
  459. ADD_WINDOW_OBJECT_INTERFACE(HTMLSourceElement) \
  460. ADD_WINDOW_OBJECT_INTERFACE(HTMLSpanElement) \
  461. ADD_WINDOW_OBJECT_INTERFACE(HTMLStyleElement) \
  462. ADD_WINDOW_OBJECT_INTERFACE(HTMLTableCaptionElement) \
  463. ADD_WINDOW_OBJECT_INTERFACE(HTMLTableCellElement) \
  464. ADD_WINDOW_OBJECT_INTERFACE(HTMLTableColElement) \
  465. ADD_WINDOW_OBJECT_INTERFACE(HTMLTableElement) \
  466. ADD_WINDOW_OBJECT_INTERFACE(HTMLTableRowElement) \
  467. ADD_WINDOW_OBJECT_INTERFACE(HTMLTableSectionElement) \
  468. ADD_WINDOW_OBJECT_INTERFACE(HTMLTemplateElement) \
  469. ADD_WINDOW_OBJECT_INTERFACE(HTMLTextAreaElement) \
  470. ADD_WINDOW_OBJECT_INTERFACE(HTMLTimeElement) \
  471. ADD_WINDOW_OBJECT_INTERFACE(HTMLTitleElement) \
  472. ADD_WINDOW_OBJECT_INTERFACE(HTMLTrackElement) \
  473. ADD_WINDOW_OBJECT_INTERFACE(HTMLUListElement) \
  474. ADD_WINDOW_OBJECT_INTERFACE(HTMLUnknownElement) \
  475. ADD_WINDOW_OBJECT_INTERFACE(HTMLVideoElement) \
  476. ADD_WINDOW_OBJECT_INTERFACE(IdleDeadline) \
  477. ADD_WINDOW_OBJECT_INTERFACE(ImageData) \
  478. ADD_WINDOW_OBJECT_INTERFACE(IntersectionObserver) \
  479. ADD_WINDOW_OBJECT_INTERFACE(KeyboardEvent) \
  480. ADD_WINDOW_OBJECT_INTERFACE(Location) \
  481. ADD_WINDOW_OBJECT_INTERFACE(MediaQueryList) \
  482. ADD_WINDOW_OBJECT_INTERFACE(MediaQueryListEvent) \
  483. ADD_WINDOW_OBJECT_INTERFACE(MediaList) \
  484. ADD_WINDOW_OBJECT_INTERFACE(MessageChannel) \
  485. ADD_WINDOW_OBJECT_INTERFACE(MessageEvent) \
  486. ADD_WINDOW_OBJECT_INTERFACE(MouseEvent) \
  487. ADD_WINDOW_OBJECT_INTERFACE(Navigator) \
  488. ADD_WINDOW_OBJECT_INTERFACE(Node) \
  489. ADD_WINDOW_OBJECT_INTERFACE(NodeIterator) \
  490. ADD_WINDOW_OBJECT_INTERFACE(NodeList) \
  491. ADD_WINDOW_OBJECT_INTERFACE(PageTransitionEvent) \
  492. ADD_WINDOW_OBJECT_INTERFACE(Performance) \
  493. ADD_WINDOW_OBJECT_INTERFACE(PerformanceTiming) \
  494. ADD_WINDOW_OBJECT_INTERFACE(ProcessingInstruction) \
  495. ADD_WINDOW_OBJECT_INTERFACE(ProgressEvent) \
  496. ADD_WINDOW_OBJECT_INTERFACE(PromiseRejectionEvent) \
  497. ADD_WINDOW_OBJECT_INTERFACE(Range) \
  498. ADD_WINDOW_OBJECT_INTERFACE(ResizeObserver) \
  499. ADD_WINDOW_OBJECT_INTERFACE(Screen) \
  500. ADD_WINDOW_OBJECT_INTERFACE(Selection) \
  501. ADD_WINDOW_OBJECT_INTERFACE(ShadowRoot) \
  502. ADD_WINDOW_OBJECT_INTERFACE(StaticRange) \
  503. ADD_WINDOW_OBJECT_INTERFACE(Storage) \
  504. ADD_WINDOW_OBJECT_INTERFACE(StyleSheet) \
  505. ADD_WINDOW_OBJECT_INTERFACE(StyleSheetList) \
  506. ADD_WINDOW_OBJECT_INTERFACE(SubmitEvent) \
  507. ADD_WINDOW_OBJECT_INTERFACE(SubtleCrypto) \
  508. ADD_WINDOW_OBJECT_INTERFACE(SVGElement) \
  509. ADD_WINDOW_OBJECT_INTERFACE(SVGCircleElement) \
  510. ADD_WINDOW_OBJECT_INTERFACE(SVGClipPathElement) \
  511. ADD_WINDOW_OBJECT_INTERFACE(SVGDefsElement) \
  512. ADD_WINDOW_OBJECT_INTERFACE(SVGEllipseElement) \
  513. ADD_WINDOW_OBJECT_INTERFACE(SVGGeometryElement) \
  514. ADD_WINDOW_OBJECT_INTERFACE(SVGGraphicsElement) \
  515. ADD_WINDOW_OBJECT_INTERFACE(SVGLineElement) \
  516. ADD_WINDOW_OBJECT_INTERFACE(SVGPathElement) \
  517. ADD_WINDOW_OBJECT_INTERFACE(SVGPolygonElement) \
  518. ADD_WINDOW_OBJECT_INTERFACE(SVGPolylineElement) \
  519. ADD_WINDOW_OBJECT_INTERFACE(SVGRectElement) \
  520. ADD_WINDOW_OBJECT_INTERFACE(SVGSVGElement) \
  521. ADD_WINDOW_OBJECT_INTERFACE(SVGTextContentElement) \
  522. ADD_WINDOW_OBJECT_INTERFACE(Text) \
  523. ADD_WINDOW_OBJECT_INTERFACE(TextDecoder) \
  524. ADD_WINDOW_OBJECT_INTERFACE(TextEncoder) \
  525. ADD_WINDOW_OBJECT_INTERFACE(TextMetrics) \
  526. ADD_WINDOW_OBJECT_INTERFACE(TreeWalker) \
  527. ADD_WINDOW_OBJECT_INTERFACE(UIEvent) \
  528. ADD_WINDOW_OBJECT_INTERFACE(URLSearchParams) \
  529. ADD_WINDOW_OBJECT_INTERFACE(URL) \
  530. ADD_WINDOW_OBJECT_INTERFACE(WebGLContextEvent) \
  531. ADD_WINDOW_OBJECT_INTERFACE(WebGLRenderingContext) \
  532. ADD_WINDOW_OBJECT_INTERFACE(WebSocket) \
  533. ADD_WINDOW_OBJECT_INTERFACE(Worker) \
  534. ADD_WINDOW_OBJECT_INTERFACE(XMLHttpRequest) \
  535. ADD_WINDOW_OBJECT_INTERFACE(XMLHttpRequestEventTarget) \
  536. ADD_WINDOW_OBJECT_INTERFACE(Window) \
  537. ADD_WINDOW_OBJECT_CONSTRUCTOR_AND_PROTOTYPE(Audio, AudioConstructor, HTMLAudioElementPrototype) \
  538. ADD_WINDOW_OBJECT_CONSTRUCTOR_AND_PROTOTYPE(Image, ImageConstructor, HTMLImageElementPrototype) \
  539. ADD_WINDOW_OBJECT_CONSTRUCTOR_AND_PROTOTYPE(Option, OptionConstructor, HTMLOptionElementPrototype)