happy-dom 15.0.0 → 15.1.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 +14 -4
  113. package/cjs/fetch/AbortSignal.cjs.map +1 -1
  114. package/cjs/fetch/AbortSignal.d.ts +7 -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 +7 -0
  450. package/lib/fetch/AbortSignal.d.ts.map +1 -1
  451. package/lib/fetch/AbortSignal.js +14 -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 +30 -4
  709. package/src/fetch/Fetch.ts +44 -16
  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 +20 -14
  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
@@ -48,7 +48,6 @@ this.isFinite = globalThis.isFinite;
48
48
  this.isNaN = globalThis.isNaN;
49
49
  this.parseFloat = globalThis.parseFloat;
50
50
  this.parseInt = globalThis.parseInt;
51
- this.process = null;
52
51
  this.root = globalThis.root;
53
52
  this.undefined = globalThis.undefined;
54
53
  this.unescape = globalThis.unescape;
@@ -0,0 +1,114 @@
1
+ import AsyncTaskManager from '../async-task-manager/AsyncTaskManager.js';
2
+ import IBrowser from '../browser/types/IBrowser.js';
3
+ import IBrowserContext from '../browser/types/IBrowserContext.js';
4
+ import IBrowserFrame from '../browser/types/IBrowserFrame.js';
5
+ import IBrowserPage from '../browser/types/IBrowserPage.js';
6
+ import IBrowserSettings from '../browser/types/IBrowserSettings.js';
7
+ import * as PropertySymbol from '../PropertySymbol.js';
8
+ import BrowserWindow from './BrowserWindow.js';
9
+
10
+ /**
11
+ * API for accessing the Browser in a Window context without exposing the Browser as accessible properties.
12
+ *
13
+ * The Browser should never be exposed to scripts, as the scripts could then manipulate it, which would lead to security issues.
14
+ */
15
+ export default class WindowBrowserContext {
16
+ private static [PropertySymbol.browserFrames]: Map<number, IBrowserFrame> = new Map();
17
+ private static [PropertySymbol.windowInternalId] = 0;
18
+ #window: BrowserWindow;
19
+
20
+ /**
21
+ * Browser window.
22
+ *
23
+ * @param window Window.
24
+ */
25
+ constructor(window: BrowserWindow) {
26
+ this.#window = window;
27
+ }
28
+
29
+ /**
30
+ * Returns the browser settings of the window.
31
+ *
32
+ * @returns Browser settings.
33
+ */
34
+ public getSettings(): IBrowserSettings | null {
35
+ return this.getBrowserFrame()?.page?.context?.browser?.settings || null;
36
+ }
37
+
38
+ /**
39
+ * Returns the browser.
40
+ *
41
+ * @returns Browser.
42
+ */
43
+ public getBrowser(): IBrowser | null {
44
+ return this.getBrowserFrame()?.page?.context?.browser || null;
45
+ }
46
+
47
+ /**
48
+ * Returns the browser page.
49
+ *
50
+ * @returns Browser page.
51
+ */
52
+ public getBrowserPage(): IBrowserPage | null {
53
+ return this.getBrowserFrame()?.page || null;
54
+ }
55
+
56
+ /**
57
+ * Returns the browser context.
58
+ *
59
+ * @returns Browser context.
60
+ */
61
+ public getBrowserContext(): IBrowserContext | null {
62
+ return this.getBrowserFrame()?.page?.context || null;
63
+ }
64
+
65
+ /**
66
+ * Returns the browser frame of the window.
67
+ *
68
+ * @returns Browser frame.
69
+ */
70
+ public getBrowserFrame(): IBrowserFrame | null {
71
+ return (
72
+ (<typeof WindowBrowserContext>this.constructor)[PropertySymbol.browserFrames].get(
73
+ this.#window[PropertySymbol.internalId]
74
+ ) || null
75
+ );
76
+ }
77
+
78
+ /**
79
+ * Returns the async task manager of the window.
80
+ *
81
+ * @returns Async task manager.
82
+ */
83
+ public getAsyncTaskManager(): AsyncTaskManager | null {
84
+ return this.getBrowserFrame()?.[PropertySymbol.asyncTaskManager] || null;
85
+ }
86
+
87
+ /**
88
+ * Assigns the window to a browser frame.
89
+ *
90
+ * @param window Window.
91
+ * @param browserFrame Browser frame.
92
+ */
93
+ public static setWindowBrowserFrameRelation(
94
+ window: BrowserWindow,
95
+ browserFrame: IBrowserFrame
96
+ ): void {
97
+ const browserFrames = this[PropertySymbol.browserFrames];
98
+ if (window[PropertySymbol.internalId] === -1) {
99
+ window[PropertySymbol.internalId] = this[PropertySymbol.windowInternalId];
100
+ this[PropertySymbol.windowInternalId]++;
101
+ }
102
+ browserFrames.set(window[PropertySymbol.internalId], browserFrame);
103
+ }
104
+
105
+ /**
106
+ * Assigns the window to a browser frame.
107
+ *
108
+ * @param window Window.
109
+ * @param browserFrame Browser frame.
110
+ */
111
+ public static removeWindowBrowserFrameRelation(window: BrowserWindow): void {
112
+ this[PropertySymbol.browserFrames].delete(window[PropertySymbol.internalId]);
113
+ }
114
+ }
@@ -0,0 +1,306 @@
1
+ import BrowserWindow from './BrowserWindow.js';
2
+ import * as PropertySymbol from '../PropertySymbol.js';
3
+
4
+ import DocumentImplementation from '../nodes/document/Document.js';
5
+ import HTMLDocumentImplementation from '../nodes/html-document/HTMLDocument.js';
6
+ import XMLDocumentImplementation from '../nodes/xml-document/XMLDocument.js';
7
+ import SVGDocumentImplementation from '../nodes/svg-document/SVGDocument.js';
8
+ import DocumentFragmentImplementation from '../nodes/document-fragment/DocumentFragment.js';
9
+ import TextImplementation from '../nodes/text/Text.js';
10
+ import CommentImplementation from '../nodes/comment/Comment.js';
11
+ import ImageImplementation from '../nodes/html-image-element/Image.js';
12
+ import AudioImplementation from '../nodes/html-audio-element/Audio.js';
13
+ import NodeIteratorImplementation from '../tree-walker/NodeIterator.js';
14
+ import TreeWalkerImplementation from '../tree-walker/TreeWalker.js';
15
+ import MutationObserverImplementation from '../mutation-observer/MutationObserver.js';
16
+ import CSSStyleDeclarationImplementation from '../css/declaration/CSSStyleDeclaration.js';
17
+ import MessagePortImplementation from '../event/MessagePort.js';
18
+ import DataTransferImplementation from '../event/DataTransfer.js';
19
+ import DataTransferItemImplementation from '../event/DataTransferItem.js';
20
+ import DataTransferItemListImplementation from '../event/DataTransferItemList.js';
21
+ import XMLSerializerImplementation from '../xml-serializer/XMLSerializer.js';
22
+ import CSSStyleSheetImplementation from '../css/CSSStyleSheet.js';
23
+ import DOMExceptionImplementation from '../exception/DOMException.js';
24
+ import CSSUnitValueImplementation from '../css/CSSUnitValue.js';
25
+ import SelectionImplementation from '../selection/Selection.js';
26
+ import HeadersImplementation from '../fetch/Headers.js';
27
+ import RequestImplementation from '../fetch/Request.js';
28
+ import ResponseImplementation from '../fetch/Response.js';
29
+ import EventTargetImplementation from '../event/EventTarget.js';
30
+ import XMLHttpRequestUploadImplementation from '../xml-http-request/XMLHttpRequestUpload.js';
31
+ import XMLHttpRequestEventTargetImplementation from '../xml-http-request/XMLHttpRequestEventTarget.js';
32
+ import AbortControllerImplementation from '../fetch/AbortController.js';
33
+ import AbortSignalImplementation from '../fetch/AbortSignal.js';
34
+ import FormDataImplementation from '../form-data/FormData.js';
35
+ import PermissionsImplementation from '../permissions/Permissions.js';
36
+ import PermissionStatusImplementation from '../permissions/PermissionStatus.js';
37
+ import ClipboardItemImplementation from '../clipboard/ClipboardItem.js';
38
+ import XMLHttpRequestImplementation from '../xml-http-request/XMLHttpRequest.js';
39
+ import DOMParserImplementation from '../dom-parser/DOMParser.js';
40
+ import RangeImplementation from '../range/Range.js';
41
+ import VTTCueImplementation from '../nodes/html-media-element/VTTCue.js';
42
+ import TextTrackImplementation from '../nodes/html-media-element/TextTrack.js';
43
+ import TextTrackListImplementation from '../nodes/html-media-element/TextTrackList.js';
44
+ import TextTrackCueImplementation from '../nodes/html-media-element/TextTrackCue.js';
45
+ import RemotePlaybackImplementation from '../nodes/html-media-element/RemotePlayback.js';
46
+ import FileReaderImplementation from '../file/FileReader.js';
47
+ import MediaStreamImplementation from '../nodes/html-media-element/MediaStream.js';
48
+ import MediaStreamTrackImplementation from '../nodes/html-media-element/MediaStreamTrack.js';
49
+ import CanvasCaptureMediaStreamTrackImplementation from '../nodes/html-canvas-element/CanvasCaptureMediaStreamTrack.js';
50
+ import NamedNodeMapImplementation from '../nodes/element/NamedNodeMap.js';
51
+
52
+ /**
53
+ * Extends classes with a "window" property, so that they internally can access it's Window context.
54
+ *
55
+ * By using WindowBrowserContext, the classes can get access to their Browser context, for accessing settings or navigating the browser.
56
+ */
57
+ export default class WindowClassExtender {
58
+ /**
59
+ * Extends classes with a "window" property.
60
+ *
61
+ * @param window Window.
62
+ */
63
+ public static extendClass(window: BrowserWindow): void {
64
+ /* eslint-disable jsdoc/require-jsdoc */
65
+
66
+ // Document
67
+ class Document extends DocumentImplementation {}
68
+ Document.prototype[PropertySymbol.window] = window;
69
+ (<typeof Document>window.Document) = Document;
70
+
71
+ // HTMLDocument
72
+ class HTMLDocument extends HTMLDocumentImplementation {}
73
+ HTMLDocument.prototype[PropertySymbol.window] = window;
74
+ (<typeof HTMLDocument>window.HTMLDocument) = HTMLDocument;
75
+
76
+ // XMLDocument
77
+ class XMLDocument extends XMLDocumentImplementation {}
78
+ XMLDocument.prototype[PropertySymbol.window] = window;
79
+ (<typeof XMLDocument>window.XMLDocument) = XMLDocument;
80
+
81
+ // SVGDocument
82
+ class SVGDocument extends SVGDocumentImplementation {}
83
+ SVGDocument.prototype[PropertySymbol.window] = window;
84
+ (<typeof SVGDocument>window.SVGDocument) = SVGDocument;
85
+
86
+ // DocumentFragment
87
+ class DocumentFragment extends DocumentFragmentImplementation {}
88
+ DocumentFragment.prototype[PropertySymbol.window] = window;
89
+ (<typeof DocumentFragment>window.DocumentFragment) = DocumentFragment;
90
+
91
+ // Text
92
+ class Text extends TextImplementation {}
93
+ Text.prototype[PropertySymbol.window] = window;
94
+ (<typeof Text>window.Text) = Text;
95
+
96
+ // Comment
97
+ class Comment extends CommentImplementation {}
98
+ Comment.prototype[PropertySymbol.window] = window;
99
+ (<typeof Comment>window.Comment) = Comment;
100
+
101
+ // Image
102
+ class Image extends ImageImplementation {}
103
+ Image.prototype[PropertySymbol.window] = window;
104
+ (<typeof Image>window.Image) = Image;
105
+
106
+ // Audio
107
+ class Audio extends AudioImplementation {}
108
+ Audio.prototype[PropertySymbol.window] = window;
109
+ (<typeof Audio>window.Audio) = Audio;
110
+
111
+ // NodeIterator
112
+ class NodeIterator extends NodeIteratorImplementation {}
113
+ NodeIterator.prototype[PropertySymbol.window] = window;
114
+ (<typeof NodeIterator>window.NodeIterator) = NodeIterator;
115
+
116
+ // TreeWalker
117
+ class TreeWalker extends TreeWalkerImplementation {}
118
+ TreeWalker.prototype[PropertySymbol.window] = window;
119
+ (<typeof TreeWalker>window.TreeWalker) = TreeWalker;
120
+
121
+ // MutationObserver
122
+ class MutationObserver extends MutationObserverImplementation {}
123
+ MutationObserver.prototype[PropertySymbol.window] = window;
124
+ (<typeof MutationObserver>window.MutationObserver) = MutationObserver;
125
+
126
+ // CSSStyleDeclaration
127
+ class CSSStyleDeclaration extends CSSStyleDeclarationImplementation {}
128
+ CSSStyleDeclaration.prototype[PropertySymbol.window] = window;
129
+ (<typeof CSSStyleDeclaration>window.CSSStyleDeclaration) = CSSStyleDeclaration;
130
+
131
+ // MessagePort
132
+ class MessagePort extends MessagePortImplementation {}
133
+ MessagePort.prototype[PropertySymbol.window] = window;
134
+ (<typeof MessagePort>window.MessagePort) = MessagePort;
135
+
136
+ // DataTransfer
137
+ class DataTransfer extends DataTransferImplementation {}
138
+ DataTransfer.prototype[PropertySymbol.window] = window;
139
+ (<typeof DataTransfer>window.DataTransfer) = DataTransfer;
140
+
141
+ // DataTransferItem
142
+ class DataTransferItem extends DataTransferItemImplementation {}
143
+ DataTransferItem.prototype[PropertySymbol.window] = window;
144
+ (<typeof DataTransferItem>window.DataTransferItem) = DataTransferItem;
145
+
146
+ // DataTransferItemList
147
+ class DataTransferItemList extends DataTransferItemListImplementation {}
148
+ DataTransferItemList.prototype[PropertySymbol.window] = window;
149
+ (<typeof DataTransferItemList>window.DataTransferItemList) = DataTransferItemList;
150
+
151
+ // XMLSerializer
152
+ class XMLSerializer extends XMLSerializerImplementation {}
153
+ XMLSerializer.prototype[PropertySymbol.window] = window;
154
+ (<typeof XMLSerializer>window.XMLSerializer) = XMLSerializer;
155
+
156
+ // CSSStyleSheet
157
+ class CSSStyleSheet extends CSSStyleSheetImplementation {}
158
+ CSSStyleSheet.prototype[PropertySymbol.window] = window;
159
+ (<typeof CSSStyleSheet>window.CSSStyleSheet) = CSSStyleSheet;
160
+
161
+ // DOMException
162
+ class DOMException extends DOMExceptionImplementation {}
163
+ (<typeof DOMException>window.DOMException) = DOMException;
164
+
165
+ // CSSUnitValue
166
+ class CSSUnitValue extends CSSUnitValueImplementation {}
167
+ CSSUnitValue.prototype[PropertySymbol.window] = window;
168
+ (<typeof CSSUnitValue>window.CSSUnitValue) = CSSUnitValue;
169
+
170
+ // Selection
171
+ class Selection extends SelectionImplementation {}
172
+ Selection.prototype[PropertySymbol.window] = window;
173
+ (<typeof Selection>window.Selection) = Selection;
174
+
175
+ // Headers
176
+ class Headers extends HeadersImplementation {}
177
+ Headers.prototype[PropertySymbol.window] = window;
178
+ (<typeof Headers>window.Headers) = Headers;
179
+
180
+ // Request
181
+ class Request extends RequestImplementation {}
182
+ Request.prototype[PropertySymbol.window] = window;
183
+ (<typeof Request>window.Request) = Request;
184
+
185
+ // Response
186
+ class Response extends ResponseImplementation {}
187
+ Response.prototype[PropertySymbol.window] = window;
188
+ Response[PropertySymbol.window] = window;
189
+ (<typeof Response>window.Response) = Response;
190
+
191
+ // XMLHttpRequestEventTarget
192
+ class EventTarget extends EventTargetImplementation {}
193
+ EventTarget.prototype[PropertySymbol.window] = window;
194
+ (<typeof EventTarget>window.EventTarget) = EventTarget;
195
+
196
+ // XMLHttpRequestUpload
197
+ class XMLHttpRequestUpload extends XMLHttpRequestUploadImplementation {}
198
+ XMLHttpRequestUpload.prototype[PropertySymbol.window] = window;
199
+ (<typeof XMLHttpRequestUpload>window.XMLHttpRequestUpload) = XMLHttpRequestUpload;
200
+
201
+ // XMLHttpRequestEventTarget
202
+ class XMLHttpRequestEventTarget extends XMLHttpRequestEventTargetImplementation {}
203
+ XMLHttpRequestEventTarget.prototype[PropertySymbol.window] = window;
204
+ (<typeof XMLHttpRequestEventTarget>window.XMLHttpRequestEventTarget) =
205
+ XMLHttpRequestEventTarget;
206
+
207
+ // AbortController
208
+ class AbortController extends AbortControllerImplementation {}
209
+ AbortController.prototype[PropertySymbol.window] = window;
210
+ (<typeof AbortController>window.AbortController) = AbortController;
211
+
212
+ // AbortSignal
213
+ class AbortSignal extends AbortSignalImplementation {}
214
+ AbortSignal.prototype[PropertySymbol.window] = window;
215
+ AbortSignal[PropertySymbol.window] = window;
216
+ (<typeof AbortSignal>window.AbortSignal) = AbortSignal;
217
+
218
+ // FormData
219
+ class FormData extends FormDataImplementation {}
220
+ FormData.prototype[PropertySymbol.window] = window;
221
+ (<typeof FormData>window.FormData) = FormData;
222
+
223
+ // Permissions
224
+ class Permissions extends PermissionsImplementation {}
225
+ Permissions.prototype[PropertySymbol.window] = window;
226
+ (<typeof Permissions>window.Permissions) = Permissions;
227
+
228
+ // PermissionStatus
229
+ class PermissionStatus extends PermissionStatusImplementation {}
230
+ PermissionStatus.prototype[PropertySymbol.window] = window;
231
+ (<typeof PermissionStatus>window.PermissionStatus) = PermissionStatus;
232
+
233
+ // ClipboardItem
234
+ class ClipboardItem extends ClipboardItemImplementation {}
235
+ ClipboardItem.prototype[PropertySymbol.window] = window;
236
+ (<typeof ClipboardItem>window.ClipboardItem) = ClipboardItem;
237
+
238
+ // XMLHttpRequest
239
+ class XMLHttpRequest extends XMLHttpRequestImplementation {}
240
+ XMLHttpRequest.prototype[PropertySymbol.window] = window;
241
+ (<typeof XMLHttpRequest>window.XMLHttpRequest) = XMLHttpRequest;
242
+
243
+ // DOMParser
244
+ class DOMParser extends DOMParserImplementation {}
245
+ DOMParser.prototype[PropertySymbol.window] = window;
246
+ (<typeof DOMParser>window.DOMParser) = DOMParser;
247
+
248
+ // Range
249
+ class Range extends RangeImplementation {}
250
+ Range.prototype[PropertySymbol.window] = window;
251
+ (<typeof Range>window.Range) = Range;
252
+
253
+ // VTTCue
254
+ class VTTCue extends VTTCueImplementation {}
255
+ VTTCue.prototype[PropertySymbol.window] = window;
256
+ (<typeof VTTCue>window.VTTCue) = VTTCue;
257
+
258
+ // TextTrack
259
+ class TextTrack extends TextTrackImplementation {}
260
+ TextTrack.prototype[PropertySymbol.window] = window;
261
+ (<typeof TextTrack>window.TextTrack) = TextTrack;
262
+
263
+ // TextTrackList
264
+ class TextTrackList extends TextTrackListImplementation {}
265
+ TextTrackList.prototype[PropertySymbol.window] = window;
266
+ (<typeof TextTrackList>window.TextTrackList) = TextTrackList;
267
+
268
+ // TextTrackCue
269
+ class TextTrackCue extends TextTrackCueImplementation {}
270
+ TextTrackCue.prototype[PropertySymbol.window] = window;
271
+ (<typeof TextTrackCue>window.TextTrackCue) = TextTrackCue;
272
+
273
+ // RemotePlayback
274
+ class RemotePlayback extends RemotePlaybackImplementation {}
275
+ RemotePlayback.prototype[PropertySymbol.window] = window;
276
+ (<typeof RemotePlayback>window.RemotePlayback) = RemotePlayback;
277
+
278
+ // FileReader
279
+ class FileReader extends FileReaderImplementation {}
280
+ FileReader.prototype[PropertySymbol.window] = window;
281
+ (<typeof FileReader>window.FileReader) = FileReader;
282
+
283
+ // MediaStream
284
+ class MediaStream extends MediaStreamImplementation {}
285
+ MediaStream.prototype[PropertySymbol.window] = window;
286
+ (<typeof MediaStream>window.MediaStream) = MediaStream;
287
+
288
+ // MediaStreamTrack
289
+ class MediaStreamTrack extends MediaStreamTrackImplementation {}
290
+ MediaStreamTrack.prototype[PropertySymbol.window] = window;
291
+ (<typeof MediaStreamTrack>window.MediaStreamTrack) = MediaStreamTrack;
292
+
293
+ // MediaStreamTrack
294
+ class CanvasCaptureMediaStreamTrack extends CanvasCaptureMediaStreamTrackImplementation {}
295
+ CanvasCaptureMediaStreamTrack.prototype[PropertySymbol.window] = window;
296
+ (<typeof CanvasCaptureMediaStreamTrack>window.CanvasCaptureMediaStreamTrack) =
297
+ CanvasCaptureMediaStreamTrack;
298
+
299
+ // NamedNodeMap
300
+ class NamedNodeMap extends NamedNodeMapImplementation {}
301
+ NamedNodeMap.prototype[PropertySymbol.window] = window;
302
+ (<typeof NamedNodeMap>window.NamedNodeMap) = NamedNodeMap;
303
+
304
+ /* eslint-enable jsdoc/require-jsdoc */
305
+ }
306
+ }
@@ -34,6 +34,10 @@ export default class WindowPageOpenUtility {
34
34
  const oldWindow = browserFrame.window;
35
35
  let targetFrame: IBrowserFrame;
36
36
 
37
+ if (browserFrame.window !== oldWindow) {
38
+ return null;
39
+ }
40
+
37
41
  switch (target) {
38
42
  case '_self':
39
43
  targetFrame = browserFrame;
@@ -57,7 +61,13 @@ export default class WindowPageOpenUtility {
57
61
  referrer: features.noreferrer ? undefined : browserFrame.window.location.origin,
58
62
  referrerPolicy: features.noreferrer ? 'no-referrer' : undefined
59
63
  })
60
- .catch((error) => targetFrame.page.console.error(error));
64
+ .catch((error) => {
65
+ if (targetFrame.page?.console) {
66
+ targetFrame.page.console.error(error);
67
+ } else {
68
+ throw error;
69
+ }
70
+ });
61
71
 
62
72
  if (targetURL.protocol === 'javascript:') {
63
73
  return targetFrame.window;
@@ -9,8 +9,6 @@ import DOMException from '../exception/DOMException.js';
9
9
  import DOMExceptionNameEnum from '../exception/DOMExceptionNameEnum.js';
10
10
  import XMLHttpResponseTypeEnum from './XMLHttpResponseTypeEnum.js';
11
11
  import ErrorEvent from '../event/events/ErrorEvent.js';
12
- import IBrowserFrame from '../browser/types/IBrowserFrame.js';
13
- import BrowserWindow from '../window/BrowserWindow.js';
14
12
  import Headers from '../fetch/Headers.js';
15
13
  import Fetch from '../fetch/Fetch.js';
16
14
  import SyncFetch from '../fetch/SyncFetch.js';
@@ -23,6 +21,7 @@ import IRequestBody from '../fetch/types/IRequestBody.js';
23
21
  import XMLHttpRequestResponseDataParser from './XMLHttpRequestResponseDataParser.js';
24
22
  import FetchRequestHeaderUtility from '../fetch/utilities/FetchRequestHeaderUtility.js';
25
23
  import Response from '../fetch/Response.js';
24
+ import WindowBrowserContext from '../window/WindowBrowserContext.js';
26
25
 
27
26
  /**
28
27
  * XMLHttpRequest.
@@ -39,12 +38,10 @@ export default class XMLHttpRequest extends XMLHttpRequestEventTarget {
39
38
  public static DONE = XMLHttpRequestReadyStateEnum.done;
40
39
 
41
40
  // Public properties
42
- public upload: XMLHttpRequestUpload = new XMLHttpRequestUpload();
41
+ public upload: XMLHttpRequestUpload = new this[PropertySymbol.window].XMLHttpRequestUpload();
43
42
  public withCredentials = false;
44
43
 
45
44
  // Private properties
46
- #browserFrame: IBrowserFrame;
47
- #window: BrowserWindow;
48
45
  #async = true;
49
46
  #abortController: AbortController | null = null;
50
47
  #aborted = false;
@@ -56,15 +53,15 @@ export default class XMLHttpRequest extends XMLHttpRequestEventTarget {
56
53
 
57
54
  /**
58
55
  * Constructor.
59
- *
60
- * @param injected Injected properties.
61
- * @param injected.browserFrame Browser frame.
62
- * @param injected.window Window.
63
56
  */
64
- constructor(injected: { browserFrame: IBrowserFrame; window: BrowserWindow }) {
57
+ constructor() {
65
58
  super();
66
- this.#browserFrame = injected.browserFrame;
67
- this.#window = injected.window;
59
+
60
+ if (!this[PropertySymbol.window]) {
61
+ throw new TypeError(
62
+ `Failed to construct '${this.constructor.name}': '${this.constructor.name}' was constructed outside a Window context.`
63
+ );
64
+ }
68
65
  }
69
66
 
70
67
  /**
@@ -106,7 +103,7 @@ export default class XMLHttpRequest extends XMLHttpRequestEventTarget {
106
103
  */
107
104
  public get responseText(): string {
108
105
  if (this.responseType !== XMLHttpResponseTypeEnum.text && this.responseType !== '') {
109
- throw new DOMException(
106
+ throw new this[PropertySymbol.window].DOMException(
110
107
  `Failed to read the 'responseText' property from 'XMLHttpRequest': The value is only accessible if the object's 'responseType' is '' or 'text' (was '${this.responseType}').`,
111
108
  DOMExceptionNameEnum.invalidStateError
112
109
  );
@@ -122,7 +119,7 @@ export default class XMLHttpRequest extends XMLHttpRequestEventTarget {
122
119
  */
123
120
  public get responseXML(): Document {
124
121
  if (this.responseType !== XMLHttpResponseTypeEnum.document && this.responseType !== '') {
125
- throw new DOMException(
122
+ throw new this[PropertySymbol.window].DOMException(
126
123
  `Failed to read the 'responseXML' property from 'XMLHttpRequest': The value is only accessible if the object's 'responseType' is '' or 'document' (was '${this.responseType}').`,
127
124
  DOMExceptionNameEnum.invalidStateError
128
125
  );
@@ -161,14 +158,14 @@ export default class XMLHttpRequest extends XMLHttpRequestEventTarget {
161
158
  this.readyState !== XMLHttpRequestReadyStateEnum.opened &&
162
159
  this.readyState !== XMLHttpRequestReadyStateEnum.unsent
163
160
  ) {
164
- throw new DOMException(
161
+ throw new this[PropertySymbol.window].DOMException(
165
162
  `Failed to set the 'responseType' property on 'XMLHttpRequest': The object's state must be OPENED or UNSENT.`,
166
163
  DOMExceptionNameEnum.invalidStateError
167
164
  );
168
165
  }
169
166
  // Sync requests can only have empty string or 'text' as response type.
170
167
  if (!this.#async) {
171
- throw new DOMException(
168
+ throw new this[PropertySymbol.window].DOMException(
172
169
  `Failed to set the 'responseType' property on 'XMLHttpRequest': The response type cannot be changed for synchronous requests made from a document.`,
173
170
  DOMExceptionNameEnum.invalidStateError
174
171
  );
@@ -195,8 +192,10 @@ export default class XMLHttpRequest extends XMLHttpRequestEventTarget {
195
192
  * @param [password] Password for basic authentication (optional).
196
193
  */
197
194
  public open(method: string, url: string, async = true, user?: string, password?: string): void {
195
+ const window = this[PropertySymbol.window];
196
+
198
197
  if (!async && !!this.responseType && this.responseType !== XMLHttpResponseTypeEnum.text) {
199
- throw new DOMException(
198
+ throw new window.DOMException(
200
199
  `Failed to execute 'open' on 'XMLHttpRequest': Synchronous requests from a document must not set a response type.`,
201
200
  DOMExceptionNameEnum.invalidAccessError
202
201
  );
@@ -212,8 +211,8 @@ export default class XMLHttpRequest extends XMLHttpRequestEventTarget {
212
211
  this.#aborted = false;
213
212
  this.#response = null;
214
213
  this.#responseBody = null;
215
- this.#abortController = new AbortController();
216
- this.#request = new this.#window.Request(url, {
214
+ this.#abortController = new window.AbortController();
215
+ this.#request = new window.Request(url, {
217
216
  method,
218
217
  headers,
219
218
  signal: this.#abortController.signal,
@@ -232,7 +231,7 @@ export default class XMLHttpRequest extends XMLHttpRequestEventTarget {
232
231
  */
233
232
  public setRequestHeader(name: string, value: string): boolean {
234
233
  if (this.readyState !== XMLHttpRequestReadyStateEnum.opened) {
235
- throw new DOMException(
234
+ throw new this[PropertySymbol.window].DOMException(
236
235
  `Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED.`,
237
236
  DOMExceptionNameEnum.invalidStateError
238
237
  );
@@ -287,7 +286,7 @@ export default class XMLHttpRequest extends XMLHttpRequestEventTarget {
287
286
  */
288
287
  public send(body?: Document | IRequestBody): void {
289
288
  if (this.readyState != XMLHttpRequestReadyStateEnum.opened) {
290
- throw new DOMException(
289
+ throw new this[PropertySymbol.window].DOMException(
291
290
  `Failed to execute 'send' on 'XMLHttpRequest': Connection must be opened before send() is called.`,
292
291
  DOMExceptionNameEnum.invalidStateError
293
292
  );
@@ -328,9 +327,10 @@ export default class XMLHttpRequest extends XMLHttpRequestEventTarget {
328
327
  * @param body Optional data to send as request body.
329
328
  */
330
329
  async #sendAsync(body?: IRequestBody): Promise<void> {
331
- const taskID = this.#browserFrame[PropertySymbol.asyncTaskManager].startTask(() =>
332
- this.abort()
333
- );
330
+ const window = this[PropertySymbol.window];
331
+ const browserFrame = new WindowBrowserContext(window).getBrowserFrame();
332
+ const asyncTaskManager = browserFrame[PropertySymbol.asyncTaskManager];
333
+ const taskID = asyncTaskManager.startTask(() => this.abort());
334
334
 
335
335
  this.#readyState = XMLHttpRequestReadyStateEnum.loading;
336
336
 
@@ -338,7 +338,7 @@ export default class XMLHttpRequest extends XMLHttpRequestEventTarget {
338
338
  this.dispatchEvent(new Event('loadstart'));
339
339
 
340
340
  if (body) {
341
- this.#request = new this.#window.Request(this.#request.url, {
341
+ this.#request = new window.Request(this.#request.url, {
342
342
  method: this.#request.method,
343
343
  headers: this.#request.headers,
344
344
  signal: this.#abortController.signal,
@@ -353,7 +353,7 @@ export default class XMLHttpRequest extends XMLHttpRequestEventTarget {
353
353
  this.dispatchEvent(new Event('abort'));
354
354
  this.dispatchEvent(new Event('loadend'));
355
355
  this.dispatchEvent(new Event('readystatechange'));
356
- this.#browserFrame[PropertySymbol.asyncTaskManager].endTask(taskID);
356
+ asyncTaskManager.endTask(taskID);
357
357
  });
358
358
 
359
359
  const onError = (error: Error): void => {
@@ -369,12 +369,12 @@ export default class XMLHttpRequest extends XMLHttpRequestEventTarget {
369
369
  }
370
370
  this.dispatchEvent(new Event('loadend'));
371
371
  this.dispatchEvent(new Event('readystatechange'));
372
- this.#browserFrame[PropertySymbol.asyncTaskManager].endTask(taskID);
372
+ asyncTaskManager.endTask(taskID);
373
373
  };
374
374
 
375
375
  const fetch = new Fetch({
376
- browserFrame: this.#browserFrame,
377
- window: this.#window,
376
+ browserFrame: browserFrame,
377
+ window: window,
378
378
  url: this.#request.url,
379
379
  init: this.#request
380
380
  });
@@ -426,7 +426,7 @@ export default class XMLHttpRequest extends XMLHttpRequestEventTarget {
426
426
  }
427
427
 
428
428
  this.#responseBody = XMLHttpRequestResponseDataParser.parse({
429
- window: this.#window,
429
+ window: window,
430
430
  responseType: this.#responseType,
431
431
  data,
432
432
  contentType:
@@ -434,11 +434,11 @@ export default class XMLHttpRequest extends XMLHttpRequestEventTarget {
434
434
  });
435
435
  this.#readyState = XMLHttpRequestReadyStateEnum.done;
436
436
 
437
+ asyncTaskManager.endTask(taskID);
438
+
437
439
  this.dispatchEvent(new Event('readystatechange'));
438
440
  this.dispatchEvent(new Event('load'));
439
441
  this.dispatchEvent(new Event('loadend'));
440
-
441
- this.#browserFrame[PropertySymbol.asyncTaskManager].endTask(taskID);
442
442
  }
443
443
 
444
444
  /**
@@ -447,8 +447,11 @@ export default class XMLHttpRequest extends XMLHttpRequestEventTarget {
447
447
  * @param body Optional data to send as request body.
448
448
  */
449
449
  #sendSync(body?: IRequestBody): void {
450
+ const window = this[PropertySymbol.window];
451
+ const browserFrame = new WindowBrowserContext(window).getBrowserFrame();
452
+
450
453
  if (body) {
451
- this.#request = new this.#window.Request(this.#request.url, {
454
+ this.#request = new window.Request(this.#request.url, {
452
455
  method: this.#request.method,
453
456
  headers: this.#request.headers,
454
457
  signal: this.#abortController.signal,
@@ -460,8 +463,8 @@ export default class XMLHttpRequest extends XMLHttpRequestEventTarget {
460
463
  this.#readyState = XMLHttpRequestReadyStateEnum.loading;
461
464
 
462
465
  const fetch = new SyncFetch({
463
- browserFrame: this.#browserFrame,
464
- window: this.#window,
466
+ browserFrame,
467
+ window: window,
465
468
  url: this.#request.url,
466
469
  init: this.#request
467
470
  });
@@ -479,7 +482,7 @@ export default class XMLHttpRequest extends XMLHttpRequestEventTarget {
479
482
  this.#readyState = XMLHttpRequestReadyStateEnum.headersRecieved;
480
483
 
481
484
  this.#responseBody = XMLHttpRequestResponseDataParser.parse({
482
- window: this.#window,
485
+ window: window,
483
486
  responseType: this.#responseType,
484
487
  data: this.#response.body,
485
488
  contentType: