happy-dom 15.0.0 → 15.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of happy-dom might be problematic. Click here for more details.

Files changed (804) hide show
  1. package/cjs/ClassMethodBinder.cjs +8 -6
  2. package/cjs/ClassMethodBinder.cjs.map +1 -1
  3. package/cjs/ClassMethodBinder.d.ts +4 -2
  4. package/cjs/ClassMethodBinder.d.ts.map +1 -1
  5. package/cjs/PropertySymbol.cjs +20 -9
  6. package/cjs/PropertySymbol.cjs.map +1 -1
  7. package/cjs/PropertySymbol.d.ts +15 -4
  8. package/cjs/PropertySymbol.d.ts.map +1 -1
  9. package/cjs/async-task-manager/AsyncTaskManager.cjs +64 -35
  10. package/cjs/async-task-manager/AsyncTaskManager.cjs.map +1 -1
  11. package/cjs/async-task-manager/AsyncTaskManager.d.ts +11 -1
  12. package/cjs/async-task-manager/AsyncTaskManager.d.ts.map +1 -1
  13. package/cjs/browser/Browser.cjs +30 -0
  14. package/cjs/browser/Browser.cjs.map +1 -1
  15. package/cjs/browser/Browser.d.ts +3 -0
  16. package/cjs/browser/Browser.d.ts.map +1 -1
  17. package/cjs/browser/BrowserFrame.cjs +3 -7
  18. package/cjs/browser/BrowserFrame.cjs.map +1 -1
  19. package/cjs/browser/BrowserFrame.d.ts +1 -4
  20. package/cjs/browser/BrowserFrame.d.ts.map +1 -1
  21. package/cjs/browser/DefaultBrowserSettings.cjs +2 -1
  22. package/cjs/browser/DefaultBrowserSettings.cjs.map +1 -1
  23. package/cjs/browser/DefaultBrowserSettings.d.ts.map +1 -1
  24. package/cjs/browser/detached-browser/DetachedBrowser.cjs +30 -0
  25. package/cjs/browser/detached-browser/DetachedBrowser.cjs.map +1 -1
  26. package/cjs/browser/detached-browser/DetachedBrowser.d.ts +3 -0
  27. package/cjs/browser/detached-browser/DetachedBrowser.d.ts.map +1 -1
  28. package/cjs/browser/detached-browser/DetachedBrowserFrame.cjs +3 -7
  29. package/cjs/browser/detached-browser/DetachedBrowserFrame.cjs.map +1 -1
  30. package/cjs/browser/detached-browser/DetachedBrowserFrame.d.ts +1 -4
  31. package/cjs/browser/detached-browser/DetachedBrowserFrame.d.ts.map +1 -1
  32. package/cjs/browser/types/IBrowser.cjs +24 -0
  33. package/cjs/browser/types/IBrowser.cjs.map +1 -1
  34. package/cjs/browser/types/IBrowser.d.ts +3 -0
  35. package/cjs/browser/types/IBrowser.d.ts.map +1 -1
  36. package/cjs/browser/types/IBrowserFrame.d.ts +0 -3
  37. package/cjs/browser/types/IBrowserFrame.d.ts.map +1 -1
  38. package/cjs/browser/types/IBrowserSettings.d.ts +1 -0
  39. package/cjs/browser/types/IBrowserSettings.d.ts.map +1 -1
  40. package/cjs/browser/utilities/BrowserExceptionObserver.cjs +100 -0
  41. package/cjs/browser/utilities/BrowserExceptionObserver.cjs.map +1 -0
  42. package/{lib/browser/utilities/BrowserFrameExceptionObserver.d.ts → cjs/browser/utilities/BrowserExceptionObserver.d.ts} +9 -7
  43. package/cjs/browser/utilities/BrowserExceptionObserver.d.ts.map +1 -0
  44. package/cjs/browser/utilities/BrowserFrameFactory.cjs +27 -35
  45. package/cjs/browser/utilities/BrowserFrameFactory.cjs.map +1 -1
  46. package/cjs/browser/utilities/BrowserFrameFactory.d.ts.map +1 -1
  47. package/cjs/browser/utilities/BrowserFrameNavigator.cjs +52 -29
  48. package/cjs/browser/utilities/BrowserFrameNavigator.cjs.map +1 -1
  49. package/cjs/browser/utilities/BrowserFrameNavigator.d.ts.map +1 -1
  50. package/cjs/clipboard/Clipboard.cjs +18 -15
  51. package/cjs/clipboard/Clipboard.cjs.map +1 -1
  52. package/cjs/clipboard/Clipboard.d.ts +2 -2
  53. package/cjs/clipboard/Clipboard.d.ts.map +1 -1
  54. package/cjs/css/declaration/AbstractCSSStyleDeclaration.cjs +27 -4
  55. package/cjs/css/declaration/AbstractCSSStyleDeclaration.cjs.map +1 -1
  56. package/cjs/css/declaration/element-style/CSSStyleDeclarationElementStyle.cjs +6 -5
  57. package/cjs/css/declaration/element-style/CSSStyleDeclarationElementStyle.cjs.map +1 -1
  58. package/cjs/css/declaration/element-style/CSSStyleDeclarationElementStyle.d.ts.map +1 -1
  59. package/cjs/css/declaration/measurement-converter/CSSMeasurementConverter.cjs +5 -5
  60. package/cjs/css/declaration/measurement-converter/CSSMeasurementConverter.cjs.map +1 -1
  61. package/cjs/css/declaration/measurement-converter/CSSMeasurementConverter.d.ts +2 -2
  62. package/cjs/css/declaration/measurement-converter/CSSMeasurementConverter.d.ts.map +1 -1
  63. package/cjs/custom-element/CustomElementRegistry.cjs +37 -17
  64. package/cjs/custom-element/CustomElementRegistry.cjs.map +1 -1
  65. package/cjs/custom-element/CustomElementRegistry.d.ts +2 -3
  66. package/cjs/custom-element/CustomElementRegistry.d.ts.map +1 -1
  67. package/cjs/dom-implementation/DOMImplementation.cjs +12 -7
  68. package/cjs/dom-implementation/DOMImplementation.cjs.map +1 -1
  69. package/cjs/dom-implementation/DOMImplementation.d.ts +7 -3
  70. package/cjs/dom-implementation/DOMImplementation.d.ts.map +1 -1
  71. package/cjs/dom-parser/DOMParser.cjs +6 -15
  72. package/cjs/dom-parser/DOMParser.cjs.map +1 -1
  73. package/cjs/dom-parser/DOMParser.d.ts +2 -6
  74. package/cjs/dom-parser/DOMParser.d.ts.map +1 -1
  75. package/cjs/event/Event.cjs +76 -18
  76. package/cjs/event/Event.cjs.map +1 -1
  77. package/cjs/event/Event.d.ts +49 -7
  78. package/cjs/event/Event.d.ts.map +1 -1
  79. package/cjs/event/EventTarget.cjs +153 -141
  80. package/cjs/event/EventTarget.cjs.map +1 -1
  81. package/cjs/event/EventTarget.d.ts +12 -8
  82. package/cjs/event/EventTarget.d.ts.map +1 -1
  83. package/cjs/event/MessagePort.cjs.map +1 -1
  84. package/cjs/event/MessagePort.d.ts +1 -2
  85. package/cjs/event/MessagePort.d.ts.map +1 -1
  86. package/cjs/event/{IEventListener.cjs → TEventListener.cjs} +1 -1
  87. package/cjs/event/TEventListener.cjs.map +1 -0
  88. package/cjs/event/TEventListener.d.ts +5 -0
  89. package/cjs/event/TEventListener.d.ts.map +1 -0
  90. package/cjs/event/TEventListenerFunction.cjs +3 -0
  91. package/cjs/event/TEventListenerFunction.cjs.map +1 -0
  92. package/cjs/event/TEventListenerFunction.d.ts +4 -0
  93. package/cjs/event/TEventListenerFunction.d.ts.map +1 -0
  94. package/cjs/event/{IMessagePort.cjs → TEventListenerObject.cjs} +1 -1
  95. package/cjs/event/TEventListenerObject.cjs.map +1 -0
  96. package/cjs/event/TEventListenerObject.d.ts +6 -0
  97. package/cjs/event/TEventListenerObject.d.ts.map +1 -0
  98. package/cjs/event/events/CustomEvent.cjs +38 -6
  99. package/cjs/event/events/CustomEvent.cjs.map +1 -1
  100. package/cjs/event/events/CustomEvent.d.ts +8 -1
  101. package/cjs/event/events/CustomEvent.d.ts.map +1 -1
  102. package/cjs/event/events/IErrorEventInit.d.ts.map +1 -1
  103. package/cjs/event/events/IMessageEventInit.d.ts +2 -2
  104. package/cjs/event/events/IMessageEventInit.d.ts.map +1 -1
  105. package/cjs/event/events/MessageEvent.cjs.map +1 -1
  106. package/cjs/event/events/MessageEvent.d.ts +2 -2
  107. package/cjs/event/events/MessageEvent.d.ts.map +1 -1
  108. package/cjs/fetch/AbortController.cjs +2 -11
  109. package/cjs/fetch/AbortController.cjs.map +1 -1
  110. package/cjs/fetch/AbortController.d.ts +3 -4
  111. package/cjs/fetch/AbortController.d.ts.map +1 -1
  112. package/cjs/fetch/AbortSignal.cjs +48 -4
  113. package/cjs/fetch/AbortSignal.cjs.map +1 -1
  114. package/cjs/fetch/AbortSignal.d.ts +19 -0
  115. package/cjs/fetch/AbortSignal.d.ts.map +1 -1
  116. package/cjs/fetch/Fetch.cjs +24 -14
  117. package/cjs/fetch/Fetch.cjs.map +1 -1
  118. package/cjs/fetch/Fetch.d.ts.map +1 -1
  119. package/cjs/fetch/Request.cjs +62 -45
  120. package/cjs/fetch/Request.cjs.map +1 -1
  121. package/cjs/fetch/Request.d.ts +3 -14
  122. package/cjs/fetch/Request.d.ts.map +1 -1
  123. package/cjs/fetch/ResourceFetch.cjs +2 -3
  124. package/cjs/fetch/ResourceFetch.cjs.map +1 -1
  125. package/cjs/fetch/ResourceFetch.d.ts.map +1 -1
  126. package/cjs/fetch/Response.cjs +63 -40
  127. package/cjs/fetch/Response.cjs.map +1 -1
  128. package/cjs/fetch/Response.d.ts +3 -10
  129. package/cjs/fetch/Response.d.ts.map +1 -1
  130. package/cjs/fetch/SyncFetch.cjs +12 -13
  131. package/cjs/fetch/SyncFetch.cjs.map +1 -1
  132. package/cjs/fetch/SyncFetch.d.ts.map +1 -1
  133. package/cjs/fetch/multipart/MultipartFormDataParser.cjs +12 -6
  134. package/cjs/fetch/multipart/MultipartFormDataParser.cjs.map +1 -1
  135. package/cjs/fetch/multipart/MultipartFormDataParser.d.ts +3 -1
  136. package/cjs/fetch/multipart/MultipartFormDataParser.d.ts.map +1 -1
  137. package/cjs/fetch/multipart/MultipartReader.cjs +5 -3
  138. package/cjs/fetch/multipart/MultipartReader.cjs.map +1 -1
  139. package/cjs/fetch/multipart/MultipartReader.d.ts +4 -1
  140. package/cjs/fetch/multipart/MultipartReader.d.ts.map +1 -1
  141. package/cjs/fetch/utilities/FetchBodyUtility.cjs +10 -5
  142. package/cjs/fetch/utilities/FetchBodyUtility.cjs.map +1 -1
  143. package/cjs/fetch/utilities/FetchBodyUtility.d.ts +5 -2
  144. package/cjs/fetch/utilities/FetchBodyUtility.d.ts.map +1 -1
  145. package/cjs/file/FileReader.cjs +11 -11
  146. package/cjs/file/FileReader.cjs.map +1 -1
  147. package/cjs/file/FileReader.d.ts +1 -4
  148. package/cjs/file/FileReader.d.ts.map +1 -1
  149. package/cjs/history/History.cjs +28 -14
  150. package/cjs/history/History.cjs.map +1 -1
  151. package/cjs/history/History.d.ts +2 -2
  152. package/cjs/history/History.d.ts.map +1 -1
  153. package/cjs/index.d.ts +2 -2
  154. package/cjs/location/Location.cjs +43 -22
  155. package/cjs/location/Location.cjs.map +1 -1
  156. package/cjs/location/Location.d.ts +4 -0
  157. package/cjs/location/Location.d.ts.map +1 -1
  158. package/cjs/match-media/MediaQueryItem.cjs +26 -26
  159. package/cjs/match-media/MediaQueryItem.cjs.map +1 -1
  160. package/cjs/match-media/MediaQueryItem.d.ts +3 -3
  161. package/cjs/match-media/MediaQueryItem.d.ts.map +1 -1
  162. package/cjs/match-media/MediaQueryList.cjs +7 -7
  163. package/cjs/match-media/MediaQueryList.cjs.map +1 -1
  164. package/cjs/match-media/MediaQueryList.d.ts +5 -5
  165. package/cjs/match-media/MediaQueryList.d.ts.map +1 -1
  166. package/cjs/match-media/MediaQueryParser.cjs +4 -4
  167. package/cjs/match-media/MediaQueryParser.cjs.map +1 -1
  168. package/cjs/match-media/MediaQueryParser.d.ts +2 -2
  169. package/cjs/match-media/MediaQueryParser.d.ts.map +1 -1
  170. package/cjs/mutation-observer/MutationObserver.cjs +17 -15
  171. package/cjs/mutation-observer/MutationObserver.cjs.map +1 -1
  172. package/cjs/mutation-observer/MutationObserver.d.ts +3 -0
  173. package/cjs/mutation-observer/MutationObserver.d.ts.map +1 -1
  174. package/cjs/navigator/Navigator.cjs +13 -10
  175. package/cjs/navigator/Navigator.cjs.map +1 -1
  176. package/cjs/navigator/Navigator.d.ts +2 -2
  177. package/cjs/navigator/Navigator.d.ts.map +1 -1
  178. package/cjs/nodes/NodeFactory.cjs +1 -1
  179. package/cjs/nodes/NodeFactory.cjs.map +1 -1
  180. package/cjs/nodes/document/Document.cjs +69 -51
  181. package/cjs/nodes/document/Document.cjs.map +1 -1
  182. package/cjs/nodes/document/Document.d.ts +9 -16
  183. package/cjs/nodes/document/Document.d.ts.map +1 -1
  184. package/cjs/nodes/document/DocumentReadyStateManager.cjs +12 -10
  185. package/cjs/nodes/document/DocumentReadyStateManager.cjs.map +1 -1
  186. package/cjs/nodes/document/DocumentReadyStateManager.d.ts.map +1 -1
  187. package/cjs/nodes/element/Element.cjs +33 -20
  188. package/cjs/nodes/element/Element.cjs.map +1 -1
  189. package/cjs/nodes/element/Element.d.ts +7 -3
  190. package/cjs/nodes/element/Element.d.ts.map +1 -1
  191. package/cjs/nodes/element/HTMLCollection.cjs +1 -4
  192. package/cjs/nodes/element/HTMLCollection.cjs.map +1 -1
  193. package/cjs/nodes/element/HTMLCollection.d.ts.map +1 -1
  194. package/cjs/nodes/element/NamedNodeMap.cjs +4 -0
  195. package/cjs/nodes/element/NamedNodeMap.cjs.map +1 -1
  196. package/cjs/nodes/element/NamedNodeMap.d.ts.map +1 -1
  197. package/cjs/nodes/element/NamedNodeMapProxyFactory.cjs +0 -9
  198. package/cjs/nodes/element/NamedNodeMapProxyFactory.cjs.map +1 -1
  199. package/cjs/nodes/element/NamedNodeMapProxyFactory.d.ts.map +1 -1
  200. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.cjs +5 -5
  201. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.cjs.map +1 -1
  202. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
  203. package/cjs/nodes/html-area-element/HTMLAreaElement.cjs +7 -8
  204. package/cjs/nodes/html-area-element/HTMLAreaElement.cjs.map +1 -1
  205. package/cjs/nodes/html-area-element/HTMLAreaElement.d.ts.map +1 -1
  206. package/cjs/nodes/html-audio-element/Audio.cjs +28 -0
  207. package/cjs/nodes/html-audio-element/Audio.cjs.map +1 -1
  208. package/cjs/nodes/html-audio-element/Audio.d.ts +4 -0
  209. package/cjs/nodes/html-audio-element/Audio.d.ts.map +1 -1
  210. package/cjs/nodes/html-button-element/HTMLButtonElement.cjs +63 -35
  211. package/cjs/nodes/html-button-element/HTMLButtonElement.cjs.map +1 -1
  212. package/cjs/nodes/html-button-element/HTMLButtonElement.d.ts +27 -3
  213. package/cjs/nodes/html-button-element/HTMLButtonElement.d.ts.map +1 -1
  214. package/cjs/nodes/html-canvas-element/HTMLCanvasElement.cjs +2 -4
  215. package/cjs/nodes/html-canvas-element/HTMLCanvasElement.cjs.map +1 -1
  216. package/cjs/nodes/html-canvas-element/HTMLCanvasElement.d.ts.map +1 -1
  217. package/cjs/nodes/html-document/HTMLDocument.cjs +2 -6
  218. package/cjs/nodes/html-document/HTMLDocument.cjs.map +1 -1
  219. package/cjs/nodes/html-document/HTMLDocument.d.ts +1 -10
  220. package/cjs/nodes/html-document/HTMLDocument.d.ts.map +1 -1
  221. package/cjs/nodes/html-element/HTMLElement.cjs +130 -89
  222. package/cjs/nodes/html-element/HTMLElement.cjs.map +1 -1
  223. package/cjs/nodes/html-element/HTMLElement.d.ts +14 -2
  224. package/cjs/nodes/html-element/HTMLElement.d.ts.map +1 -1
  225. package/cjs/nodes/html-form-element/HTMLFormElement.cjs +6 -7
  226. package/cjs/nodes/html-form-element/HTMLFormElement.cjs.map +1 -1
  227. package/cjs/nodes/html-form-element/HTMLFormElement.d.ts +1 -3
  228. package/cjs/nodes/html-form-element/HTMLFormElement.d.ts.map +1 -1
  229. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs +30 -38
  230. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs.map +1 -1
  231. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.d.ts +0 -6
  232. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
  233. package/cjs/nodes/html-image-element/Image.cjs +28 -0
  234. package/cjs/nodes/html-image-element/Image.cjs.map +1 -1
  235. package/cjs/nodes/html-image-element/Image.d.ts +4 -0
  236. package/cjs/nodes/html-image-element/Image.d.ts.map +1 -1
  237. package/cjs/nodes/html-input-element/HTMLInputElement.cjs +88 -56
  238. package/cjs/nodes/html-input-element/HTMLInputElement.cjs.map +1 -1
  239. package/cjs/nodes/html-input-element/HTMLInputElement.d.ts +25 -0
  240. package/cjs/nodes/html-input-element/HTMLInputElement.d.ts.map +1 -1
  241. package/cjs/nodes/html-label-element/HTMLLabelElement.cjs +4 -3
  242. package/cjs/nodes/html-label-element/HTMLLabelElement.cjs.map +1 -1
  243. package/cjs/nodes/html-label-element/HTMLLabelElement.d.ts +8 -1
  244. package/cjs/nodes/html-label-element/HTMLLabelElement.d.ts.map +1 -1
  245. package/cjs/nodes/html-link-element/HTMLLinkElement.cjs +10 -16
  246. package/cjs/nodes/html-link-element/HTMLLinkElement.cjs.map +1 -1
  247. package/cjs/nodes/html-link-element/HTMLLinkElement.d.ts +0 -6
  248. package/cjs/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
  249. package/cjs/nodes/html-media-element/HTMLMediaElement.cjs +12 -16
  250. package/cjs/nodes/html-media-element/HTMLMediaElement.cjs.map +1 -1
  251. package/cjs/nodes/html-media-element/HTMLMediaElement.d.ts.map +1 -1
  252. package/cjs/nodes/html-media-element/MediaStream.cjs +3 -0
  253. package/cjs/nodes/html-media-element/MediaStream.cjs.map +1 -1
  254. package/cjs/nodes/html-media-element/MediaStream.d.ts.map +1 -1
  255. package/cjs/nodes/html-media-element/MediaStreamTrack.cjs +3 -0
  256. package/cjs/nodes/html-media-element/MediaStreamTrack.cjs.map +1 -1
  257. package/cjs/nodes/html-media-element/MediaStreamTrack.d.ts.map +1 -1
  258. package/cjs/nodes/html-media-element/TextTrack.cjs +3 -0
  259. package/cjs/nodes/html-media-element/TextTrack.cjs.map +1 -1
  260. package/cjs/nodes/html-media-element/TextTrack.d.ts.map +1 -1
  261. package/cjs/nodes/html-media-element/TextTrackCue.cjs +3 -0
  262. package/cjs/nodes/html-media-element/TextTrackCue.cjs.map +1 -1
  263. package/cjs/nodes/html-media-element/TextTrackCue.d.ts.map +1 -1
  264. package/cjs/nodes/html-media-element/VTTCue.cjs +7 -8
  265. package/cjs/nodes/html-media-element/VTTCue.cjs.map +1 -1
  266. package/cjs/nodes/html-media-element/VTTCue.d.ts +1 -4
  267. package/cjs/nodes/html-media-element/VTTCue.d.ts.map +1 -1
  268. package/cjs/nodes/html-meter-element/HTMLMeterElement.cjs +30 -6
  269. package/cjs/nodes/html-meter-element/HTMLMeterElement.cjs.map +1 -1
  270. package/cjs/nodes/html-meter-element/HTMLMeterElement.d.ts.map +1 -1
  271. package/cjs/nodes/html-progress-element/HTMLProgressElement.cjs +26 -2
  272. package/cjs/nodes/html-progress-element/HTMLProgressElement.cjs.map +1 -1
  273. package/cjs/nodes/html-progress-element/HTMLProgressElement.d.ts.map +1 -1
  274. package/cjs/nodes/html-script-element/HTMLScriptElement.cjs +21 -27
  275. package/cjs/nodes/html-script-element/HTMLScriptElement.cjs.map +1 -1
  276. package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts +0 -6
  277. package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
  278. package/cjs/nodes/html-select-element/HTMLSelectElement.cjs +5 -5
  279. package/cjs/nodes/html-select-element/HTMLSelectElement.cjs.map +1 -1
  280. package/cjs/nodes/html-select-element/HTMLSelectElement.d.ts.map +1 -1
  281. package/cjs/nodes/html-table-element/HTMLTableElement.cjs +8 -9
  282. package/cjs/nodes/html-table-element/HTMLTableElement.cjs.map +1 -1
  283. package/cjs/nodes/html-table-element/HTMLTableElement.d.ts.map +1 -1
  284. package/cjs/nodes/html-table-row-element/HTMLTableRowElement.cjs +5 -6
  285. package/cjs/nodes/html-table-row-element/HTMLTableRowElement.cjs.map +1 -1
  286. package/cjs/nodes/html-table-row-element/HTMLTableRowElement.d.ts.map +1 -1
  287. package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.cjs +1 -2
  288. package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.cjs.map +1 -1
  289. package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.d.ts.map +1 -1
  290. package/cjs/nodes/html-track-element/HTMLTrackElement.cjs +1 -2
  291. package/cjs/nodes/html-track-element/HTMLTrackElement.cjs.map +1 -1
  292. package/cjs/nodes/node/Node.cjs +23 -22
  293. package/cjs/nodes/node/Node.cjs.map +1 -1
  294. package/cjs/nodes/node/Node.d.ts +1 -2
  295. package/cjs/nodes/node/Node.d.ts.map +1 -1
  296. package/cjs/nodes/node/NodeList.cjs +4 -6
  297. package/cjs/nodes/node/NodeList.cjs.map +1 -1
  298. package/cjs/nodes/node/NodeList.d.ts.map +1 -1
  299. package/cjs/nodes/text/Text.cjs +1 -2
  300. package/cjs/nodes/text/Text.cjs.map +1 -1
  301. package/cjs/nodes/text/Text.d.ts.map +1 -1
  302. package/cjs/permissions/Permissions.cjs +13 -2
  303. package/cjs/permissions/Permissions.cjs.map +1 -1
  304. package/cjs/permissions/Permissions.d.ts +7 -0
  305. package/cjs/permissions/Permissions.d.ts.map +1 -1
  306. package/cjs/query-selector/QuerySelector.cjs +12 -10
  307. package/cjs/query-selector/QuerySelector.cjs.map +1 -1
  308. package/cjs/query-selector/QuerySelector.d.ts.map +1 -1
  309. package/cjs/range/Range.cjs +26 -23
  310. package/cjs/range/Range.cjs.map +1 -1
  311. package/cjs/range/Range.d.ts +2 -2
  312. package/cjs/range/Range.d.ts.map +1 -1
  313. package/cjs/selection/Selection.cjs +16 -17
  314. package/cjs/selection/Selection.cjs.map +1 -1
  315. package/cjs/selection/Selection.d.ts.map +1 -1
  316. package/cjs/window/BrowserWindow.cjs +136 -266
  317. package/cjs/window/BrowserWindow.cjs.map +1 -1
  318. package/cjs/window/BrowserWindow.d.ts +115 -117
  319. package/cjs/window/BrowserWindow.d.ts.map +1 -1
  320. package/cjs/window/VMGlobalPropertyScript.cjs +0 -1
  321. package/cjs/window/VMGlobalPropertyScript.cjs.map +1 -1
  322. package/cjs/window/VMGlobalPropertyScript.d.ts.map +1 -1
  323. package/cjs/window/WindowBrowserContext.cjs +117 -0
  324. package/cjs/window/WindowBrowserContext.cjs.map +1 -0
  325. package/cjs/window/WindowBrowserContext.d.ts +75 -0
  326. package/cjs/window/WindowBrowserContext.d.ts.map +1 -0
  327. package/cjs/window/WindowClassExtender.cjs +332 -0
  328. package/cjs/window/WindowClassExtender.cjs.map +1 -0
  329. package/cjs/window/WindowClassExtender.d.ts +15 -0
  330. package/cjs/window/WindowClassExtender.d.ts.map +1 -0
  331. package/cjs/window/WindowPageOpenUtility.cjs +11 -1
  332. package/cjs/window/WindowPageOpenUtility.cjs.map +1 -1
  333. package/cjs/window/WindowPageOpenUtility.d.ts.map +1 -1
  334. package/cjs/xml-http-request/XMLHttpRequest.cjs +33 -33
  335. package/cjs/xml-http-request/XMLHttpRequest.cjs.map +1 -1
  336. package/cjs/xml-http-request/XMLHttpRequest.d.ts +2 -11
  337. package/cjs/xml-http-request/XMLHttpRequest.d.ts.map +1 -1
  338. package/lib/ClassMethodBinder.d.ts +4 -2
  339. package/lib/ClassMethodBinder.d.ts.map +1 -1
  340. package/lib/ClassMethodBinder.js +8 -6
  341. package/lib/ClassMethodBinder.js.map +1 -1
  342. package/lib/PropertySymbol.d.ts +15 -4
  343. package/lib/PropertySymbol.d.ts.map +1 -1
  344. package/lib/PropertySymbol.js +15 -4
  345. package/lib/PropertySymbol.js.map +1 -1
  346. package/lib/async-task-manager/AsyncTaskManager.d.ts +11 -1
  347. package/lib/async-task-manager/AsyncTaskManager.d.ts.map +1 -1
  348. package/lib/async-task-manager/AsyncTaskManager.js +64 -35
  349. package/lib/async-task-manager/AsyncTaskManager.js.map +1 -1
  350. package/lib/browser/Browser.d.ts +3 -0
  351. package/lib/browser/Browser.d.ts.map +1 -1
  352. package/lib/browser/Browser.js +7 -0
  353. package/lib/browser/Browser.js.map +1 -1
  354. package/lib/browser/BrowserFrame.d.ts +1 -4
  355. package/lib/browser/BrowserFrame.d.ts.map +1 -1
  356. package/lib/browser/BrowserFrame.js +3 -7
  357. package/lib/browser/BrowserFrame.js.map +1 -1
  358. package/lib/browser/DefaultBrowserSettings.d.ts.map +1 -1
  359. package/lib/browser/DefaultBrowserSettings.js +2 -1
  360. package/lib/browser/DefaultBrowserSettings.js.map +1 -1
  361. package/lib/browser/detached-browser/DetachedBrowser.d.ts +3 -0
  362. package/lib/browser/detached-browser/DetachedBrowser.d.ts.map +1 -1
  363. package/lib/browser/detached-browser/DetachedBrowser.js +7 -0
  364. package/lib/browser/detached-browser/DetachedBrowser.js.map +1 -1
  365. package/lib/browser/detached-browser/DetachedBrowserFrame.d.ts +1 -4
  366. package/lib/browser/detached-browser/DetachedBrowserFrame.d.ts.map +1 -1
  367. package/lib/browser/detached-browser/DetachedBrowserFrame.js +3 -7
  368. package/lib/browser/detached-browser/DetachedBrowserFrame.js.map +1 -1
  369. package/lib/browser/types/IBrowser.d.ts +3 -0
  370. package/lib/browser/types/IBrowser.d.ts.map +1 -1
  371. package/lib/browser/types/IBrowser.js +1 -1
  372. package/lib/browser/types/IBrowser.js.map +1 -1
  373. package/lib/browser/types/IBrowserFrame.d.ts +0 -3
  374. package/lib/browser/types/IBrowserFrame.d.ts.map +1 -1
  375. package/lib/browser/types/IBrowserSettings.d.ts +1 -0
  376. package/lib/browser/types/IBrowserSettings.d.ts.map +1 -1
  377. package/{cjs/browser/utilities/BrowserFrameExceptionObserver.d.ts → lib/browser/utilities/BrowserExceptionObserver.d.ts} +9 -7
  378. package/lib/browser/utilities/BrowserExceptionObserver.d.ts.map +1 -0
  379. package/lib/browser/utilities/BrowserExceptionObserver.js +97 -0
  380. package/lib/browser/utilities/BrowserExceptionObserver.js.map +1 -0
  381. package/lib/browser/utilities/BrowserFrameFactory.d.ts.map +1 -1
  382. package/lib/browser/utilities/BrowserFrameFactory.js +27 -35
  383. package/lib/browser/utilities/BrowserFrameFactory.js.map +1 -1
  384. package/lib/browser/utilities/BrowserFrameNavigator.d.ts.map +1 -1
  385. package/lib/browser/utilities/BrowserFrameNavigator.js +52 -29
  386. package/lib/browser/utilities/BrowserFrameNavigator.js.map +1 -1
  387. package/lib/clipboard/Clipboard.d.ts +2 -2
  388. package/lib/clipboard/Clipboard.d.ts.map +1 -1
  389. package/lib/clipboard/Clipboard.js +18 -15
  390. package/lib/clipboard/Clipboard.js.map +1 -1
  391. package/lib/css/declaration/AbstractCSSStyleDeclaration.js +4 -4
  392. package/lib/css/declaration/AbstractCSSStyleDeclaration.js.map +1 -1
  393. package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.d.ts.map +1 -1
  394. package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.js +6 -5
  395. package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.js.map +1 -1
  396. package/lib/css/declaration/measurement-converter/CSSMeasurementConverter.d.ts +2 -2
  397. package/lib/css/declaration/measurement-converter/CSSMeasurementConverter.d.ts.map +1 -1
  398. package/lib/css/declaration/measurement-converter/CSSMeasurementConverter.js +5 -5
  399. package/lib/css/declaration/measurement-converter/CSSMeasurementConverter.js.map +1 -1
  400. package/lib/custom-element/CustomElementRegistry.d.ts +2 -3
  401. package/lib/custom-element/CustomElementRegistry.d.ts.map +1 -1
  402. package/lib/custom-element/CustomElementRegistry.js +37 -17
  403. package/lib/custom-element/CustomElementRegistry.js.map +1 -1
  404. package/lib/dom-implementation/DOMImplementation.d.ts +7 -3
  405. package/lib/dom-implementation/DOMImplementation.d.ts.map +1 -1
  406. package/lib/dom-implementation/DOMImplementation.js +12 -7
  407. package/lib/dom-implementation/DOMImplementation.js.map +1 -1
  408. package/lib/dom-parser/DOMParser.d.ts +2 -6
  409. package/lib/dom-parser/DOMParser.d.ts.map +1 -1
  410. package/lib/dom-parser/DOMParser.js +6 -15
  411. package/lib/dom-parser/DOMParser.js.map +1 -1
  412. package/lib/event/Event.d.ts +49 -7
  413. package/lib/event/Event.d.ts.map +1 -1
  414. package/lib/event/Event.js +76 -18
  415. package/lib/event/Event.js.map +1 -1
  416. package/lib/event/EventTarget.d.ts +12 -8
  417. package/lib/event/EventTarget.d.ts.map +1 -1
  418. package/lib/event/EventTarget.js +153 -141
  419. package/lib/event/EventTarget.js.map +1 -1
  420. package/lib/event/MessagePort.d.ts +1 -2
  421. package/lib/event/MessagePort.d.ts.map +1 -1
  422. package/lib/event/MessagePort.js.map +1 -1
  423. package/lib/event/TEventListener.d.ts +5 -0
  424. package/lib/event/TEventListener.d.ts.map +1 -0
  425. package/lib/event/TEventListener.js +2 -0
  426. package/lib/event/TEventListener.js.map +1 -0
  427. package/lib/event/TEventListenerFunction.d.ts +4 -0
  428. package/lib/event/TEventListenerFunction.d.ts.map +1 -0
  429. package/lib/event/TEventListenerFunction.js +2 -0
  430. package/lib/event/TEventListenerFunction.js.map +1 -0
  431. package/lib/event/TEventListenerObject.d.ts +6 -0
  432. package/lib/event/TEventListenerObject.d.ts.map +1 -0
  433. package/lib/event/TEventListenerObject.js +2 -0
  434. package/lib/event/TEventListenerObject.js.map +1 -0
  435. package/lib/event/events/CustomEvent.d.ts +8 -1
  436. package/lib/event/events/CustomEvent.d.ts.map +1 -1
  437. package/lib/event/events/CustomEvent.js +15 -6
  438. package/lib/event/events/CustomEvent.js.map +1 -1
  439. package/lib/event/events/IErrorEventInit.d.ts.map +1 -1
  440. package/lib/event/events/IMessageEventInit.d.ts +2 -2
  441. package/lib/event/events/IMessageEventInit.d.ts.map +1 -1
  442. package/lib/event/events/MessageEvent.d.ts +2 -2
  443. package/lib/event/events/MessageEvent.d.ts.map +1 -1
  444. package/lib/event/events/MessageEvent.js.map +1 -1
  445. package/lib/fetch/AbortController.d.ts +3 -4
  446. package/lib/fetch/AbortController.d.ts.map +1 -1
  447. package/lib/fetch/AbortController.js +2 -8
  448. package/lib/fetch/AbortController.js.map +1 -1
  449. package/lib/fetch/AbortSignal.d.ts +19 -0
  450. package/lib/fetch/AbortSignal.d.ts.map +1 -1
  451. package/lib/fetch/AbortSignal.js +48 -4
  452. package/lib/fetch/AbortSignal.js.map +1 -1
  453. package/lib/fetch/Fetch.d.ts.map +1 -1
  454. package/lib/fetch/Fetch.js +24 -14
  455. package/lib/fetch/Fetch.js.map +1 -1
  456. package/lib/fetch/Request.d.ts +3 -14
  457. package/lib/fetch/Request.d.ts.map +1 -1
  458. package/lib/fetch/Request.js +62 -45
  459. package/lib/fetch/Request.js.map +1 -1
  460. package/lib/fetch/ResourceFetch.d.ts.map +1 -1
  461. package/lib/fetch/ResourceFetch.js +2 -3
  462. package/lib/fetch/ResourceFetch.js.map +1 -1
  463. package/lib/fetch/Response.d.ts +3 -10
  464. package/lib/fetch/Response.d.ts.map +1 -1
  465. package/lib/fetch/Response.js +63 -40
  466. package/lib/fetch/Response.js.map +1 -1
  467. package/lib/fetch/SyncFetch.d.ts.map +1 -1
  468. package/lib/fetch/SyncFetch.js +12 -13
  469. package/lib/fetch/SyncFetch.js.map +1 -1
  470. package/lib/fetch/multipart/MultipartFormDataParser.d.ts +3 -1
  471. package/lib/fetch/multipart/MultipartFormDataParser.d.ts.map +1 -1
  472. package/lib/fetch/multipart/MultipartFormDataParser.js +12 -6
  473. package/lib/fetch/multipart/MultipartFormDataParser.js.map +1 -1
  474. package/lib/fetch/multipart/MultipartReader.d.ts +4 -1
  475. package/lib/fetch/multipart/MultipartReader.d.ts.map +1 -1
  476. package/lib/fetch/multipart/MultipartReader.js +5 -3
  477. package/lib/fetch/multipart/MultipartReader.js.map +1 -1
  478. package/lib/fetch/utilities/FetchBodyUtility.d.ts +5 -2
  479. package/lib/fetch/utilities/FetchBodyUtility.d.ts.map +1 -1
  480. package/lib/fetch/utilities/FetchBodyUtility.js +10 -5
  481. package/lib/fetch/utilities/FetchBodyUtility.js.map +1 -1
  482. package/lib/file/FileReader.d.ts +1 -4
  483. package/lib/file/FileReader.d.ts.map +1 -1
  484. package/lib/file/FileReader.js +11 -11
  485. package/lib/file/FileReader.js.map +1 -1
  486. package/lib/history/History.d.ts +2 -2
  487. package/lib/history/History.d.ts.map +1 -1
  488. package/lib/history/History.js +28 -14
  489. package/lib/history/History.js.map +1 -1
  490. package/lib/index.d.ts +2 -2
  491. package/lib/location/Location.d.ts +4 -0
  492. package/lib/location/Location.d.ts.map +1 -1
  493. package/lib/location/Location.js +43 -22
  494. package/lib/location/Location.js.map +1 -1
  495. package/lib/match-media/MediaQueryItem.d.ts +3 -3
  496. package/lib/match-media/MediaQueryItem.d.ts.map +1 -1
  497. package/lib/match-media/MediaQueryItem.js +26 -26
  498. package/lib/match-media/MediaQueryItem.js.map +1 -1
  499. package/lib/match-media/MediaQueryList.d.ts +5 -5
  500. package/lib/match-media/MediaQueryList.d.ts.map +1 -1
  501. package/lib/match-media/MediaQueryList.js +7 -7
  502. package/lib/match-media/MediaQueryList.js.map +1 -1
  503. package/lib/match-media/MediaQueryParser.d.ts +2 -2
  504. package/lib/match-media/MediaQueryParser.d.ts.map +1 -1
  505. package/lib/match-media/MediaQueryParser.js +4 -4
  506. package/lib/match-media/MediaQueryParser.js.map +1 -1
  507. package/lib/mutation-observer/MutationObserver.d.ts +3 -0
  508. package/lib/mutation-observer/MutationObserver.d.ts.map +1 -1
  509. package/lib/mutation-observer/MutationObserver.js +17 -15
  510. package/lib/mutation-observer/MutationObserver.js.map +1 -1
  511. package/lib/navigator/Navigator.d.ts +2 -2
  512. package/lib/navigator/Navigator.d.ts.map +1 -1
  513. package/lib/navigator/Navigator.js +13 -10
  514. package/lib/navigator/Navigator.js.map +1 -1
  515. package/lib/nodes/NodeFactory.js +1 -1
  516. package/lib/nodes/NodeFactory.js.map +1 -1
  517. package/lib/nodes/document/Document.d.ts +9 -16
  518. package/lib/nodes/document/Document.d.ts.map +1 -1
  519. package/lib/nodes/document/Document.js +69 -51
  520. package/lib/nodes/document/Document.js.map +1 -1
  521. package/lib/nodes/document/DocumentReadyStateManager.d.ts.map +1 -1
  522. package/lib/nodes/document/DocumentReadyStateManager.js +12 -10
  523. package/lib/nodes/document/DocumentReadyStateManager.js.map +1 -1
  524. package/lib/nodes/element/Element.d.ts +7 -3
  525. package/lib/nodes/element/Element.d.ts.map +1 -1
  526. package/lib/nodes/element/Element.js +33 -20
  527. package/lib/nodes/element/Element.js.map +1 -1
  528. package/lib/nodes/element/HTMLCollection.d.ts.map +1 -1
  529. package/lib/nodes/element/HTMLCollection.js +1 -4
  530. package/lib/nodes/element/HTMLCollection.js.map +1 -1
  531. package/lib/nodes/element/NamedNodeMap.d.ts.map +1 -1
  532. package/lib/nodes/element/NamedNodeMap.js +4 -0
  533. package/lib/nodes/element/NamedNodeMap.js.map +1 -1
  534. package/lib/nodes/element/NamedNodeMapProxyFactory.d.ts.map +1 -1
  535. package/lib/nodes/element/NamedNodeMapProxyFactory.js +0 -6
  536. package/lib/nodes/element/NamedNodeMapProxyFactory.js.map +1 -1
  537. package/lib/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
  538. package/lib/nodes/html-anchor-element/HTMLAnchorElement.js +5 -5
  539. package/lib/nodes/html-anchor-element/HTMLAnchorElement.js.map +1 -1
  540. package/lib/nodes/html-area-element/HTMLAreaElement.d.ts.map +1 -1
  541. package/lib/nodes/html-area-element/HTMLAreaElement.js +7 -8
  542. package/lib/nodes/html-area-element/HTMLAreaElement.js.map +1 -1
  543. package/lib/nodes/html-audio-element/Audio.d.ts +4 -0
  544. package/lib/nodes/html-audio-element/Audio.d.ts.map +1 -1
  545. package/lib/nodes/html-audio-element/Audio.js +5 -0
  546. package/lib/nodes/html-audio-element/Audio.js.map +1 -1
  547. package/lib/nodes/html-button-element/HTMLButtonElement.d.ts +27 -3
  548. package/lib/nodes/html-button-element/HTMLButtonElement.d.ts.map +1 -1
  549. package/lib/nodes/html-button-element/HTMLButtonElement.js +63 -35
  550. package/lib/nodes/html-button-element/HTMLButtonElement.js.map +1 -1
  551. package/lib/nodes/html-canvas-element/HTMLCanvasElement.d.ts.map +1 -1
  552. package/lib/nodes/html-canvas-element/HTMLCanvasElement.js +2 -4
  553. package/lib/nodes/html-canvas-element/HTMLCanvasElement.js.map +1 -1
  554. package/lib/nodes/html-document/HTMLDocument.d.ts +1 -10
  555. package/lib/nodes/html-document/HTMLDocument.d.ts.map +1 -1
  556. package/lib/nodes/html-document/HTMLDocument.js +2 -6
  557. package/lib/nodes/html-document/HTMLDocument.js.map +1 -1
  558. package/lib/nodes/html-element/HTMLElement.d.ts +14 -2
  559. package/lib/nodes/html-element/HTMLElement.d.ts.map +1 -1
  560. package/lib/nodes/html-element/HTMLElement.js +130 -89
  561. package/lib/nodes/html-element/HTMLElement.js.map +1 -1
  562. package/lib/nodes/html-form-element/HTMLFormElement.d.ts +1 -3
  563. package/lib/nodes/html-form-element/HTMLFormElement.d.ts.map +1 -1
  564. package/lib/nodes/html-form-element/HTMLFormElement.js +6 -7
  565. package/lib/nodes/html-form-element/HTMLFormElement.js.map +1 -1
  566. package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts +0 -6
  567. package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
  568. package/lib/nodes/html-iframe-element/HTMLIFrameElement.js +30 -38
  569. package/lib/nodes/html-iframe-element/HTMLIFrameElement.js.map +1 -1
  570. package/lib/nodes/html-image-element/Image.d.ts +4 -0
  571. package/lib/nodes/html-image-element/Image.d.ts.map +1 -1
  572. package/lib/nodes/html-image-element/Image.js +5 -0
  573. package/lib/nodes/html-image-element/Image.js.map +1 -1
  574. package/lib/nodes/html-input-element/HTMLInputElement.d.ts +25 -0
  575. package/lib/nodes/html-input-element/HTMLInputElement.d.ts.map +1 -1
  576. package/lib/nodes/html-input-element/HTMLInputElement.js +88 -56
  577. package/lib/nodes/html-input-element/HTMLInputElement.js.map +1 -1
  578. package/lib/nodes/html-label-element/HTMLLabelElement.d.ts +8 -1
  579. package/lib/nodes/html-label-element/HTMLLabelElement.d.ts.map +1 -1
  580. package/lib/nodes/html-label-element/HTMLLabelElement.js +4 -3
  581. package/lib/nodes/html-label-element/HTMLLabelElement.js.map +1 -1
  582. package/lib/nodes/html-link-element/HTMLLinkElement.d.ts +0 -6
  583. package/lib/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
  584. package/lib/nodes/html-link-element/HTMLLinkElement.js +10 -16
  585. package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
  586. package/lib/nodes/html-media-element/HTMLMediaElement.d.ts.map +1 -1
  587. package/lib/nodes/html-media-element/HTMLMediaElement.js +12 -16
  588. package/lib/nodes/html-media-element/HTMLMediaElement.js.map +1 -1
  589. package/lib/nodes/html-media-element/MediaStream.d.ts.map +1 -1
  590. package/lib/nodes/html-media-element/MediaStream.js +3 -0
  591. package/lib/nodes/html-media-element/MediaStream.js.map +1 -1
  592. package/lib/nodes/html-media-element/MediaStreamTrack.d.ts.map +1 -1
  593. package/lib/nodes/html-media-element/MediaStreamTrack.js +3 -0
  594. package/lib/nodes/html-media-element/MediaStreamTrack.js.map +1 -1
  595. package/lib/nodes/html-media-element/TextTrack.d.ts.map +1 -1
  596. package/lib/nodes/html-media-element/TextTrack.js +3 -0
  597. package/lib/nodes/html-media-element/TextTrack.js.map +1 -1
  598. package/lib/nodes/html-media-element/TextTrackCue.d.ts.map +1 -1
  599. package/lib/nodes/html-media-element/TextTrackCue.js +3 -0
  600. package/lib/nodes/html-media-element/TextTrackCue.js.map +1 -1
  601. package/lib/nodes/html-media-element/VTTCue.d.ts +1 -4
  602. package/lib/nodes/html-media-element/VTTCue.d.ts.map +1 -1
  603. package/lib/nodes/html-media-element/VTTCue.js +7 -8
  604. package/lib/nodes/html-media-element/VTTCue.js.map +1 -1
  605. package/lib/nodes/html-meter-element/HTMLMeterElement.d.ts.map +1 -1
  606. package/lib/nodes/html-meter-element/HTMLMeterElement.js +7 -6
  607. package/lib/nodes/html-meter-element/HTMLMeterElement.js.map +1 -1
  608. package/lib/nodes/html-progress-element/HTMLProgressElement.d.ts.map +1 -1
  609. package/lib/nodes/html-progress-element/HTMLProgressElement.js +3 -2
  610. package/lib/nodes/html-progress-element/HTMLProgressElement.js.map +1 -1
  611. package/lib/nodes/html-script-element/HTMLScriptElement.d.ts +0 -6
  612. package/lib/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
  613. package/lib/nodes/html-script-element/HTMLScriptElement.js +21 -27
  614. package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
  615. package/lib/nodes/html-select-element/HTMLSelectElement.d.ts.map +1 -1
  616. package/lib/nodes/html-select-element/HTMLSelectElement.js +5 -5
  617. package/lib/nodes/html-select-element/HTMLSelectElement.js.map +1 -1
  618. package/lib/nodes/html-table-element/HTMLTableElement.d.ts.map +1 -1
  619. package/lib/nodes/html-table-element/HTMLTableElement.js +8 -9
  620. package/lib/nodes/html-table-element/HTMLTableElement.js.map +1 -1
  621. package/lib/nodes/html-table-row-element/HTMLTableRowElement.d.ts.map +1 -1
  622. package/lib/nodes/html-table-row-element/HTMLTableRowElement.js +5 -6
  623. package/lib/nodes/html-table-row-element/HTMLTableRowElement.js.map +1 -1
  624. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.d.ts.map +1 -1
  625. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js +1 -2
  626. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js.map +1 -1
  627. package/lib/nodes/html-track-element/HTMLTrackElement.js +1 -2
  628. package/lib/nodes/html-track-element/HTMLTrackElement.js.map +1 -1
  629. package/lib/nodes/node/Node.d.ts +1 -2
  630. package/lib/nodes/node/Node.d.ts.map +1 -1
  631. package/lib/nodes/node/Node.js +23 -22
  632. package/lib/nodes/node/Node.js.map +1 -1
  633. package/lib/nodes/node/NodeList.d.ts.map +1 -1
  634. package/lib/nodes/node/NodeList.js +4 -6
  635. package/lib/nodes/node/NodeList.js.map +1 -1
  636. package/lib/nodes/text/Text.d.ts.map +1 -1
  637. package/lib/nodes/text/Text.js +1 -2
  638. package/lib/nodes/text/Text.js.map +1 -1
  639. package/lib/permissions/Permissions.d.ts +7 -0
  640. package/lib/permissions/Permissions.d.ts.map +1 -1
  641. package/lib/permissions/Permissions.js +13 -2
  642. package/lib/permissions/Permissions.js.map +1 -1
  643. package/lib/query-selector/QuerySelector.d.ts.map +1 -1
  644. package/lib/query-selector/QuerySelector.js +12 -10
  645. package/lib/query-selector/QuerySelector.js.map +1 -1
  646. package/lib/range/Range.d.ts +2 -2
  647. package/lib/range/Range.d.ts.map +1 -1
  648. package/lib/range/Range.js +26 -23
  649. package/lib/range/Range.js.map +1 -1
  650. package/lib/selection/Selection.d.ts.map +1 -1
  651. package/lib/selection/Selection.js +16 -17
  652. package/lib/selection/Selection.js.map +1 -1
  653. package/lib/window/BrowserWindow.d.ts +115 -117
  654. package/lib/window/BrowserWindow.d.ts.map +1 -1
  655. package/lib/window/BrowserWindow.js +140 -270
  656. package/lib/window/BrowserWindow.js.map +1 -1
  657. package/lib/window/VMGlobalPropertyScript.d.ts.map +1 -1
  658. package/lib/window/VMGlobalPropertyScript.js +0 -1
  659. package/lib/window/VMGlobalPropertyScript.js.map +1 -1
  660. package/lib/window/WindowBrowserContext.d.ts +75 -0
  661. package/lib/window/WindowBrowserContext.d.ts.map +1 -0
  662. package/lib/window/WindowBrowserContext.js +91 -0
  663. package/lib/window/WindowBrowserContext.js.map +1 -0
  664. package/lib/window/WindowClassExtender.d.ts +15 -0
  665. package/lib/window/WindowClassExtender.d.ts.map +1 -0
  666. package/lib/window/WindowClassExtender.js +303 -0
  667. package/lib/window/WindowClassExtender.js.map +1 -0
  668. package/lib/window/WindowPageOpenUtility.d.ts.map +1 -1
  669. package/lib/window/WindowPageOpenUtility.js +11 -1
  670. package/lib/window/WindowPageOpenUtility.js.map +1 -1
  671. package/lib/xml-http-request/XMLHttpRequest.d.ts +2 -11
  672. package/lib/xml-http-request/XMLHttpRequest.d.ts.map +1 -1
  673. package/lib/xml-http-request/XMLHttpRequest.js +33 -33
  674. package/lib/xml-http-request/XMLHttpRequest.js.map +1 -1
  675. package/package.json +1 -1
  676. package/src/ClassMethodBinder.ts +10 -7
  677. package/src/PropertySymbol.ts +15 -4
  678. package/src/async-task-manager/AsyncTaskManager.ts +71 -39
  679. package/src/browser/Browser.ts +7 -0
  680. package/src/browser/BrowserFrame.ts +3 -7
  681. package/src/browser/DefaultBrowserSettings.ts +2 -1
  682. package/src/browser/detached-browser/DetachedBrowser.ts +7 -0
  683. package/src/browser/detached-browser/DetachedBrowserFrame.ts +3 -7
  684. package/src/browser/types/IBrowser.ts +3 -0
  685. package/src/browser/types/IBrowserFrame.ts +0 -3
  686. package/src/browser/types/IBrowserSettings.ts +1 -0
  687. package/src/browser/utilities/BrowserExceptionObserver.ts +125 -0
  688. package/src/browser/utilities/BrowserFrameFactory.ts +29 -33
  689. package/src/browser/utilities/BrowserFrameNavigator.ts +60 -38
  690. package/src/clipboard/Clipboard.ts +20 -14
  691. package/src/css/declaration/AbstractCSSStyleDeclaration.ts +4 -4
  692. package/src/css/declaration/element-style/CSSStyleDeclarationElementStyle.ts +6 -7
  693. package/src/css/declaration/measurement-converter/CSSMeasurementConverter.ts +6 -8
  694. package/src/custom-element/CustomElementRegistry.ts +45 -17
  695. package/src/dom-implementation/DOMImplementation.ts +15 -10
  696. package/src/dom-parser/DOMParser.ts +11 -16
  697. package/src/event/Event.ts +85 -18
  698. package/src/event/EventTarget.ts +200 -185
  699. package/src/event/MessagePort.ts +1 -2
  700. package/src/event/TEventListener.ts +6 -0
  701. package/src/event/TEventListenerFunction.ts +5 -0
  702. package/src/event/TEventListenerObject.ts +7 -0
  703. package/src/event/events/CustomEvent.ts +16 -6
  704. package/src/event/events/IErrorEventInit.ts +0 -1
  705. package/src/event/events/IMessageEventInit.ts +2 -2
  706. package/src/event/events/MessageEvent.ts +2 -2
  707. package/src/fetch/AbortController.ts +5 -7
  708. package/src/fetch/AbortSignal.ts +69 -4
  709. package/src/fetch/Fetch.ts +39 -15
  710. package/src/fetch/Request.ts +83 -55
  711. package/src/fetch/ResourceFetch.ts +2 -3
  712. package/src/fetch/Response.ts +80 -45
  713. package/src/fetch/SyncFetch.ts +15 -13
  714. package/src/fetch/multipart/MultipartFormDataParser.ts +16 -5
  715. package/src/fetch/multipart/MultipartReader.ts +6 -3
  716. package/src/fetch/utilities/FetchBodyUtility.ts +23 -8
  717. package/src/file/FileReader.ts +16 -12
  718. package/src/history/History.ts +31 -14
  719. package/src/index.ts +2 -2
  720. package/src/location/Location.ts +46 -22
  721. package/src/match-media/MediaQueryItem.ts +27 -30
  722. package/src/match-media/MediaQueryList.ts +11 -21
  723. package/src/match-media/MediaQueryParser.ts +5 -5
  724. package/src/mutation-observer/MutationObserver.ts +25 -17
  725. package/src/navigator/Navigator.ts +14 -12
  726. package/src/nodes/NodeFactory.ts +1 -1
  727. package/src/nodes/document/Document.ts +67 -62
  728. package/src/nodes/document/DocumentReadyStateManager.ts +13 -10
  729. package/src/nodes/element/Element.ts +44 -29
  730. package/src/nodes/element/HTMLCollection.ts +1 -4
  731. package/src/nodes/element/NamedNodeMap.ts +4 -0
  732. package/src/nodes/element/NamedNodeMapProxyFactory.ts +0 -6
  733. package/src/nodes/html-anchor-element/HTMLAnchorElement.ts +4 -8
  734. package/src/nodes/html-area-element/HTMLAreaElement.ts +7 -11
  735. package/src/nodes/html-audio-element/Audio.ts +6 -0
  736. package/src/nodes/html-button-element/HTMLButtonElement.ts +67 -37
  737. package/src/nodes/html-canvas-element/HTMLCanvasElement.ts +5 -3
  738. package/src/nodes/html-document/HTMLDocument.ts +2 -8
  739. package/src/nodes/html-element/HTMLElement.ts +151 -129
  740. package/src/nodes/html-form-element/HTMLFormElement.ts +7 -9
  741. package/src/nodes/html-iframe-element/HTMLIFrameElement.ts +31 -42
  742. package/src/nodes/html-image-element/Image.ts +6 -0
  743. package/src/nodes/html-input-element/HTMLInputElement.ts +96 -61
  744. package/src/nodes/html-label-element/HTMLLabelElement.ts +21 -6
  745. package/src/nodes/html-link-element/HTMLLinkElement.ts +12 -19
  746. package/src/nodes/html-media-element/HTMLMediaElement.ts +15 -12
  747. package/src/nodes/html-media-element/MediaStream.ts +6 -0
  748. package/src/nodes/html-media-element/MediaStreamTrack.ts +6 -0
  749. package/src/nodes/html-media-element/TextTrack.ts +6 -0
  750. package/src/nodes/html-media-element/TextTrackCue.ts +6 -0
  751. package/src/nodes/html-media-element/VTTCue.ts +10 -9
  752. package/src/nodes/html-meter-element/HTMLMeterElement.ts +8 -6
  753. package/src/nodes/html-progress-element/HTMLProgressElement.ts +4 -2
  754. package/src/nodes/html-script-element/HTMLScriptElement.ts +25 -45
  755. package/src/nodes/html-select-element/HTMLSelectElement.ts +6 -5
  756. package/src/nodes/html-table-element/HTMLTableElement.ts +8 -9
  757. package/src/nodes/html-table-row-element/HTMLTableRowElement.ts +5 -6
  758. package/src/nodes/html-text-area-element/HTMLTextAreaElement.ts +1 -2
  759. package/src/nodes/html-track-element/HTMLTrackElement.ts +1 -1
  760. package/src/nodes/node/Node.ts +28 -26
  761. package/src/nodes/node/NodeList.ts +10 -11
  762. package/src/nodes/text/Text.ts +1 -2
  763. package/src/permissions/Permissions.ts +17 -1
  764. package/src/query-selector/QuerySelector.ts +15 -10
  765. package/src/range/Range.ts +39 -23
  766. package/src/selection/Selection.ts +27 -17
  767. package/src/window/BrowserWindow.ts +308 -335
  768. package/src/window/VMGlobalPropertyScript.ts +0 -1
  769. package/src/window/WindowBrowserContext.ts +114 -0
  770. package/src/window/WindowClassExtender.ts +306 -0
  771. package/src/window/WindowPageOpenUtility.ts +11 -1
  772. package/src/xml-http-request/XMLHttpRequest.ts +39 -36
  773. package/cjs/browser/utilities/BrowserFrameExceptionObserver.cjs +0 -80
  774. package/cjs/browser/utilities/BrowserFrameExceptionObserver.cjs.map +0 -1
  775. package/cjs/browser/utilities/BrowserFrameExceptionObserver.d.ts.map +0 -1
  776. package/cjs/event/IEventListener.cjs.map +0 -1
  777. package/cjs/event/IEventListener.d.ts +0 -13
  778. package/cjs/event/IEventListener.d.ts.map +0 -1
  779. package/cjs/event/IMessagePort.cjs.map +0 -1
  780. package/cjs/event/IMessagePort.d.ts +0 -24
  781. package/cjs/event/IMessagePort.d.ts.map +0 -1
  782. package/cjs/window/WindowBrowserSettingsReader.cjs +0 -72
  783. package/cjs/window/WindowBrowserSettingsReader.cjs.map +0 -1
  784. package/cjs/window/WindowBrowserSettingsReader.d.ts +0 -29
  785. package/cjs/window/WindowBrowserSettingsReader.d.ts.map +0 -1
  786. package/lib/browser/utilities/BrowserFrameExceptionObserver.d.ts.map +0 -1
  787. package/lib/browser/utilities/BrowserFrameExceptionObserver.js +0 -77
  788. package/lib/browser/utilities/BrowserFrameExceptionObserver.js.map +0 -1
  789. package/lib/event/IEventListener.d.ts +0 -13
  790. package/lib/event/IEventListener.d.ts.map +0 -1
  791. package/lib/event/IEventListener.js +0 -2
  792. package/lib/event/IEventListener.js.map +0 -1
  793. package/lib/event/IMessagePort.d.ts +0 -24
  794. package/lib/event/IMessagePort.d.ts.map +0 -1
  795. package/lib/event/IMessagePort.js +0 -2
  796. package/lib/event/IMessagePort.js.map +0 -1
  797. package/lib/window/WindowBrowserSettingsReader.d.ts +0 -29
  798. package/lib/window/WindowBrowserSettingsReader.d.ts.map +0 -1
  799. package/lib/window/WindowBrowserSettingsReader.js +0 -46
  800. package/lib/window/WindowBrowserSettingsReader.js.map +0 -1
  801. package/src/browser/utilities/BrowserFrameExceptionObserver.ts +0 -111
  802. package/src/event/IEventListener.ts +0 -13
  803. package/src/event/IMessagePort.ts +0 -26
  804. package/src/window/WindowBrowserSettingsReader.ts +0 -55
