WindowObjectHelper.h 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334
  1. /*
  2. * Copyright (c) 2021, Andreas Kling <kling@serenityos.org>
  3. * All rights reserved.
  4. *
  5. * Redistribution and use in source and binary forms, with or without
  6. * modification, are permitted provided that the following conditions are met:
  7. *
  8. * 1. Redistributions of source code must retain the above copyright notice, this
  9. * list of conditions and the following disclaimer.
  10. *
  11. * 2. Redistributions in binary form must reproduce the above copyright notice,
  12. * this list of conditions and the following disclaimer in the documentation
  13. * and/or other materials provided with the distribution.
  14. *
  15. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  16. * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  17. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  18. * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  19. * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  20. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  21. * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  22. * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  23. * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  24. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  25. */
  26. #pragma once
  27. // FIXME: Find a way to generate all of this
  28. #include <LibWeb/Bindings/CanvasRenderingContext2DConstructor.h>
  29. #include <LibWeb/Bindings/CanvasRenderingContext2DPrototype.h>
  30. #include <LibWeb/Bindings/CharacterDataConstructor.h>
  31. #include <LibWeb/Bindings/CharacterDataPrototype.h>
  32. #include <LibWeb/Bindings/CommentConstructor.h>
  33. #include <LibWeb/Bindings/CommentPrototype.h>
  34. #include <LibWeb/Bindings/DOMExceptionConstructor.h>
  35. #include <LibWeb/Bindings/DOMExceptionPrototype.h>
  36. #include <LibWeb/Bindings/DOMImplementationConstructor.h>
  37. #include <LibWeb/Bindings/DOMImplementationPrototype.h>
  38. #include <LibWeb/Bindings/DocumentConstructor.h>
  39. #include <LibWeb/Bindings/DocumentFragmentConstructor.h>
  40. #include <LibWeb/Bindings/DocumentFragmentPrototype.h>
  41. #include <LibWeb/Bindings/DocumentPrototype.h>
  42. #include <LibWeb/Bindings/DocumentTypeConstructor.h>
  43. #include <LibWeb/Bindings/DocumentTypePrototype.h>
  44. #include <LibWeb/Bindings/ElementConstructor.h>
  45. #include <LibWeb/Bindings/ElementPrototype.h>
  46. #include <LibWeb/Bindings/EventConstructor.h>
  47. #include <LibWeb/Bindings/EventPrototype.h>
  48. #include <LibWeb/Bindings/EventTargetConstructor.h>
  49. #include <LibWeb/Bindings/EventTargetPrototype.h>
  50. #include <LibWeb/Bindings/HTMLAnchorElementConstructor.h>
  51. #include <LibWeb/Bindings/HTMLAnchorElementPrototype.h>
  52. #include <LibWeb/Bindings/HTMLAreaElementConstructor.h>
  53. #include <LibWeb/Bindings/HTMLAreaElementPrototype.h>
  54. #include <LibWeb/Bindings/HTMLAudioElementConstructor.h>
  55. #include <LibWeb/Bindings/HTMLAudioElementPrototype.h>
  56. #include <LibWeb/Bindings/HTMLBRElementConstructor.h>
  57. #include <LibWeb/Bindings/HTMLBRElementPrototype.h>
  58. #include <LibWeb/Bindings/HTMLBaseElementConstructor.h>
  59. #include <LibWeb/Bindings/HTMLBaseElementPrototype.h>
  60. #include <LibWeb/Bindings/HTMLBodyElementConstructor.h>
  61. #include <LibWeb/Bindings/HTMLBodyElementPrototype.h>
  62. #include <LibWeb/Bindings/HTMLButtonElementConstructor.h>
  63. #include <LibWeb/Bindings/HTMLButtonElementPrototype.h>
  64. #include <LibWeb/Bindings/HTMLCanvasElementConstructor.h>
  65. #include <LibWeb/Bindings/HTMLCanvasElementPrototype.h>
  66. #include <LibWeb/Bindings/HTMLDListElementConstructor.h>
  67. #include <LibWeb/Bindings/HTMLDListElementPrototype.h>
  68. #include <LibWeb/Bindings/HTMLDataElementConstructor.h>
  69. #include <LibWeb/Bindings/HTMLDataElementPrototype.h>
  70. #include <LibWeb/Bindings/HTMLDataListElementConstructor.h>
  71. #include <LibWeb/Bindings/HTMLDataListElementPrototype.h>
  72. #include <LibWeb/Bindings/HTMLDetailsElementConstructor.h>
  73. #include <LibWeb/Bindings/HTMLDetailsElementPrototype.h>
  74. #include <LibWeb/Bindings/HTMLDialogElementConstructor.h>
  75. #include <LibWeb/Bindings/HTMLDialogElementPrototype.h>
  76. #include <LibWeb/Bindings/HTMLDirectoryElementConstructor.h>
  77. #include <LibWeb/Bindings/HTMLDirectoryElementPrototype.h>
  78. #include <LibWeb/Bindings/HTMLDivElementConstructor.h>
  79. #include <LibWeb/Bindings/HTMLDivElementPrototype.h>
  80. #include <LibWeb/Bindings/HTMLElementConstructor.h>
  81. #include <LibWeb/Bindings/HTMLElementPrototype.h>
  82. #include <LibWeb/Bindings/HTMLEmbedElementConstructor.h>
  83. #include <LibWeb/Bindings/HTMLEmbedElementPrototype.h>
  84. #include <LibWeb/Bindings/HTMLFieldSetElementConstructor.h>
  85. #include <LibWeb/Bindings/HTMLFieldSetElementPrototype.h>
  86. #include <LibWeb/Bindings/HTMLFontElementConstructor.h>
  87. #include <LibWeb/Bindings/HTMLFontElementPrototype.h>
  88. #include <LibWeb/Bindings/HTMLFormElementConstructor.h>
  89. #include <LibWeb/Bindings/HTMLFormElementPrototype.h>
  90. #include <LibWeb/Bindings/HTMLFrameElementConstructor.h>
  91. #include <LibWeb/Bindings/HTMLFrameElementPrototype.h>
  92. #include <LibWeb/Bindings/HTMLFrameSetElementConstructor.h>
  93. #include <LibWeb/Bindings/HTMLFrameSetElementPrototype.h>
  94. #include <LibWeb/Bindings/HTMLHRElementConstructor.h>
  95. #include <LibWeb/Bindings/HTMLHRElementPrototype.h>
  96. #include <LibWeb/Bindings/HTMLHeadElementConstructor.h>
  97. #include <LibWeb/Bindings/HTMLHeadElementPrototype.h>
  98. #include <LibWeb/Bindings/HTMLHeadingElementConstructor.h>
  99. #include <LibWeb/Bindings/HTMLHeadingElementPrototype.h>
  100. #include <LibWeb/Bindings/HTMLHtmlElementConstructor.h>
  101. #include <LibWeb/Bindings/HTMLHtmlElementPrototype.h>
  102. #include <LibWeb/Bindings/HTMLIFrameElementConstructor.h>
  103. #include <LibWeb/Bindings/HTMLIFrameElementPrototype.h>
  104. #include <LibWeb/Bindings/HTMLImageElementConstructor.h>
  105. #include <LibWeb/Bindings/HTMLImageElementPrototype.h>
  106. #include <LibWeb/Bindings/HTMLInputElementConstructor.h>
  107. #include <LibWeb/Bindings/HTMLInputElementPrototype.h>
  108. #include <LibWeb/Bindings/HTMLLIElementConstructor.h>
  109. #include <LibWeb/Bindings/HTMLLIElementPrototype.h>
  110. #include <LibWeb/Bindings/HTMLLabelElementConstructor.h>
  111. #include <LibWeb/Bindings/HTMLLabelElementPrototype.h>
  112. #include <LibWeb/Bindings/HTMLLegendElementConstructor.h>
  113. #include <LibWeb/Bindings/HTMLLegendElementPrototype.h>
  114. #include <LibWeb/Bindings/HTMLLinkElementConstructor.h>
  115. #include <LibWeb/Bindings/HTMLLinkElementPrototype.h>
  116. #include <LibWeb/Bindings/HTMLMapElementConstructor.h>
  117. #include <LibWeb/Bindings/HTMLMapElementPrototype.h>
  118. #include <LibWeb/Bindings/HTMLMarqueeElementConstructor.h>
  119. #include <LibWeb/Bindings/HTMLMarqueeElementPrototype.h>
  120. #include <LibWeb/Bindings/HTMLMediaElementConstructor.h>
  121. #include <LibWeb/Bindings/HTMLMediaElementPrototype.h>
  122. #include <LibWeb/Bindings/HTMLMenuElementConstructor.h>
  123. #include <LibWeb/Bindings/HTMLMenuElementPrototype.h>
  124. #include <LibWeb/Bindings/HTMLMetaElementConstructor.h>
  125. #include <LibWeb/Bindings/HTMLMetaElementPrototype.h>
  126. #include <LibWeb/Bindings/HTMLMeterElementConstructor.h>
  127. #include <LibWeb/Bindings/HTMLMeterElementPrototype.h>
  128. #include <LibWeb/Bindings/HTMLModElementConstructor.h>
  129. #include <LibWeb/Bindings/HTMLModElementPrototype.h>
  130. #include <LibWeb/Bindings/HTMLOListElementConstructor.h>
  131. #include <LibWeb/Bindings/HTMLOListElementPrototype.h>
  132. #include <LibWeb/Bindings/HTMLObjectElementConstructor.h>
  133. #include <LibWeb/Bindings/HTMLObjectElementPrototype.h>
  134. #include <LibWeb/Bindings/HTMLOptGroupElementConstructor.h>
  135. #include <LibWeb/Bindings/HTMLOptGroupElementPrototype.h>
  136. #include <LibWeb/Bindings/HTMLOptionElementConstructor.h>
  137. #include <LibWeb/Bindings/HTMLOptionElementPrototype.h>
  138. #include <LibWeb/Bindings/HTMLOutputElementConstructor.h>
  139. #include <LibWeb/Bindings/HTMLOutputElementPrototype.h>
  140. #include <LibWeb/Bindings/HTMLParagraphElementConstructor.h>
  141. #include <LibWeb/Bindings/HTMLParagraphElementPrototype.h>
  142. #include <LibWeb/Bindings/HTMLParamElementConstructor.h>
  143. #include <LibWeb/Bindings/HTMLParamElementPrototype.h>
  144. #include <LibWeb/Bindings/HTMLPictureElementConstructor.h>
  145. #include <LibWeb/Bindings/HTMLPictureElementPrototype.h>
  146. #include <LibWeb/Bindings/HTMLPreElementConstructor.h>
  147. #include <LibWeb/Bindings/HTMLPreElementPrototype.h>
  148. #include <LibWeb/Bindings/HTMLProgressElementConstructor.h>
  149. #include <LibWeb/Bindings/HTMLProgressElementPrototype.h>
  150. #include <LibWeb/Bindings/HTMLQuoteElementConstructor.h>
  151. #include <LibWeb/Bindings/HTMLQuoteElementPrototype.h>
  152. #include <LibWeb/Bindings/HTMLScriptElementConstructor.h>
  153. #include <LibWeb/Bindings/HTMLScriptElementPrototype.h>
  154. #include <LibWeb/Bindings/HTMLSelectElementConstructor.h>
  155. #include <LibWeb/Bindings/HTMLSelectElementPrototype.h>
  156. #include <LibWeb/Bindings/HTMLSlotElementConstructor.h>
  157. #include <LibWeb/Bindings/HTMLSlotElementPrototype.h>
  158. #include <LibWeb/Bindings/HTMLSourceElementConstructor.h>
  159. #include <LibWeb/Bindings/HTMLSourceElementPrototype.h>
  160. #include <LibWeb/Bindings/HTMLSpanElementConstructor.h>
  161. #include <LibWeb/Bindings/HTMLSpanElementPrototype.h>
  162. #include <LibWeb/Bindings/HTMLStyleElementConstructor.h>
  163. #include <LibWeb/Bindings/HTMLStyleElementPrototype.h>
  164. #include <LibWeb/Bindings/HTMLTableCaptionElementConstructor.h>
  165. #include <LibWeb/Bindings/HTMLTableCaptionElementPrototype.h>
  166. #include <LibWeb/Bindings/HTMLTableCellElementConstructor.h>
  167. #include <LibWeb/Bindings/HTMLTableCellElementPrototype.h>
  168. #include <LibWeb/Bindings/HTMLTableColElementConstructor.h>
  169. #include <LibWeb/Bindings/HTMLTableColElementPrototype.h>
  170. #include <LibWeb/Bindings/HTMLTableElementConstructor.h>
  171. #include <LibWeb/Bindings/HTMLTableElementPrototype.h>
  172. #include <LibWeb/Bindings/HTMLTableRowElementConstructor.h>
  173. #include <LibWeb/Bindings/HTMLTableRowElementPrototype.h>
  174. #include <LibWeb/Bindings/HTMLTableSectionElementConstructor.h>
  175. #include <LibWeb/Bindings/HTMLTableSectionElementPrototype.h>
  176. #include <LibWeb/Bindings/HTMLTemplateElementConstructor.h>
  177. #include <LibWeb/Bindings/HTMLTemplateElementPrototype.h>
  178. #include <LibWeb/Bindings/HTMLTextAreaElementConstructor.h>
  179. #include <LibWeb/Bindings/HTMLTextAreaElementPrototype.h>
  180. #include <LibWeb/Bindings/HTMLTimeElementConstructor.h>
  181. #include <LibWeb/Bindings/HTMLTimeElementPrototype.h>
  182. #include <LibWeb/Bindings/HTMLTitleElementConstructor.h>
  183. #include <LibWeb/Bindings/HTMLTitleElementPrototype.h>
  184. #include <LibWeb/Bindings/HTMLTrackElementConstructor.h>
  185. #include <LibWeb/Bindings/HTMLTrackElementPrototype.h>
  186. #include <LibWeb/Bindings/HTMLUListElementConstructor.h>
  187. #include <LibWeb/Bindings/HTMLUListElementPrototype.h>
  188. #include <LibWeb/Bindings/HTMLUnknownElementConstructor.h>
  189. #include <LibWeb/Bindings/HTMLUnknownElementPrototype.h>
  190. #include <LibWeb/Bindings/HTMLVideoElementConstructor.h>
  191. #include <LibWeb/Bindings/HTMLVideoElementPrototype.h>
  192. #include <LibWeb/Bindings/ImageDataConstructor.h>
  193. #include <LibWeb/Bindings/ImageDataPrototype.h>
  194. #include <LibWeb/Bindings/MouseEventConstructor.h>
  195. #include <LibWeb/Bindings/MouseEventPrototype.h>
  196. #include <LibWeb/Bindings/NodeConstructor.h>
  197. #include <LibWeb/Bindings/NodePrototype.h>
  198. #include <LibWeb/Bindings/PerformanceConstructor.h>
  199. #include <LibWeb/Bindings/PerformancePrototype.h>
  200. #include <LibWeb/Bindings/PerformanceTimingConstructor.h>
  201. #include <LibWeb/Bindings/PerformanceTimingPrototype.h>
  202. #include <LibWeb/Bindings/ProgressEventConstructor.h>
  203. #include <LibWeb/Bindings/ProgressEventPrototype.h>
  204. #include <LibWeb/Bindings/SVGElementConstructor.h>
  205. #include <LibWeb/Bindings/SVGElementPrototype.h>
  206. #include <LibWeb/Bindings/SVGGeometryElementConstructor.h>
  207. #include <LibWeb/Bindings/SVGGeometryElementPrototype.h>
  208. #include <LibWeb/Bindings/SVGGraphicsElementConstructor.h>
  209. #include <LibWeb/Bindings/SVGGraphicsElementPrototype.h>
  210. #include <LibWeb/Bindings/SVGPathElementConstructor.h>
  211. #include <LibWeb/Bindings/SVGPathElementPrototype.h>
  212. #include <LibWeb/Bindings/SVGSVGElementConstructor.h>
  213. #include <LibWeb/Bindings/SVGSVGElementPrototype.h>
  214. #include <LibWeb/Bindings/ShadowRootConstructor.h>
  215. #include <LibWeb/Bindings/ShadowRootPrototype.h>
  216. #include <LibWeb/Bindings/SubmitEventConstructor.h>
  217. #include <LibWeb/Bindings/SubmitEventPrototype.h>
  218. #include <LibWeb/Bindings/TextConstructor.h>
  219. #include <LibWeb/Bindings/TextPrototype.h>
  220. #include <LibWeb/Bindings/UIEventConstructor.h>
  221. #include <LibWeb/Bindings/UIEventPrototype.h>
  222. #include <LibWeb/Bindings/XMLHttpRequestConstructor.h>
  223. #include <LibWeb/Bindings/XMLHttpRequestEventTargetConstructor.h>
  224. #include <LibWeb/Bindings/XMLHttpRequestEventTargetPrototype.h>
  225. #include <LibWeb/Bindings/XMLHttpRequestPrototype.h>
  226. #define ADD_WINDOW_OBJECT_INTERFACE(name) \
  227. { \
  228. ensure_web_constructor<name##Constructor>(#name); \
  229. }
  230. #define ADD_WINDOW_OBJECT_INTERFACES \
  231. ADD_WINDOW_OBJECT_INTERFACE(CanvasRenderingContext2D) \
  232. ADD_WINDOW_OBJECT_INTERFACE(CharacterData) \
  233. ADD_WINDOW_OBJECT_INTERFACE(Comment) \
  234. ADD_WINDOW_OBJECT_INTERFACE(DocumentFragment) \
  235. ADD_WINDOW_OBJECT_INTERFACE(Document) \
  236. ADD_WINDOW_OBJECT_INTERFACE(DocumentType) \
  237. ADD_WINDOW_OBJECT_INTERFACE(DOMException) \
  238. ADD_WINDOW_OBJECT_INTERFACE(DOMImplementation) \
  239. ADD_WINDOW_OBJECT_INTERFACE(Element) \
  240. ADD_WINDOW_OBJECT_INTERFACE(Event) \
  241. ADD_WINDOW_OBJECT_INTERFACE(EventTarget) \
  242. ADD_WINDOW_OBJECT_INTERFACE(HTMLAnchorElement) \
  243. ADD_WINDOW_OBJECT_INTERFACE(HTMLAreaElement) \
  244. ADD_WINDOW_OBJECT_INTERFACE(HTMLAudioElement) \
  245. ADD_WINDOW_OBJECT_INTERFACE(HTMLBaseElement) \
  246. ADD_WINDOW_OBJECT_INTERFACE(HTMLBodyElement) \
  247. ADD_WINDOW_OBJECT_INTERFACE(HTMLBRElement) \
  248. ADD_WINDOW_OBJECT_INTERFACE(HTMLButtonElement) \
  249. ADD_WINDOW_OBJECT_INTERFACE(HTMLCanvasElement) \
  250. ADD_WINDOW_OBJECT_INTERFACE(HTMLDataElement) \
  251. ADD_WINDOW_OBJECT_INTERFACE(HTMLDataListElement) \
  252. ADD_WINDOW_OBJECT_INTERFACE(HTMLDetailsElement) \
  253. ADD_WINDOW_OBJECT_INTERFACE(HTMLDialogElement) \
  254. ADD_WINDOW_OBJECT_INTERFACE(HTMLDirectoryElement) \
  255. ADD_WINDOW_OBJECT_INTERFACE(HTMLDivElement) \
  256. ADD_WINDOW_OBJECT_INTERFACE(HTMLDListElement) \
  257. ADD_WINDOW_OBJECT_INTERFACE(HTMLElement) \
  258. ADD_WINDOW_OBJECT_INTERFACE(HTMLEmbedElement) \
  259. ADD_WINDOW_OBJECT_INTERFACE(HTMLFieldSetElement) \
  260. ADD_WINDOW_OBJECT_INTERFACE(HTMLFontElement) \
  261. ADD_WINDOW_OBJECT_INTERFACE(HTMLFormElement) \
  262. ADD_WINDOW_OBJECT_INTERFACE(HTMLFrameElement) \
  263. ADD_WINDOW_OBJECT_INTERFACE(HTMLFrameSetElement) \
  264. ADD_WINDOW_OBJECT_INTERFACE(HTMLHeadElement) \
  265. ADD_WINDOW_OBJECT_INTERFACE(HTMLHeadingElement) \
  266. ADD_WINDOW_OBJECT_INTERFACE(HTMLHRElement) \
  267. ADD_WINDOW_OBJECT_INTERFACE(HTMLHtmlElement) \
  268. ADD_WINDOW_OBJECT_INTERFACE(HTMLIFrameElement) \
  269. ADD_WINDOW_OBJECT_INTERFACE(HTMLImageElement) \
  270. ADD_WINDOW_OBJECT_INTERFACE(HTMLInputElement) \
  271. ADD_WINDOW_OBJECT_INTERFACE(HTMLLabelElement) \
  272. ADD_WINDOW_OBJECT_INTERFACE(HTMLLegendElement) \
  273. ADD_WINDOW_OBJECT_INTERFACE(HTMLLIElement) \
  274. ADD_WINDOW_OBJECT_INTERFACE(HTMLLinkElement) \
  275. ADD_WINDOW_OBJECT_INTERFACE(HTMLMapElement) \
  276. ADD_WINDOW_OBJECT_INTERFACE(HTMLMarqueeElement) \
  277. ADD_WINDOW_OBJECT_INTERFACE(HTMLMediaElement) \
  278. ADD_WINDOW_OBJECT_INTERFACE(HTMLMenuElement) \
  279. ADD_WINDOW_OBJECT_INTERFACE(HTMLMetaElement) \
  280. ADD_WINDOW_OBJECT_INTERFACE(HTMLMeterElement) \
  281. ADD_WINDOW_OBJECT_INTERFACE(HTMLModElement) \
  282. ADD_WINDOW_OBJECT_INTERFACE(HTMLObjectElement) \
  283. ADD_WINDOW_OBJECT_INTERFACE(HTMLOListElement) \
  284. ADD_WINDOW_OBJECT_INTERFACE(HTMLOptGroupElement) \
  285. ADD_WINDOW_OBJECT_INTERFACE(HTMLOptionElement) \
  286. ADD_WINDOW_OBJECT_INTERFACE(HTMLOutputElement) \
  287. ADD_WINDOW_OBJECT_INTERFACE(HTMLParagraphElement) \
  288. ADD_WINDOW_OBJECT_INTERFACE(HTMLParamElement) \
  289. ADD_WINDOW_OBJECT_INTERFACE(HTMLPictureElement) \
  290. ADD_WINDOW_OBJECT_INTERFACE(HTMLPreElement) \
  291. ADD_WINDOW_OBJECT_INTERFACE(HTMLProgressElement) \
  292. ADD_WINDOW_OBJECT_INTERFACE(HTMLQuoteElement) \
  293. ADD_WINDOW_OBJECT_INTERFACE(HTMLScriptElement) \
  294. ADD_WINDOW_OBJECT_INTERFACE(HTMLSelectElement) \
  295. ADD_WINDOW_OBJECT_INTERFACE(HTMLSlotElement) \
  296. ADD_WINDOW_OBJECT_INTERFACE(HTMLSourceElement) \
  297. ADD_WINDOW_OBJECT_INTERFACE(HTMLSpanElement) \
  298. ADD_WINDOW_OBJECT_INTERFACE(HTMLStyleElement) \
  299. ADD_WINDOW_OBJECT_INTERFACE(HTMLTableCaptionElement) \
  300. ADD_WINDOW_OBJECT_INTERFACE(HTMLTableCellElement) \
  301. ADD_WINDOW_OBJECT_INTERFACE(HTMLTableColElement) \
  302. ADD_WINDOW_OBJECT_INTERFACE(HTMLTableElement) \
  303. ADD_WINDOW_OBJECT_INTERFACE(HTMLTableRowElement) \
  304. ADD_WINDOW_OBJECT_INTERFACE(HTMLTableSectionElement) \
  305. ADD_WINDOW_OBJECT_INTERFACE(HTMLTemplateElement) \
  306. ADD_WINDOW_OBJECT_INTERFACE(HTMLTextAreaElement) \
  307. ADD_WINDOW_OBJECT_INTERFACE(HTMLTimeElement) \
  308. ADD_WINDOW_OBJECT_INTERFACE(HTMLTitleElement) \
  309. ADD_WINDOW_OBJECT_INTERFACE(HTMLTrackElement) \
  310. ADD_WINDOW_OBJECT_INTERFACE(HTMLUListElement) \
  311. ADD_WINDOW_OBJECT_INTERFACE(HTMLUnknownElement) \
  312. ADD_WINDOW_OBJECT_INTERFACE(HTMLVideoElement) \
  313. ADD_WINDOW_OBJECT_INTERFACE(ImageData) \
  314. ADD_WINDOW_OBJECT_INTERFACE(MouseEvent) \
  315. ADD_WINDOW_OBJECT_INTERFACE(Node) \
  316. ADD_WINDOW_OBJECT_INTERFACE(Performance) \
  317. ADD_WINDOW_OBJECT_INTERFACE(PerformanceTiming) \
  318. ADD_WINDOW_OBJECT_INTERFACE(ProgressEvent) \
  319. ADD_WINDOW_OBJECT_INTERFACE(ShadowRoot) \
  320. ADD_WINDOW_OBJECT_INTERFACE(SubmitEvent) \
  321. ADD_WINDOW_OBJECT_INTERFACE(SVGElement) \
  322. ADD_WINDOW_OBJECT_INTERFACE(SVGGeometryElement) \
  323. ADD_WINDOW_OBJECT_INTERFACE(SVGGraphicsElement) \
  324. ADD_WINDOW_OBJECT_INTERFACE(SVGPathElement) \
  325. ADD_WINDOW_OBJECT_INTERFACE(SVGSVGElement) \
  326. ADD_WINDOW_OBJECT_INTERFACE(Text) \
  327. ADD_WINDOW_OBJECT_INTERFACE(UIEvent) \
  328. ADD_WINDOW_OBJECT_INTERFACE(XMLHttpRequest) \
  329. ADD_WINDOW_OBJECT_INTERFACE(XMLHttpRequestEventTarget)