@@ -1,7 +1,6 @@
1
1
  import HTMLElement from '../html-element/HTMLElement.js';
2
2
  import * as PropertySymbol from '../../PropertySymbol.js';
3
3
  import ValidityState from '../../validity-state/ValidityState.js';
4
- import DOMException from '../../exception/DOMException.js';
5
4
  import DOMExceptionNameEnum from '../../exception/DOMExceptionNameEnum.js';
6
5
  import Event from '../../event/Event.js';
7
6
  import HTMLInputElementValueSanitizer from './HTMLInputElementValueSanitizer.js';
@@ -48,6 +47,7 @@ export default class HTMLInputElement extends HTMLElement {
48
47
  public [PropertySymbol.validity] = new ValidityState(this);
49
48
  public [PropertySymbol.files]: FileList = new FileList();
50
49
  public [PropertySymbol.formNode]: HTMLFormElement | null = null;
50
+ public [PropertySymbol.popoverTargetElement]: HTMLElement | null = null;
51
51
 
52
52
  // Private properties
53
53
  #selectionStart: number = null;
@@ -792,7 +792,7 @@ export default class HTMLInputElement extends HTMLElement {
792
792
  break;
793
793
  case 'file':
794
794
  if (value !== '') {
795
- throw new DOMException(
795
+ throw new this[PropertySymbol.window].DOMException(
796
796
  'Input elements of type "file" may only programmatically set the value to empty string.',
797
797
  DOMExceptionNameEnum.invalidStateError
798
798
  );
@@ -836,7 +836,7 @@ export default class HTMLInputElement extends HTMLElement {
836
836
  */
837
837
  public set selectionStart(start: number) {
838
838
  if (!this.#isSelectionSupported()) {
839
- throw new DOMException(
839
+ throw new this[PropertySymbol.window].DOMException(
840
840
  `The input element's type (${this.type}) does not support selection.`,
841
841
  DOMExceptionNameEnum.invalidStateError
842
842
  );
@@ -869,7 +869,7 @@ export default class HTMLInputElement extends HTMLElement {
869
869
  */
870
870
  public set selectionEnd(end: number) {
871
871
  if (!this.#isSelectionSupported()) {
872
- throw new DOMException(
872
+ throw new this[PropertySymbol.window].DOMException(
873
873
  `The input element's type (${this.type}) does not support selection.`,
874
874
  DOMExceptionNameEnum.invalidStateError
875
875
  );
@@ -898,7 +898,7 @@ export default class HTMLInputElement extends HTMLElement {
898
898
  */
899
899
  public set selectionDirection(direction: string) {
900
900
  if (!this.#isSelectionSupported()) {
901
- throw new DOMException(
901
+ throw new this[PropertySymbol.window].DOMException(
902
902
  `The input element's type (${this.type}) does not support selection.`,
903
903
  DOMExceptionNameEnum.invalidStateError
904
904
  );
@@ -953,17 +953,17 @@ export default class HTMLInputElement extends HTMLElement {
953
953
  public set valueAsDate(value: Date | null) {
954
954
  // Specs at https://html.spec.whatwg.org/multipage/input.html#dom-input-valueasdate
955
955
  if (!['date', 'month', 'time', 'week'].includes(this.type)) {
956
- throw new DOMException(
956
+ throw new this[PropertySymbol.window].DOMException(
957
957
  "Failed to set the 'valueAsDate' property on 'HTMLInputElement': This input element does not support Date values.",
958
958
  DOMExceptionNameEnum.invalidStateError
959
959
  );
960
960
  }
961
961
  if (typeof value !== 'object') {
962
- throw new TypeError(
962
+ throw new this[PropertySymbol.window].TypeError(
963
963
  "Failed to set the 'valueAsDate' property on 'HTMLInputElement': Failed to convert value to 'object'."
964
964
  );
965
965
  } else if (value && !(value instanceof Date)) {
966
- throw new TypeError(
966
+ throw new this[PropertySymbol.window].TypeError(
967
967
  "Failed to set the 'valueAsDate' property on 'HTMLInputElement': The provided value is not a Date."
968
968
  );
969
969
  } else if (value === null || isNaN(value.getTime())) {
@@ -1084,7 +1084,7 @@ export default class HTMLInputElement extends HTMLElement {
1084
1084
  break;
1085
1085
  }
1086
1086
  default:
1087
- throw new DOMException(
1087
+ throw new this[PropertySymbol.window].DOMException(
1088
1088
  "Failed to set the 'valueAsNumber' property on 'HTMLInputElement': This input element does not support Number values.",
1089
1089
  DOMExceptionNameEnum.invalidStateError
1090
1090
  );
@@ -1115,6 +1115,51 @@ export default class HTMLInputElement extends HTMLElement {
1115
1115
  return <HTMLDataListElement | null>rootNode.querySelector(`datalist#${id}`);
1116
1116
  }
1117
1117
 
1118
+ /**
1119
+ * Returns popover target element.
1120
+ *
1121
+ * @returns Popover target element.
1122
+ */
1123
+ public get popoverTargetElement(): HTMLElement | null {
1124
+ return this[PropertySymbol.popoverTargetElement];
1125
+ }
1126
+
1127
+ /**
1128
+ * Sets popover target element.
1129
+ *
1130
+ * @param popoverTargetElement Popover target element.
1131
+ */
1132
+ public set popoverTargetElement(popoverTargetElement: HTMLElement | null) {
1133
+ if (popoverTargetElement !== null && !(popoverTargetElement instanceof HTMLElement)) {
1134
+ throw new this[PropertySymbol.window].TypeError(
1135
+ `Failed to set the 'popoverTargetElement' property on 'HTMLInputElement': Failed to convert value to 'Element'.`
1136
+ );
1137
+ }
1138
+ this[PropertySymbol.popoverTargetElement] = popoverTargetElement;
1139
+ }
1140
+
1141
+ /**
1142
+ * Returns popover target action.
1143
+ *
1144
+ * @returns Popover target action.
1145
+ */
1146
+ public get popoverTargetAction(): string {
1147
+ const value = this.getAttribute('popovertargetaction');
1148
+ if (value === null || (value !== 'hide' && value !== 'show' && value !== 'toggle')) {
1149
+ return 'toggle';
1150
+ }
1151
+ return value;
1152
+ }
1153
+
1154
+ /**
1155
+ * Sets popover target action.
1156
+ *
1157
+ * @param value Popover target action.
1158
+ */
1159
+ public set popoverTargetAction(value: string) {
1160
+ this.setAttribute('popovertargetaction', value);
1161
+ }
1162
+
1118
1163
  /**
1119
1164
  * Sets validation message.
1120
1165
  *
@@ -1148,7 +1193,7 @@ export default class HTMLInputElement extends HTMLElement {
1148
1193
  */
1149
1194
  public setSelectionRange(start: number, end: number, direction = 'none'): void {
1150
1195
  if (!this.#isSelectionSupported()) {
1151
- throw new DOMException(
1196
+ throw new this[PropertySymbol.window].DOMException(
1152
1197
  `The input element's type (${this.type}) does not support selection.`,
1153
1198
  DOMExceptionNameEnum.invalidStateError
1154
1199
  );
@@ -1180,7 +1225,7 @@ export default class HTMLInputElement extends HTMLElement {
1180
1225
  selectionMode = HTMLInputElementSelectionModeEnum.preserve
1181
1226
  ): void {
1182
1227
  if (!this.#isSelectionSupported()) {
1183
- throw new DOMException(
1228
+ throw new this[PropertySymbol.window].DOMException(
1184
1229
  `The input element's type (${this.type}) does not support selection.`,
1185
1230
  DOMExceptionNameEnum.invalidStateError
1186
1231
  );
@@ -1194,7 +1239,7 @@ export default class HTMLInputElement extends HTMLElement {
1194
1239
  }
1195
1240
 
1196
1241
  if (start > end) {
1197
- throw new DOMException(
1242
+ throw new this[PropertySymbol.window].DOMException(
1198
1243
  'The index is not in the allowed range.',
1199
1244
  DOMExceptionNameEnum.invalidStateError
1200
1245
  );
@@ -1313,13 +1358,16 @@ export default class HTMLInputElement extends HTMLElement {
1313
1358
  * @override
1314
1359
  */
1315
1360
  public override dispatchEvent(event: Event): boolean {
1316
- // Do nothing if the input element is disabled and the event is a click event.
1317
1361
  if (
1318
- event.type === 'click' &&
1319
- event instanceof MouseEvent &&
1320
- event.eventPhase === EventPhaseEnum.none &&
1321
- this.disabled
1362
+ event[PropertySymbol.type] !== 'click' ||
1363
+ event[PropertySymbol.eventPhase] !== EventPhaseEnum.none ||
1364
+ !(event instanceof MouseEvent)
1322
1365
  ) {
1366
+ return super.dispatchEvent(event);
1367
+ }
1368
+
1369
+ // Do nothing if the input element is disabled and the event is a click event.
1370
+ if (this.disabled) {
1323
1371
  return false;
1324
1372
  }
1325
1373
 
@@ -1327,63 +1375,50 @@ export default class HTMLInputElement extends HTMLElement {
1327
1375
 
1328
1376
  // The checkbox or radio button has to be checked before the click event is dispatched, so that event listeners can check the checked value.
1329
1377
  // However, the value has to be restored if preventDefault() is called on the click event.
1330
- if (
1331
- (event.eventPhase === EventPhaseEnum.atTarget ||
1332
- event.eventPhase === EventPhaseEnum.bubbling) &&
1333
- event.type === 'click' &&
1334
- event instanceof MouseEvent
1335
- ) {
1336
- const inputType = this.type;
1337
- if (inputType === 'checkbox' || inputType === 'radio') {
1338
- previousCheckedValue = this.checked;
1339
- this.#setChecked(inputType === 'checkbox' ? !previousCheckedValue : true);
1340
- }
1378
+ const type = this.type;
1379
+
1380
+ if (type === 'checkbox' || type === 'radio') {
1381
+ previousCheckedValue = this.checked;
1382
+ this.#setChecked(type === 'checkbox' ? !previousCheckedValue : true);
1341
1383
  }
1342
1384
 
1385
+ // Dispatches the event
1343
1386
  const returnValue = super.dispatchEvent(event);
1344
1387
 
1345
1388
  if (
1346
- !event.defaultPrevented &&
1347
- (event.eventPhase === EventPhaseEnum.atTarget ||
1348
- event.eventPhase === EventPhaseEnum.bubbling) &&
1349
- event.type === 'click' &&
1350
- event instanceof MouseEvent &&
1351
- this[PropertySymbol.isConnected]
1389
+ event[PropertySymbol.type] !== 'click' ||
1390
+ event[PropertySymbol.eventPhase] !== EventPhaseEnum.none ||
1391
+ !(event instanceof MouseEvent)
1352
1392
  ) {
1353
- const inputType = this.type;
1354
- if (!this.readOnly || inputType === 'checkbox' || inputType === 'radio') {
1355
- if (inputType === 'checkbox' || inputType === 'radio') {
1356
- this.dispatchEvent(new Event('input', { bubbles: true, cancelable: true }));
1357
- this.dispatchEvent(new Event('change', { bubbles: true, cancelable: true }));
1358
- } else if (inputType === 'submit') {
1359
- const form = this.form;
1360
- if (form) {
1393
+ return returnValue;
1394
+ }
1395
+
1396
+ if (event[PropertySymbol.defaultPrevented]) {
1397
+ // Restore checked state if preventDefault() is triggered inside a listener of the click event.
1398
+ if (previousCheckedValue !== null) {
1399
+ this.#setChecked(previousCheckedValue);
1400
+ }
1401
+ } else {
1402
+ const type = this.type;
1403
+
1404
+ if (type === 'checkbox' && this[PropertySymbol.isConnected]) {
1405
+ this.dispatchEvent(new Event('input', { bubbles: true, cancelable: true }));
1406
+ this.dispatchEvent(new Event('change', { bubbles: true, cancelable: true }));
1407
+ } else if (type === 'radio' && !previousCheckedValue && this[PropertySymbol.isConnected]) {
1408
+ this.dispatchEvent(new Event('input', { bubbles: true, cancelable: true }));
1409
+ this.dispatchEvent(new Event('change', { bubbles: true, cancelable: true }));
1410
+ } else if (type === 'submit' || type === 'reset') {
1411
+ const form = this.form;
1412
+ if (form) {
1413
+ if (type === 'submit' && this[PropertySymbol.isConnected]) {
1361
1414
  form.requestSubmit(this);
1362
- }
1363
- } else if (inputType === 'reset' && this[PropertySymbol.isConnected]) {
1364
- const form = this.form;
1365
- if (form) {
1415
+ } else if (type === 'reset') {
1366
1416
  form.reset();
1367
1417
  }
1368
1418
  }
1369
1419
  }
1370
1420
  }
1371
1421
 
1372
- // Restore checked state if preventDefault() is triggered on the click event.
1373
- if (
1374
- event.defaultPrevented &&
1375
- (event.eventPhase === EventPhaseEnum.atTarget ||
1376
- event.eventPhase === EventPhaseEnum.bubbling) &&
1377
- event.type === 'click' &&
1378
- event instanceof MouseEvent &&
1379
- previousCheckedValue !== null
1380
- ) {
1381
- const inputType = this.type;
1382
- if (inputType === 'checkbox' || inputType === 'radio') {
1383
- this.#setChecked(previousCheckedValue);
1384
- }
1385
- }
1386
-
1387
1422
  return returnValue;
1388
1423
  }
1389
1424
 
@@ -6,6 +6,12 @@ import EventPhaseEnum from '../../event/EventPhaseEnum.js';
6
6
  import HTMLInputElement from '../html-input-element/HTMLInputElement.js';
7
7
  import Document from '../document/Document.js';
8
8
  import MouseEvent from '../../event/events/MouseEvent.js';
9
+ import HTMLButtonElement from '../html-button-element/HTMLButtonElement.js';
10
+ import HTMLMeterElement from '../html-meter-element/HTMLMeterElement.js';
11
+ import HTMLOutputElement from '../html-output-element/HTMLOutputElement.js';
12
+ import HTMLProgressElement from '../html-progress-element/HTMLProgressElement.js';
13
+ import HTMLSelectElement from '../html-select-element/HTMLSelectElement.js';
14
+ import HTMLTextAreaElement from '../html-text-area-element/HTMLTextAreaElement.js';
9
15
 
10
16
  /**
11
17
  * HTML Label Element.
@@ -44,7 +50,15 @@ export default class HTMLLabelElement extends HTMLElement {
44
50
  *
45
51
  * @returns Control element.
46
52
  */
47
- public get control(): HTMLElement | null {
53
+ public get control():
54
+ | HTMLInputElement
55
+ | HTMLButtonElement
56
+ | HTMLMeterElement
57
+ | HTMLOutputElement
58
+ | HTMLProgressElement
59
+ | HTMLSelectElement
60
+ | HTMLTextAreaElement
61
+ | null {
48
62
  const htmlFor = this.getAttribute('for');
49
63
  if (htmlFor !== null) {
50
64
  if (!htmlFor || !this[PropertySymbol.isConnected]) {
@@ -56,20 +70,20 @@ export default class HTMLLabelElement extends HTMLElement {
56
70
  if (control) {
57
71
  switch (control[PropertySymbol.tagName]) {
58
72
  case 'INPUT':
59
- return (<HTMLInputElement>control).type !== 'hidden' ? control : null;
73
+ return (<HTMLInputElement>control).type !== 'hidden' ? <HTMLInputElement>control : null;
60
74
  case 'BUTTON':
61
75
  case 'METER':
62
76
  case 'OUTPUT':
63
77
  case 'PROGRESS':
64
78
  case 'SELECT':
65
79
  case 'TEXTAREA':
66
- return control;
80
+ return <HTMLInputElement>control;
67
81
  default:
68
82
  return null;
69
83
  }
70
84
  }
71
85
  }
72
- return <HTMLElement | null>(
86
+ return <HTMLInputElement | null>(
73
87
  this.querySelector('button,input:not([type="hidden"]),meter,output,progress,select,textarea')
74
88
  );
75
89
  }
@@ -97,9 +111,10 @@ export default class HTMLLabelElement extends HTMLElement {
97
111
  const returnValue = super.dispatchEvent(event);
98
112
 
99
113
  if (
114
+ !event[PropertySymbol.defaultPrevented] &&
100
115
  event.type === 'click' &&
101
- event instanceof MouseEvent &&
102
- (event.eventPhase === EventPhaseEnum.atTarget || event.eventPhase === EventPhaseEnum.bubbling)
116
+ event.eventPhase === EventPhaseEnum.none &&
117
+ event instanceof MouseEvent
103
118
  ) {
104
119
  const control = this.control;
105
120
  if (control && event.target !== control) {
@@ -4,13 +4,12 @@ import HTMLElement from '../html-element/HTMLElement.js';
4
4
  import Event from '../../event/Event.js';
5
5
  import ErrorEvent from '../../event/events/ErrorEvent.js';
6
6
  import DOMTokenList from '../element/DOMTokenList.js';
7
- import IBrowserFrame from '../../browser/types/IBrowserFrame.js';
8
7
  import Attr from '../attr/Attr.js';
9
8
  import WindowErrorUtility from '../../window/WindowErrorUtility.js';
10
- import DOMException from '../../exception/DOMException.js';
11
9
  import DOMExceptionNameEnum from '../../exception/DOMExceptionNameEnum.js';
12
10
  import ResourceFetch from '../../fetch/ResourceFetch.js';
13
11
  import DocumentReadyStateManager from '../document/DocumentReadyStateManager.js';
12
+ import WindowBrowserContext from '../../window/WindowBrowserContext.js';
14
13
 
15
14
  /**
16
15
  * HTML Link Element.
@@ -28,18 +27,6 @@ export default class HTMLLinkElement extends HTMLElement {
28
27
  public [PropertySymbol.evaluateCSS] = true;
29
28
  public [PropertySymbol.relList]: DOMTokenList | null = null;
30
29
  #loadedStyleSheetURL: string | null = null;
31
- #browserFrame: IBrowserFrame;
32
-
33
- /**
34
- * Constructor.
35
- *
36
- * @param browserFrame Browser frame.
37
- */
38
- constructor(browserFrame) {
39
- super();
40
-
41
- this.#browserFrame = browserFrame;
42
- }
43
30
 
44
31
  /**
45
32
  * Returns sheet.
@@ -246,8 +233,14 @@ export default class HTMLLinkElement extends HTMLElement {
246
233
  * @param rel Rel.
247
234
  */
248
235
  async #loadStyleSheet(url: string | null, rel: string | null): Promise<void> {
249
- const browserSettings = this.#browserFrame.page.context.browser.settings;
250
- const window = this[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow];
236
+ const window = this[PropertySymbol.window];
237
+ const browserFrame = new WindowBrowserContext(window).getBrowserFrame();
238
+
239
+ if (!browserFrame) {
240
+ return;
241
+ }
242
+
243
+ const browserSettings = browserFrame.page?.context?.browser?.settings;
251
244
 
252
245
  if (!url || !rel || rel.toLowerCase() !== 'stylesheet' || !this[PropertySymbol.isConnected]) {
253
246
  return;
@@ -264,13 +257,13 @@ export default class HTMLLinkElement extends HTMLElement {
264
257
  return;
265
258
  }
266
259
 
267
- if (browserSettings.disableCSSFileLoading) {
260
+ if (browserSettings && browserSettings.disableCSSFileLoading) {
268
261
  if (browserSettings.handleDisabledFileLoadingAsSuccess) {
269
262
  this.dispatchEvent(new Event('load'));
270
263
  } else {
271
264
  WindowErrorUtility.dispatchError(
272
265
  this,
273
- new DOMException(
266
+ new window.DOMException(
274
267
  `Failed to load external stylesheet "${absoluteURL}". CSS file loading is disabled.`,
275
268
  DOMExceptionNameEnum.notSupportedError
276
269
  )
@@ -280,7 +273,7 @@ export default class HTMLLinkElement extends HTMLElement {
280
273
  }
281
274
 
282
275
  const resourceFetch = new ResourceFetch({
283
- browserFrame: this.#browserFrame,
276
+ browserFrame,
284
277
  window: window
285
278
  });
286
279
  const readyStateManager = (<{ [PropertySymbol.readyStateManager]: DocumentReadyStateManager }>(
@@ -1,6 +1,5 @@
1
1
  import ErrorEvent from '../../event/events/ErrorEvent.js';
2
2
  import Event from '../../event/Event.js';
3
- import DOMException from '../../exception/DOMException.js';
4
3
  import DOMExceptionNameEnum from '../../exception/DOMExceptionNameEnum.js';
5
4
  import HTMLElement from '../html-element/HTMLElement.js';
6
5
  import TimeRanges from './TimeRanges.js';
@@ -72,7 +71,7 @@ export default class HTMLMediaElement extends HTMLElement {
72
71
  public [PropertySymbol.seekable] = new TimeRanges(PropertySymbol.illegalConstructor);
73
72
  public [PropertySymbol.sinkId]: string = '';
74
73
  public [PropertySymbol.played] = new TimeRanges(PropertySymbol.illegalConstructor);
75
- public [PropertySymbol.remote] = new RemotePlayback();
74
+ public [PropertySymbol.remote] = new this[PropertySymbol.window].RemotePlayback();
76
75
  public [PropertySymbol.controlsList]: DOMTokenList | null = null;
77
76
  public [PropertySymbol.mediaKeys]: object | null = null;
78
77
  public [PropertySymbol.srcObject]: MediaStream | null = null;
@@ -413,7 +412,7 @@ export default class HTMLMediaElement extends HTMLElement {
413
412
  for (const track of this.querySelectorAll('track')[PropertySymbol.items]) {
414
413
  items.push(track.track);
415
414
  }
416
- return new TextTrackList(PropertySymbol.illegalConstructor, items);
415
+ return new this[PropertySymbol.window].TextTrackList(PropertySymbol.illegalConstructor, items);
417
416
  }
418
417
 
419
418
  /**
@@ -448,12 +447,12 @@ export default class HTMLMediaElement extends HTMLElement {
448
447
  const parsedVolume = Number(volume);
449
448
 
450
449
  if (isNaN(parsedVolume)) {
451
- throw new TypeError(
450
+ throw new this[PropertySymbol.window].TypeError(
452
451
  `Failed to set the 'volume' property on 'HTMLMediaElement': The provided double value is non-finite.`
453
452
  );
454
453
  }
455
454
  if (parsedVolume < 0 || parsedVolume > 1) {
456
- throw new DOMException(
455
+ throw new this[PropertySymbol.window].DOMException(
457
456
  `Failed to set the 'volume' property on 'HTMLMediaElement': The volume provided (${parsedVolume}) is outside the range [0, 1].`,
458
457
  DOMExceptionNameEnum.indexSizeError
459
458
  );
@@ -504,7 +503,7 @@ export default class HTMLMediaElement extends HTMLElement {
504
503
  public set currentTime(currentTime: number | string) {
505
504
  const parsedCurrentTime = Number(currentTime);
506
505
  if (isNaN(parsedCurrentTime)) {
507
- throw new TypeError(
506
+ throw new this[PropertySymbol.window].TypeError(
508
507
  `Failed to set the 'currentTime' property on 'HTMLMediaElement': The provided double value is non-finite.`
509
508
  );
510
509
  }
@@ -528,7 +527,7 @@ export default class HTMLMediaElement extends HTMLElement {
528
527
  public set playbackRate(playbackRate: number | string) {
529
528
  const parsedPlaybackRate = Number(playbackRate);
530
529
  if (isNaN(parsedPlaybackRate)) {
531
- throw new TypeError(
530
+ throw new this[PropertySymbol.window].TypeError(
532
531
  `Failed to set the 'playbackRate' property on 'HTMLMediaElement': The provided double value is non-finite.`
533
532
  );
534
533
  }
@@ -552,7 +551,7 @@ export default class HTMLMediaElement extends HTMLElement {
552
551
  public set defaultPlaybackRate(defaultPlaybackRate: number | string) {
553
552
  const parsedDefaultPlaybackRate = Number(defaultPlaybackRate);
554
553
  if (isNaN(parsedDefaultPlaybackRate)) {
555
- throw new TypeError(
554
+ throw new this[PropertySymbol.window].TypeError(
556
555
  `Failed to set the 'defaultPlaybackRate' property on 'HTMLMediaElement': The provided double value is non-finite.`
557
556
  );
558
557
  }
@@ -594,17 +593,21 @@ export default class HTMLMediaElement extends HTMLElement {
594
593
  * @param language The language of the text track data.
595
594
  */
596
595
  public addTextTrack(kind: TextTrackKindEnum, label?: string, language?: string): TextTrack {
596
+ const window = this[PropertySymbol.window];
597
+
597
598
  if (arguments.length === 0) {
598
- throw new TypeError(
599
+ throw new window.TypeError(
599
600
  `Failed to execute 'addTextTrack' on 'HTMLMediaElement': 1 argument required, but only 0 present.`
600
601
  );
601
602
  }
603
+
602
604
  if (!TextTrackKindEnum[kind]) {
603
- throw new TypeError(
605
+ throw new window.TypeError(
604
606
  `Failed to execute 'addTextTrack' on 'HTMLMediaElement': The provided value '${kind}' is not a valid enum value of type TextTrackKind.`
605
607
  );
606
608
  }
607
- const track = new TextTrack(PropertySymbol.illegalConstructor);
609
+
610
+ const track = new window.TextTrack(PropertySymbol.illegalConstructor);
608
611
  track[PropertySymbol.kind] = kind;
609
612
  track[PropertySymbol.label] = label || '';
610
613
  track[PropertySymbol.language] = language || '';
@@ -688,7 +691,7 @@ export default class HTMLMediaElement extends HTMLElement {
688
691
  * @returns MediaStream.
689
692
  */
690
693
  public captureStream(): MediaStream {
691
- return new MediaStream();
694
+ return new this[PropertySymbol.window].MediaStream();
692
695
  }
693
696
 
694
697
  /**
@@ -29,6 +29,12 @@ export default class MediaStream extends EventTarget {
29
29
  constructor(streamOrTracks?: MediaStream | MediaStreamTrack[]) {
30
30
  super();
31
31
 
32
+ if (!this[PropertySymbol.window]) {
33
+ throw new TypeError(
34
+ `Failed to construct '${this.constructor.name}': '${this.constructor.name}' was constructed outside a Window context.`
35
+ );
36
+ }
37
+
32
38
  if (streamOrTracks !== undefined) {
33
39
  this[PropertySymbol.tracks] =
34
40
  streamOrTracks instanceof MediaStream
@@ -74,6 +74,12 @@ export default class MediaStreamTrack extends EventTarget {
74
74
  if (illegalConstructorSymbol !== PropertySymbol.illegalConstructor) {
75
75
  throw new TypeError('Illegal constructor');
76
76
  }
77
+
78
+ if (!this[PropertySymbol.window]) {
79
+ throw new TypeError(
80
+ `Failed to construct '${this.constructor.name}': '${this.constructor.name}' was constructed outside a Window context.`
81
+ );
82
+ }
77
83
  }
78
84
 
79
85
  /**
@@ -38,6 +38,12 @@ export default class TextTrack extends EventTarget {
38
38
  if (illegalConstructorSymbol !== PropertySymbol.illegalConstructor) {
39
39
  throw new TypeError('Illegal constructor');
40
40
  }
41
+
42
+ if (!this[PropertySymbol.window]) {
43
+ throw new TypeError(
44
+ `Failed to construct '${this.constructor.name}': '${this.constructor.name}' was constructed outside a Window context.`
45
+ );
46
+ }
41
47
  }
42
48
 
43
49
  /**
@@ -32,6 +32,12 @@ export default abstract class TextTrackCue extends EventTarget {
32
32
  if (illegalConstructorSymbol !== PropertySymbol.illegalConstructor) {
33
33
  throw new TypeError('Illegal constructor');
34
34
  }
35
+
36
+ if (!this[PropertySymbol.window]) {
37
+ throw new TypeError(
38
+ `Failed to construct '${this.constructor.name}': '${this.constructor.name}' was constructed outside a Window context.`
39
+ );
40
+ }
35
41
  }
36
42
 
37
43
  /**
@@ -1,7 +1,6 @@
1
1
  import DocumentFragment from '../document-fragment/DocumentFragment.js';
2
2
  import TextTrackCue from './TextTrackCue.js';
3
3
  import VTTRegion from './VTTRegion.js';
4
- import BrowserWindow from '../../window/BrowserWindow.js';
5
4
  import * as PropertySymbol from '../../PropertySymbol.js';
6
5
 
7
6
  /**
@@ -20,19 +19,19 @@ export default class VTTCue extends TextTrackCue {
20
19
  public size: number = 100;
21
20
  public align: string = '';
22
21
  public text: string = '';
23
- #window: BrowserWindow;
24
22
 
25
23
  /**
26
24
  * Constructor.
27
25
  *
28
- * @param window Owner window object. Injected by BrowserWindow.
29
26
  * @param startTime The start time for the cue.
30
27
  * @param endTime The end time for the cue.
31
28
  * @param text The text of the cue.
32
29
  */
33
- constructor(window: BrowserWindow, startTime: number, endTime: number, text: string) {
30
+ constructor(startTime: number, endTime: number, text: string) {
34
31
  super(PropertySymbol.illegalConstructor);
35
32
 
33
+ const window = this[PropertySymbol.window];
34
+
36
35
  // TODO: Can we find a better solution for counting arguments by using the "arguments" property?
37
36
 
38
37
  let argumentCount = 0;
@@ -48,7 +47,7 @@ export default class VTTCue extends TextTrackCue {
48
47
  }
49
48
 
50
49
  if (argumentCount < 3) {
51
- throw new TypeError(
50
+ throw new window.TypeError(
52
51
  `Failed to construct 'VTTCue': 3 arguments required, but only ${argumentCount} present.`
53
52
  );
54
53
  }
@@ -57,10 +56,11 @@ export default class VTTCue extends TextTrackCue {
57
56
  endTime = Number(endTime);
58
57
 
59
58
  if (isNaN(startTime) || isNaN(endTime)) {
60
- throw new TypeError(`Failed to construct 'VTTCue': The provided double value is non-finite.`);
59
+ throw new window.TypeError(
60
+ `Failed to construct 'VTTCue': The provided double value is non-finite.`
61
+ );
61
62
  }
62
63
 
63
- this.#window = window;
64
64
  this.startTime = startTime;
65
65
  this.endTime = endTime;
66
66
  this.text = String(text);
@@ -72,8 +72,9 @@ export default class VTTCue extends TextTrackCue {
72
72
  * @returns DocumentFragment
73
73
  */
74
74
  public getCueAsHTML(): DocumentFragment {
75
- const fragment = this.#window.document.createDocumentFragment();
76
- fragment.appendChild(this.#window.document.createTextNode(this.text));
75
+ const window = this[PropertySymbol.window];
76
+ const fragment = window.document.createDocumentFragment();
77
+ fragment.appendChild(window.document.createTextNode(this.text));
77
78
  return fragment;
78
79
  }
79
80
  }