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.
- package/cjs/ClassMethodBinder.cjs +8 -6
- package/cjs/ClassMethodBinder.cjs.map +1 -1
- package/cjs/ClassMethodBinder.d.ts +4 -2
- package/cjs/ClassMethodBinder.d.ts.map +1 -1
- package/cjs/PropertySymbol.cjs +20 -9
- package/cjs/PropertySymbol.cjs.map +1 -1
- package/cjs/PropertySymbol.d.ts +15 -4
- package/cjs/PropertySymbol.d.ts.map +1 -1
- package/cjs/async-task-manager/AsyncTaskManager.cjs +64 -35
- package/cjs/async-task-manager/AsyncTaskManager.cjs.map +1 -1
- package/cjs/async-task-manager/AsyncTaskManager.d.ts +11 -1
- package/cjs/async-task-manager/AsyncTaskManager.d.ts.map +1 -1
- package/cjs/browser/Browser.cjs +30 -0
- package/cjs/browser/Browser.cjs.map +1 -1
- package/cjs/browser/Browser.d.ts +3 -0
- package/cjs/browser/Browser.d.ts.map +1 -1
- package/cjs/browser/BrowserFrame.cjs +3 -7
- package/cjs/browser/BrowserFrame.cjs.map +1 -1
- package/cjs/browser/BrowserFrame.d.ts +1 -4
- package/cjs/browser/BrowserFrame.d.ts.map +1 -1
- package/cjs/browser/DefaultBrowserSettings.cjs +2 -1
- package/cjs/browser/DefaultBrowserSettings.cjs.map +1 -1
- package/cjs/browser/DefaultBrowserSettings.d.ts.map +1 -1
- package/cjs/browser/detached-browser/DetachedBrowser.cjs +30 -0
- package/cjs/browser/detached-browser/DetachedBrowser.cjs.map +1 -1
- package/cjs/browser/detached-browser/DetachedBrowser.d.ts +3 -0
- package/cjs/browser/detached-browser/DetachedBrowser.d.ts.map +1 -1
- package/cjs/browser/detached-browser/DetachedBrowserFrame.cjs +3 -7
- package/cjs/browser/detached-browser/DetachedBrowserFrame.cjs.map +1 -1
- package/cjs/browser/detached-browser/DetachedBrowserFrame.d.ts +1 -4
- package/cjs/browser/detached-browser/DetachedBrowserFrame.d.ts.map +1 -1
- package/cjs/browser/types/IBrowser.cjs +24 -0
- package/cjs/browser/types/IBrowser.cjs.map +1 -1
- package/cjs/browser/types/IBrowser.d.ts +3 -0
- package/cjs/browser/types/IBrowser.d.ts.map +1 -1
- package/cjs/browser/types/IBrowserFrame.d.ts +0 -3
- package/cjs/browser/types/IBrowserFrame.d.ts.map +1 -1
- package/cjs/browser/types/IBrowserSettings.d.ts +1 -0
- package/cjs/browser/types/IBrowserSettings.d.ts.map +1 -1
- package/cjs/browser/utilities/BrowserExceptionObserver.cjs +100 -0
- package/cjs/browser/utilities/BrowserExceptionObserver.cjs.map +1 -0
- package/{lib/browser/utilities/BrowserFrameExceptionObserver.d.ts → cjs/browser/utilities/BrowserExceptionObserver.d.ts} +9 -7
- package/cjs/browser/utilities/BrowserExceptionObserver.d.ts.map +1 -0
- package/cjs/browser/utilities/BrowserFrameFactory.cjs +27 -35
- package/cjs/browser/utilities/BrowserFrameFactory.cjs.map +1 -1
- package/cjs/browser/utilities/BrowserFrameFactory.d.ts.map +1 -1
- package/cjs/browser/utilities/BrowserFrameNavigator.cjs +52 -29
- package/cjs/browser/utilities/BrowserFrameNavigator.cjs.map +1 -1
- package/cjs/browser/utilities/BrowserFrameNavigator.d.ts.map +1 -1
- package/cjs/clipboard/Clipboard.cjs +18 -15
- package/cjs/clipboard/Clipboard.cjs.map +1 -1
- package/cjs/clipboard/Clipboard.d.ts +2 -2
- package/cjs/clipboard/Clipboard.d.ts.map +1 -1
- package/cjs/css/declaration/AbstractCSSStyleDeclaration.cjs +27 -4
- package/cjs/css/declaration/AbstractCSSStyleDeclaration.cjs.map +1 -1
- package/cjs/css/declaration/element-style/CSSStyleDeclarationElementStyle.cjs +6 -5
- package/cjs/css/declaration/element-style/CSSStyleDeclarationElementStyle.cjs.map +1 -1
- package/cjs/css/declaration/element-style/CSSStyleDeclarationElementStyle.d.ts.map +1 -1
- package/cjs/css/declaration/measurement-converter/CSSMeasurementConverter.cjs +5 -5
- package/cjs/css/declaration/measurement-converter/CSSMeasurementConverter.cjs.map +1 -1
- package/cjs/css/declaration/measurement-converter/CSSMeasurementConverter.d.ts +2 -2
- package/cjs/css/declaration/measurement-converter/CSSMeasurementConverter.d.ts.map +1 -1
- package/cjs/custom-element/CustomElementRegistry.cjs +37 -17
- package/cjs/custom-element/CustomElementRegistry.cjs.map +1 -1
- package/cjs/custom-element/CustomElementRegistry.d.ts +2 -3
- package/cjs/custom-element/CustomElementRegistry.d.ts.map +1 -1
- package/cjs/dom-implementation/DOMImplementation.cjs +12 -7
- package/cjs/dom-implementation/DOMImplementation.cjs.map +1 -1
- package/cjs/dom-implementation/DOMImplementation.d.ts +7 -3
- package/cjs/dom-implementation/DOMImplementation.d.ts.map +1 -1
- package/cjs/dom-parser/DOMParser.cjs +6 -15
- package/cjs/dom-parser/DOMParser.cjs.map +1 -1
- package/cjs/dom-parser/DOMParser.d.ts +2 -6
- package/cjs/dom-parser/DOMParser.d.ts.map +1 -1
- package/cjs/event/Event.cjs +76 -18
- package/cjs/event/Event.cjs.map +1 -1
- package/cjs/event/Event.d.ts +49 -7
- package/cjs/event/Event.d.ts.map +1 -1
- package/cjs/event/EventTarget.cjs +153 -141
- package/cjs/event/EventTarget.cjs.map +1 -1
- package/cjs/event/EventTarget.d.ts +12 -8
- package/cjs/event/EventTarget.d.ts.map +1 -1
- package/cjs/event/MessagePort.cjs.map +1 -1
- package/cjs/event/MessagePort.d.ts +1 -2
- package/cjs/event/MessagePort.d.ts.map +1 -1
- package/cjs/event/{IEventListener.cjs → TEventListener.cjs} +1 -1
- package/cjs/event/TEventListener.cjs.map +1 -0
- package/cjs/event/TEventListener.d.ts +5 -0
- package/cjs/event/TEventListener.d.ts.map +1 -0
- package/cjs/event/TEventListenerFunction.cjs +3 -0
- package/cjs/event/TEventListenerFunction.cjs.map +1 -0
- package/cjs/event/TEventListenerFunction.d.ts +4 -0
- package/cjs/event/TEventListenerFunction.d.ts.map +1 -0
- package/cjs/event/{IMessagePort.cjs → TEventListenerObject.cjs} +1 -1
- package/cjs/event/TEventListenerObject.cjs.map +1 -0
- package/cjs/event/TEventListenerObject.d.ts +6 -0
- package/cjs/event/TEventListenerObject.d.ts.map +1 -0
- package/cjs/event/events/CustomEvent.cjs +38 -6
- package/cjs/event/events/CustomEvent.cjs.map +1 -1
- package/cjs/event/events/CustomEvent.d.ts +8 -1
- package/cjs/event/events/CustomEvent.d.ts.map +1 -1
- package/cjs/event/events/IErrorEventInit.d.ts.map +1 -1
- package/cjs/event/events/IMessageEventInit.d.ts +2 -2
- package/cjs/event/events/IMessageEventInit.d.ts.map +1 -1
- package/cjs/event/events/MessageEvent.cjs.map +1 -1
- package/cjs/event/events/MessageEvent.d.ts +2 -2
- package/cjs/event/events/MessageEvent.d.ts.map +1 -1
- package/cjs/fetch/AbortController.cjs +2 -11
- package/cjs/fetch/AbortController.cjs.map +1 -1
- package/cjs/fetch/AbortController.d.ts +3 -4
- package/cjs/fetch/AbortController.d.ts.map +1 -1
- package/cjs/fetch/AbortSignal.cjs +14 -4
- package/cjs/fetch/AbortSignal.cjs.map +1 -1
- package/cjs/fetch/AbortSignal.d.ts +7 -0
- package/cjs/fetch/AbortSignal.d.ts.map +1 -1
- package/cjs/fetch/Fetch.cjs +24 -14
- package/cjs/fetch/Fetch.cjs.map +1 -1
- package/cjs/fetch/Fetch.d.ts.map +1 -1
- package/cjs/fetch/Request.cjs +62 -45
- package/cjs/fetch/Request.cjs.map +1 -1
- package/cjs/fetch/Request.d.ts +3 -14
- package/cjs/fetch/Request.d.ts.map +1 -1
- package/cjs/fetch/ResourceFetch.cjs +2 -3
- package/cjs/fetch/ResourceFetch.cjs.map +1 -1
- package/cjs/fetch/ResourceFetch.d.ts.map +1 -1
- package/cjs/fetch/Response.cjs +63 -40
- package/cjs/fetch/Response.cjs.map +1 -1
- package/cjs/fetch/Response.d.ts +3 -10
- package/cjs/fetch/Response.d.ts.map +1 -1
- package/cjs/fetch/SyncFetch.cjs +12 -13
- package/cjs/fetch/SyncFetch.cjs.map +1 -1
- package/cjs/fetch/SyncFetch.d.ts.map +1 -1
- package/cjs/fetch/multipart/MultipartFormDataParser.cjs +12 -6
- package/cjs/fetch/multipart/MultipartFormDataParser.cjs.map +1 -1
- package/cjs/fetch/multipart/MultipartFormDataParser.d.ts +3 -1
- package/cjs/fetch/multipart/MultipartFormDataParser.d.ts.map +1 -1
- package/cjs/fetch/multipart/MultipartReader.cjs +5 -3
- package/cjs/fetch/multipart/MultipartReader.cjs.map +1 -1
- package/cjs/fetch/multipart/MultipartReader.d.ts +4 -1
- package/cjs/fetch/multipart/MultipartReader.d.ts.map +1 -1
- package/cjs/fetch/utilities/FetchBodyUtility.cjs +10 -5
- package/cjs/fetch/utilities/FetchBodyUtility.cjs.map +1 -1
- package/cjs/fetch/utilities/FetchBodyUtility.d.ts +5 -2
- package/cjs/fetch/utilities/FetchBodyUtility.d.ts.map +1 -1
- package/cjs/file/FileReader.cjs +11 -11
- package/cjs/file/FileReader.cjs.map +1 -1
- package/cjs/file/FileReader.d.ts +1 -4
- package/cjs/file/FileReader.d.ts.map +1 -1
- package/cjs/history/History.cjs +28 -14
- package/cjs/history/History.cjs.map +1 -1
- package/cjs/history/History.d.ts +2 -2
- package/cjs/history/History.d.ts.map +1 -1
- package/cjs/index.d.ts +2 -2
- package/cjs/location/Location.cjs +43 -22
- package/cjs/location/Location.cjs.map +1 -1
- package/cjs/location/Location.d.ts +4 -0
- package/cjs/location/Location.d.ts.map +1 -1
- package/cjs/match-media/MediaQueryItem.cjs +26 -26
- package/cjs/match-media/MediaQueryItem.cjs.map +1 -1
- package/cjs/match-media/MediaQueryItem.d.ts +3 -3
- package/cjs/match-media/MediaQueryItem.d.ts.map +1 -1
- package/cjs/match-media/MediaQueryList.cjs +7 -7
- package/cjs/match-media/MediaQueryList.cjs.map +1 -1
- package/cjs/match-media/MediaQueryList.d.ts +5 -5
- package/cjs/match-media/MediaQueryList.d.ts.map +1 -1
- package/cjs/match-media/MediaQueryParser.cjs +4 -4
- package/cjs/match-media/MediaQueryParser.cjs.map +1 -1
- package/cjs/match-media/MediaQueryParser.d.ts +2 -2
- package/cjs/match-media/MediaQueryParser.d.ts.map +1 -1
- package/cjs/mutation-observer/MutationObserver.cjs +17 -15
- package/cjs/mutation-observer/MutationObserver.cjs.map +1 -1
- package/cjs/mutation-observer/MutationObserver.d.ts +3 -0
- package/cjs/mutation-observer/MutationObserver.d.ts.map +1 -1
- package/cjs/navigator/Navigator.cjs +13 -10
- package/cjs/navigator/Navigator.cjs.map +1 -1
- package/cjs/navigator/Navigator.d.ts +2 -2
- package/cjs/navigator/Navigator.d.ts.map +1 -1
- package/cjs/nodes/NodeFactory.cjs +1 -1
- package/cjs/nodes/NodeFactory.cjs.map +1 -1
- package/cjs/nodes/document/Document.cjs +69 -51
- package/cjs/nodes/document/Document.cjs.map +1 -1
- package/cjs/nodes/document/Document.d.ts +9 -16
- package/cjs/nodes/document/Document.d.ts.map +1 -1
- package/cjs/nodes/document/DocumentReadyStateManager.cjs +12 -10
- package/cjs/nodes/document/DocumentReadyStateManager.cjs.map +1 -1
- package/cjs/nodes/document/DocumentReadyStateManager.d.ts.map +1 -1
- package/cjs/nodes/element/Element.cjs +33 -20
- package/cjs/nodes/element/Element.cjs.map +1 -1
- package/cjs/nodes/element/Element.d.ts +7 -3
- package/cjs/nodes/element/Element.d.ts.map +1 -1
- package/cjs/nodes/element/HTMLCollection.cjs +1 -4
- package/cjs/nodes/element/HTMLCollection.cjs.map +1 -1
- package/cjs/nodes/element/HTMLCollection.d.ts.map +1 -1
- package/cjs/nodes/element/NamedNodeMap.cjs +4 -0
- package/cjs/nodes/element/NamedNodeMap.cjs.map +1 -1
- package/cjs/nodes/element/NamedNodeMap.d.ts.map +1 -1
- package/cjs/nodes/element/NamedNodeMapProxyFactory.cjs +0 -9
- package/cjs/nodes/element/NamedNodeMapProxyFactory.cjs.map +1 -1
- package/cjs/nodes/element/NamedNodeMapProxyFactory.d.ts.map +1 -1
- package/cjs/nodes/html-anchor-element/HTMLAnchorElement.cjs +5 -5
- package/cjs/nodes/html-anchor-element/HTMLAnchorElement.cjs.map +1 -1
- package/cjs/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
- package/cjs/nodes/html-area-element/HTMLAreaElement.cjs +7 -8
- package/cjs/nodes/html-area-element/HTMLAreaElement.cjs.map +1 -1
- package/cjs/nodes/html-area-element/HTMLAreaElement.d.ts.map +1 -1
- package/cjs/nodes/html-audio-element/Audio.cjs +28 -0
- package/cjs/nodes/html-audio-element/Audio.cjs.map +1 -1
- package/cjs/nodes/html-audio-element/Audio.d.ts +4 -0
- package/cjs/nodes/html-audio-element/Audio.d.ts.map +1 -1
- package/cjs/nodes/html-button-element/HTMLButtonElement.cjs +63 -35
- package/cjs/nodes/html-button-element/HTMLButtonElement.cjs.map +1 -1
- package/cjs/nodes/html-button-element/HTMLButtonElement.d.ts +27 -3
- package/cjs/nodes/html-button-element/HTMLButtonElement.d.ts.map +1 -1
- package/cjs/nodes/html-canvas-element/HTMLCanvasElement.cjs +2 -4
- package/cjs/nodes/html-canvas-element/HTMLCanvasElement.cjs.map +1 -1
- package/cjs/nodes/html-canvas-element/HTMLCanvasElement.d.ts.map +1 -1
- package/cjs/nodes/html-document/HTMLDocument.cjs +2 -6
- package/cjs/nodes/html-document/HTMLDocument.cjs.map +1 -1
- package/cjs/nodes/html-document/HTMLDocument.d.ts +1 -10
- package/cjs/nodes/html-document/HTMLDocument.d.ts.map +1 -1
- package/cjs/nodes/html-element/HTMLElement.cjs +130 -89
- package/cjs/nodes/html-element/HTMLElement.cjs.map +1 -1
- package/cjs/nodes/html-element/HTMLElement.d.ts +14 -2
- package/cjs/nodes/html-element/HTMLElement.d.ts.map +1 -1
- package/cjs/nodes/html-form-element/HTMLFormElement.cjs +6 -7
- package/cjs/nodes/html-form-element/HTMLFormElement.cjs.map +1 -1
- package/cjs/nodes/html-form-element/HTMLFormElement.d.ts +1 -3
- package/cjs/nodes/html-form-element/HTMLFormElement.d.ts.map +1 -1
- package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs +30 -38
- package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs.map +1 -1
- package/cjs/nodes/html-iframe-element/HTMLIFrameElement.d.ts +0 -6
- package/cjs/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
- package/cjs/nodes/html-image-element/Image.cjs +28 -0
- package/cjs/nodes/html-image-element/Image.cjs.map +1 -1
- package/cjs/nodes/html-image-element/Image.d.ts +4 -0
- package/cjs/nodes/html-image-element/Image.d.ts.map +1 -1
- package/cjs/nodes/html-input-element/HTMLInputElement.cjs +88 -56
- package/cjs/nodes/html-input-element/HTMLInputElement.cjs.map +1 -1
- package/cjs/nodes/html-input-element/HTMLInputElement.d.ts +25 -0
- package/cjs/nodes/html-input-element/HTMLInputElement.d.ts.map +1 -1
- package/cjs/nodes/html-label-element/HTMLLabelElement.cjs +4 -3
- package/cjs/nodes/html-label-element/HTMLLabelElement.cjs.map +1 -1
- package/cjs/nodes/html-label-element/HTMLLabelElement.d.ts +8 -1
- package/cjs/nodes/html-label-element/HTMLLabelElement.d.ts.map +1 -1
- package/cjs/nodes/html-link-element/HTMLLinkElement.cjs +10 -16
- package/cjs/nodes/html-link-element/HTMLLinkElement.cjs.map +1 -1
- package/cjs/nodes/html-link-element/HTMLLinkElement.d.ts +0 -6
- package/cjs/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
- package/cjs/nodes/html-media-element/HTMLMediaElement.cjs +12 -16
- package/cjs/nodes/html-media-element/HTMLMediaElement.cjs.map +1 -1
- package/cjs/nodes/html-media-element/HTMLMediaElement.d.ts.map +1 -1
- package/cjs/nodes/html-media-element/MediaStream.cjs +3 -0
- package/cjs/nodes/html-media-element/MediaStream.cjs.map +1 -1
- package/cjs/nodes/html-media-element/MediaStream.d.ts.map +1 -1
- package/cjs/nodes/html-media-element/MediaStreamTrack.cjs +3 -0
- package/cjs/nodes/html-media-element/MediaStreamTrack.cjs.map +1 -1
- package/cjs/nodes/html-media-element/MediaStreamTrack.d.ts.map +1 -1
- package/cjs/nodes/html-media-element/TextTrack.cjs +3 -0
- package/cjs/nodes/html-media-element/TextTrack.cjs.map +1 -1
- package/cjs/nodes/html-media-element/TextTrack.d.ts.map +1 -1
- package/cjs/nodes/html-media-element/TextTrackCue.cjs +3 -0
- package/cjs/nodes/html-media-element/TextTrackCue.cjs.map +1 -1
- package/cjs/nodes/html-media-element/TextTrackCue.d.ts.map +1 -1
- package/cjs/nodes/html-media-element/VTTCue.cjs +7 -8
- package/cjs/nodes/html-media-element/VTTCue.cjs.map +1 -1
- package/cjs/nodes/html-media-element/VTTCue.d.ts +1 -4
- package/cjs/nodes/html-media-element/VTTCue.d.ts.map +1 -1
- package/cjs/nodes/html-meter-element/HTMLMeterElement.cjs +30 -6
- package/cjs/nodes/html-meter-element/HTMLMeterElement.cjs.map +1 -1
- package/cjs/nodes/html-meter-element/HTMLMeterElement.d.ts.map +1 -1
- package/cjs/nodes/html-progress-element/HTMLProgressElement.cjs +26 -2
- package/cjs/nodes/html-progress-element/HTMLProgressElement.cjs.map +1 -1
- package/cjs/nodes/html-progress-element/HTMLProgressElement.d.ts.map +1 -1
- package/cjs/nodes/html-script-element/HTMLScriptElement.cjs +21 -27
- package/cjs/nodes/html-script-element/HTMLScriptElement.cjs.map +1 -1
- package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts +0 -6
- package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
- package/cjs/nodes/html-select-element/HTMLSelectElement.cjs +5 -5
- package/cjs/nodes/html-select-element/HTMLSelectElement.cjs.map +1 -1
- package/cjs/nodes/html-select-element/HTMLSelectElement.d.ts.map +1 -1
- package/cjs/nodes/html-table-element/HTMLTableElement.cjs +8 -9
- package/cjs/nodes/html-table-element/HTMLTableElement.cjs.map +1 -1
- package/cjs/nodes/html-table-element/HTMLTableElement.d.ts.map +1 -1
- package/cjs/nodes/html-table-row-element/HTMLTableRowElement.cjs +5 -6
- package/cjs/nodes/html-table-row-element/HTMLTableRowElement.cjs.map +1 -1
- package/cjs/nodes/html-table-row-element/HTMLTableRowElement.d.ts.map +1 -1
- package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.cjs +1 -2
- package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.cjs.map +1 -1
- package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.d.ts.map +1 -1
- package/cjs/nodes/html-track-element/HTMLTrackElement.cjs +1 -2
- package/cjs/nodes/html-track-element/HTMLTrackElement.cjs.map +1 -1
- package/cjs/nodes/node/Node.cjs +23 -22
- package/cjs/nodes/node/Node.cjs.map +1 -1
- package/cjs/nodes/node/Node.d.ts +1 -2
- package/cjs/nodes/node/Node.d.ts.map +1 -1
- package/cjs/nodes/node/NodeList.cjs +4 -6
- package/cjs/nodes/node/NodeList.cjs.map +1 -1
- package/cjs/nodes/node/NodeList.d.ts.map +1 -1
- package/cjs/nodes/text/Text.cjs +1 -2
- package/cjs/nodes/text/Text.cjs.map +1 -1
- package/cjs/nodes/text/Text.d.ts.map +1 -1
- package/cjs/permissions/Permissions.cjs +13 -2
- package/cjs/permissions/Permissions.cjs.map +1 -1
- package/cjs/permissions/Permissions.d.ts +7 -0
- package/cjs/permissions/Permissions.d.ts.map +1 -1
- package/cjs/query-selector/QuerySelector.cjs +12 -10
- package/cjs/query-selector/QuerySelector.cjs.map +1 -1
- package/cjs/query-selector/QuerySelector.d.ts.map +1 -1
- package/cjs/range/Range.cjs +26 -23
- package/cjs/range/Range.cjs.map +1 -1
- package/cjs/range/Range.d.ts +2 -2
- package/cjs/range/Range.d.ts.map +1 -1
- package/cjs/selection/Selection.cjs +16 -17
- package/cjs/selection/Selection.cjs.map +1 -1
- package/cjs/selection/Selection.d.ts.map +1 -1
- package/cjs/window/BrowserWindow.cjs +136 -266
- package/cjs/window/BrowserWindow.cjs.map +1 -1
- package/cjs/window/BrowserWindow.d.ts +115 -117
- package/cjs/window/BrowserWindow.d.ts.map +1 -1
- package/cjs/window/VMGlobalPropertyScript.cjs +0 -1
- package/cjs/window/VMGlobalPropertyScript.cjs.map +1 -1
- package/cjs/window/VMGlobalPropertyScript.d.ts.map +1 -1
- package/cjs/window/WindowBrowserContext.cjs +117 -0
- package/cjs/window/WindowBrowserContext.cjs.map +1 -0
- package/cjs/window/WindowBrowserContext.d.ts +75 -0
- package/cjs/window/WindowBrowserContext.d.ts.map +1 -0
- package/cjs/window/WindowClassExtender.cjs +332 -0
- package/cjs/window/WindowClassExtender.cjs.map +1 -0
- package/cjs/window/WindowClassExtender.d.ts +15 -0
- package/cjs/window/WindowClassExtender.d.ts.map +1 -0
- package/cjs/window/WindowPageOpenUtility.cjs +11 -1
- package/cjs/window/WindowPageOpenUtility.cjs.map +1 -1
- package/cjs/window/WindowPageOpenUtility.d.ts.map +1 -1
- package/cjs/xml-http-request/XMLHttpRequest.cjs +33 -33
- package/cjs/xml-http-request/XMLHttpRequest.cjs.map +1 -1
- package/cjs/xml-http-request/XMLHttpRequest.d.ts +2 -11
- package/cjs/xml-http-request/XMLHttpRequest.d.ts.map +1 -1
- package/lib/ClassMethodBinder.d.ts +4 -2
- package/lib/ClassMethodBinder.d.ts.map +1 -1
- package/lib/ClassMethodBinder.js +8 -6
- package/lib/ClassMethodBinder.js.map +1 -1
- package/lib/PropertySymbol.d.ts +15 -4
- package/lib/PropertySymbol.d.ts.map +1 -1
- package/lib/PropertySymbol.js +15 -4
- package/lib/PropertySymbol.js.map +1 -1
- package/lib/async-task-manager/AsyncTaskManager.d.ts +11 -1
- package/lib/async-task-manager/AsyncTaskManager.d.ts.map +1 -1
- package/lib/async-task-manager/AsyncTaskManager.js +64 -35
- package/lib/async-task-manager/AsyncTaskManager.js.map +1 -1
- package/lib/browser/Browser.d.ts +3 -0
- package/lib/browser/Browser.d.ts.map +1 -1
- package/lib/browser/Browser.js +7 -0
- package/lib/browser/Browser.js.map +1 -1
- package/lib/browser/BrowserFrame.d.ts +1 -4
- package/lib/browser/BrowserFrame.d.ts.map +1 -1
- package/lib/browser/BrowserFrame.js +3 -7
- package/lib/browser/BrowserFrame.js.map +1 -1
- package/lib/browser/DefaultBrowserSettings.d.ts.map +1 -1
- package/lib/browser/DefaultBrowserSettings.js +2 -1
- package/lib/browser/DefaultBrowserSettings.js.map +1 -1
- package/lib/browser/detached-browser/DetachedBrowser.d.ts +3 -0
- package/lib/browser/detached-browser/DetachedBrowser.d.ts.map +1 -1
- package/lib/browser/detached-browser/DetachedBrowser.js +7 -0
- package/lib/browser/detached-browser/DetachedBrowser.js.map +1 -1
- package/lib/browser/detached-browser/DetachedBrowserFrame.d.ts +1 -4
- package/lib/browser/detached-browser/DetachedBrowserFrame.d.ts.map +1 -1
- package/lib/browser/detached-browser/DetachedBrowserFrame.js +3 -7
- package/lib/browser/detached-browser/DetachedBrowserFrame.js.map +1 -1
- package/lib/browser/types/IBrowser.d.ts +3 -0
- package/lib/browser/types/IBrowser.d.ts.map +1 -1
- package/lib/browser/types/IBrowser.js +1 -1
- package/lib/browser/types/IBrowser.js.map +1 -1
- package/lib/browser/types/IBrowserFrame.d.ts +0 -3
- package/lib/browser/types/IBrowserFrame.d.ts.map +1 -1
- package/lib/browser/types/IBrowserSettings.d.ts +1 -0
- package/lib/browser/types/IBrowserSettings.d.ts.map +1 -1
- package/{cjs/browser/utilities/BrowserFrameExceptionObserver.d.ts → lib/browser/utilities/BrowserExceptionObserver.d.ts} +9 -7
- package/lib/browser/utilities/BrowserExceptionObserver.d.ts.map +1 -0
- package/lib/browser/utilities/BrowserExceptionObserver.js +97 -0
- package/lib/browser/utilities/BrowserExceptionObserver.js.map +1 -0
- package/lib/browser/utilities/BrowserFrameFactory.d.ts.map +1 -1
- package/lib/browser/utilities/BrowserFrameFactory.js +27 -35
- package/lib/browser/utilities/BrowserFrameFactory.js.map +1 -1
- package/lib/browser/utilities/BrowserFrameNavigator.d.ts.map +1 -1
- package/lib/browser/utilities/BrowserFrameNavigator.js +52 -29
- package/lib/browser/utilities/BrowserFrameNavigator.js.map +1 -1
- package/lib/clipboard/Clipboard.d.ts +2 -2
- package/lib/clipboard/Clipboard.d.ts.map +1 -1
- package/lib/clipboard/Clipboard.js +18 -15
- package/lib/clipboard/Clipboard.js.map +1 -1
- package/lib/css/declaration/AbstractCSSStyleDeclaration.js +4 -4
- package/lib/css/declaration/AbstractCSSStyleDeclaration.js.map +1 -1
- package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.d.ts.map +1 -1
- package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.js +6 -5
- package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.js.map +1 -1
- package/lib/css/declaration/measurement-converter/CSSMeasurementConverter.d.ts +2 -2
- package/lib/css/declaration/measurement-converter/CSSMeasurementConverter.d.ts.map +1 -1
- package/lib/css/declaration/measurement-converter/CSSMeasurementConverter.js +5 -5
- package/lib/css/declaration/measurement-converter/CSSMeasurementConverter.js.map +1 -1
- package/lib/custom-element/CustomElementRegistry.d.ts +2 -3
- package/lib/custom-element/CustomElementRegistry.d.ts.map +1 -1
- package/lib/custom-element/CustomElementRegistry.js +37 -17
- package/lib/custom-element/CustomElementRegistry.js.map +1 -1
- package/lib/dom-implementation/DOMImplementation.d.ts +7 -3
- package/lib/dom-implementation/DOMImplementation.d.ts.map +1 -1
- package/lib/dom-implementation/DOMImplementation.js +12 -7
- package/lib/dom-implementation/DOMImplementation.js.map +1 -1
- package/lib/dom-parser/DOMParser.d.ts +2 -6
- package/lib/dom-parser/DOMParser.d.ts.map +1 -1
- package/lib/dom-parser/DOMParser.js +6 -15
- package/lib/dom-parser/DOMParser.js.map +1 -1
- package/lib/event/Event.d.ts +49 -7
- package/lib/event/Event.d.ts.map +1 -1
- package/lib/event/Event.js +76 -18
- package/lib/event/Event.js.map +1 -1
- package/lib/event/EventTarget.d.ts +12 -8
- package/lib/event/EventTarget.d.ts.map +1 -1
- package/lib/event/EventTarget.js +153 -141
- package/lib/event/EventTarget.js.map +1 -1
- package/lib/event/MessagePort.d.ts +1 -2
- package/lib/event/MessagePort.d.ts.map +1 -1
- package/lib/event/MessagePort.js.map +1 -1
- package/lib/event/TEventListener.d.ts +5 -0
- package/lib/event/TEventListener.d.ts.map +1 -0
- package/lib/event/TEventListener.js +2 -0
- package/lib/event/TEventListener.js.map +1 -0
- package/lib/event/TEventListenerFunction.d.ts +4 -0
- package/lib/event/TEventListenerFunction.d.ts.map +1 -0
- package/lib/event/TEventListenerFunction.js +2 -0
- package/lib/event/TEventListenerFunction.js.map +1 -0
- package/lib/event/TEventListenerObject.d.ts +6 -0
- package/lib/event/TEventListenerObject.d.ts.map +1 -0
- package/lib/event/TEventListenerObject.js +2 -0
- package/lib/event/TEventListenerObject.js.map +1 -0
- package/lib/event/events/CustomEvent.d.ts +8 -1
- package/lib/event/events/CustomEvent.d.ts.map +1 -1
- package/lib/event/events/CustomEvent.js +15 -6
- package/lib/event/events/CustomEvent.js.map +1 -1
- package/lib/event/events/IErrorEventInit.d.ts.map +1 -1
- package/lib/event/events/IMessageEventInit.d.ts +2 -2
- package/lib/event/events/IMessageEventInit.d.ts.map +1 -1
- package/lib/event/events/MessageEvent.d.ts +2 -2
- package/lib/event/events/MessageEvent.d.ts.map +1 -1
- package/lib/event/events/MessageEvent.js.map +1 -1
- package/lib/fetch/AbortController.d.ts +3 -4
- package/lib/fetch/AbortController.d.ts.map +1 -1
- package/lib/fetch/AbortController.js +2 -8
- package/lib/fetch/AbortController.js.map +1 -1
- package/lib/fetch/AbortSignal.d.ts +7 -0
- package/lib/fetch/AbortSignal.d.ts.map +1 -1
- package/lib/fetch/AbortSignal.js +14 -4
- package/lib/fetch/AbortSignal.js.map +1 -1
- package/lib/fetch/Fetch.d.ts.map +1 -1
- package/lib/fetch/Fetch.js +24 -14
- package/lib/fetch/Fetch.js.map +1 -1
- package/lib/fetch/Request.d.ts +3 -14
- package/lib/fetch/Request.d.ts.map +1 -1
- package/lib/fetch/Request.js +62 -45
- package/lib/fetch/Request.js.map +1 -1
- package/lib/fetch/ResourceFetch.d.ts.map +1 -1
- package/lib/fetch/ResourceFetch.js +2 -3
- package/lib/fetch/ResourceFetch.js.map +1 -1
- package/lib/fetch/Response.d.ts +3 -10
- package/lib/fetch/Response.d.ts.map +1 -1
- package/lib/fetch/Response.js +63 -40
- package/lib/fetch/Response.js.map +1 -1
- package/lib/fetch/SyncFetch.d.ts.map +1 -1
- package/lib/fetch/SyncFetch.js +12 -13
- package/lib/fetch/SyncFetch.js.map +1 -1
- package/lib/fetch/multipart/MultipartFormDataParser.d.ts +3 -1
- package/lib/fetch/multipart/MultipartFormDataParser.d.ts.map +1 -1
- package/lib/fetch/multipart/MultipartFormDataParser.js +12 -6
- package/lib/fetch/multipart/MultipartFormDataParser.js.map +1 -1
- package/lib/fetch/multipart/MultipartReader.d.ts +4 -1
- package/lib/fetch/multipart/MultipartReader.d.ts.map +1 -1
- package/lib/fetch/multipart/MultipartReader.js +5 -3
- package/lib/fetch/multipart/MultipartReader.js.map +1 -1
- package/lib/fetch/utilities/FetchBodyUtility.d.ts +5 -2
- package/lib/fetch/utilities/FetchBodyUtility.d.ts.map +1 -1
- package/lib/fetch/utilities/FetchBodyUtility.js +10 -5
- package/lib/fetch/utilities/FetchBodyUtility.js.map +1 -1
- package/lib/file/FileReader.d.ts +1 -4
- package/lib/file/FileReader.d.ts.map +1 -1
- package/lib/file/FileReader.js +11 -11
- package/lib/file/FileReader.js.map +1 -1
- package/lib/history/History.d.ts +2 -2
- package/lib/history/History.d.ts.map +1 -1
- package/lib/history/History.js +28 -14
- package/lib/history/History.js.map +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/location/Location.d.ts +4 -0
- package/lib/location/Location.d.ts.map +1 -1
- package/lib/location/Location.js +43 -22
- package/lib/location/Location.js.map +1 -1
- package/lib/match-media/MediaQueryItem.d.ts +3 -3
- package/lib/match-media/MediaQueryItem.d.ts.map +1 -1
- package/lib/match-media/MediaQueryItem.js +26 -26
- package/lib/match-media/MediaQueryItem.js.map +1 -1
- package/lib/match-media/MediaQueryList.d.ts +5 -5
- package/lib/match-media/MediaQueryList.d.ts.map +1 -1
- package/lib/match-media/MediaQueryList.js +7 -7
- package/lib/match-media/MediaQueryList.js.map +1 -1
- package/lib/match-media/MediaQueryParser.d.ts +2 -2
- package/lib/match-media/MediaQueryParser.d.ts.map +1 -1
- package/lib/match-media/MediaQueryParser.js +4 -4
- package/lib/match-media/MediaQueryParser.js.map +1 -1
- package/lib/mutation-observer/MutationObserver.d.ts +3 -0
- package/lib/mutation-observer/MutationObserver.d.ts.map +1 -1
- package/lib/mutation-observer/MutationObserver.js +17 -15
- package/lib/mutation-observer/MutationObserver.js.map +1 -1
- package/lib/navigator/Navigator.d.ts +2 -2
- package/lib/navigator/Navigator.d.ts.map +1 -1
- package/lib/navigator/Navigator.js +13 -10
- package/lib/navigator/Navigator.js.map +1 -1
- package/lib/nodes/NodeFactory.js +1 -1
- package/lib/nodes/NodeFactory.js.map +1 -1
- package/lib/nodes/document/Document.d.ts +9 -16
- package/lib/nodes/document/Document.d.ts.map +1 -1
- package/lib/nodes/document/Document.js +69 -51
- package/lib/nodes/document/Document.js.map +1 -1
- package/lib/nodes/document/DocumentReadyStateManager.d.ts.map +1 -1
- package/lib/nodes/document/DocumentReadyStateManager.js +12 -10
- package/lib/nodes/document/DocumentReadyStateManager.js.map +1 -1
- package/lib/nodes/element/Element.d.ts +7 -3
- package/lib/nodes/element/Element.d.ts.map +1 -1
- package/lib/nodes/element/Element.js +33 -20
- package/lib/nodes/element/Element.js.map +1 -1
- package/lib/nodes/element/HTMLCollection.d.ts.map +1 -1
- package/lib/nodes/element/HTMLCollection.js +1 -4
- package/lib/nodes/element/HTMLCollection.js.map +1 -1
- package/lib/nodes/element/NamedNodeMap.d.ts.map +1 -1
- package/lib/nodes/element/NamedNodeMap.js +4 -0
- package/lib/nodes/element/NamedNodeMap.js.map +1 -1
- package/lib/nodes/element/NamedNodeMapProxyFactory.d.ts.map +1 -1
- package/lib/nodes/element/NamedNodeMapProxyFactory.js +0 -6
- package/lib/nodes/element/NamedNodeMapProxyFactory.js.map +1 -1
- package/lib/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
- package/lib/nodes/html-anchor-element/HTMLAnchorElement.js +5 -5
- package/lib/nodes/html-anchor-element/HTMLAnchorElement.js.map +1 -1
- package/lib/nodes/html-area-element/HTMLAreaElement.d.ts.map +1 -1
- package/lib/nodes/html-area-element/HTMLAreaElement.js +7 -8
- package/lib/nodes/html-area-element/HTMLAreaElement.js.map +1 -1
- package/lib/nodes/html-audio-element/Audio.d.ts +4 -0
- package/lib/nodes/html-audio-element/Audio.d.ts.map +1 -1
- package/lib/nodes/html-audio-element/Audio.js +5 -0
- package/lib/nodes/html-audio-element/Audio.js.map +1 -1
- package/lib/nodes/html-button-element/HTMLButtonElement.d.ts +27 -3
- package/lib/nodes/html-button-element/HTMLButtonElement.d.ts.map +1 -1
- package/lib/nodes/html-button-element/HTMLButtonElement.js +63 -35
- package/lib/nodes/html-button-element/HTMLButtonElement.js.map +1 -1
- package/lib/nodes/html-canvas-element/HTMLCanvasElement.d.ts.map +1 -1
- package/lib/nodes/html-canvas-element/HTMLCanvasElement.js +2 -4
- package/lib/nodes/html-canvas-element/HTMLCanvasElement.js.map +1 -1
- package/lib/nodes/html-document/HTMLDocument.d.ts +1 -10
- package/lib/nodes/html-document/HTMLDocument.d.ts.map +1 -1
- package/lib/nodes/html-document/HTMLDocument.js +2 -6
- package/lib/nodes/html-document/HTMLDocument.js.map +1 -1
- package/lib/nodes/html-element/HTMLElement.d.ts +14 -2
- package/lib/nodes/html-element/HTMLElement.d.ts.map +1 -1
- package/lib/nodes/html-element/HTMLElement.js +130 -89
- package/lib/nodes/html-element/HTMLElement.js.map +1 -1
- package/lib/nodes/html-form-element/HTMLFormElement.d.ts +1 -3
- package/lib/nodes/html-form-element/HTMLFormElement.d.ts.map +1 -1
- package/lib/nodes/html-form-element/HTMLFormElement.js +6 -7
- package/lib/nodes/html-form-element/HTMLFormElement.js.map +1 -1
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts +0 -6
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.js +30 -38
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.js.map +1 -1
- package/lib/nodes/html-image-element/Image.d.ts +4 -0
- package/lib/nodes/html-image-element/Image.d.ts.map +1 -1
- package/lib/nodes/html-image-element/Image.js +5 -0
- package/lib/nodes/html-image-element/Image.js.map +1 -1
- package/lib/nodes/html-input-element/HTMLInputElement.d.ts +25 -0
- package/lib/nodes/html-input-element/HTMLInputElement.d.ts.map +1 -1
- package/lib/nodes/html-input-element/HTMLInputElement.js +88 -56
- package/lib/nodes/html-input-element/HTMLInputElement.js.map +1 -1
- package/lib/nodes/html-label-element/HTMLLabelElement.d.ts +8 -1
- package/lib/nodes/html-label-element/HTMLLabelElement.d.ts.map +1 -1
- package/lib/nodes/html-label-element/HTMLLabelElement.js +4 -3
- package/lib/nodes/html-label-element/HTMLLabelElement.js.map +1 -1
- package/lib/nodes/html-link-element/HTMLLinkElement.d.ts +0 -6
- package/lib/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
- package/lib/nodes/html-link-element/HTMLLinkElement.js +10 -16
- package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
- package/lib/nodes/html-media-element/HTMLMediaElement.d.ts.map +1 -1
- package/lib/nodes/html-media-element/HTMLMediaElement.js +12 -16
- package/lib/nodes/html-media-element/HTMLMediaElement.js.map +1 -1
- package/lib/nodes/html-media-element/MediaStream.d.ts.map +1 -1
- package/lib/nodes/html-media-element/MediaStream.js +3 -0
- package/lib/nodes/html-media-element/MediaStream.js.map +1 -1
- package/lib/nodes/html-media-element/MediaStreamTrack.d.ts.map +1 -1
- package/lib/nodes/html-media-element/MediaStreamTrack.js +3 -0
- package/lib/nodes/html-media-element/MediaStreamTrack.js.map +1 -1
- package/lib/nodes/html-media-element/TextTrack.d.ts.map +1 -1
- package/lib/nodes/html-media-element/TextTrack.js +3 -0
- package/lib/nodes/html-media-element/TextTrack.js.map +1 -1
- package/lib/nodes/html-media-element/TextTrackCue.d.ts.map +1 -1
- package/lib/nodes/html-media-element/TextTrackCue.js +3 -0
- package/lib/nodes/html-media-element/TextTrackCue.js.map +1 -1
- package/lib/nodes/html-media-element/VTTCue.d.ts +1 -4
- package/lib/nodes/html-media-element/VTTCue.d.ts.map +1 -1
- package/lib/nodes/html-media-element/VTTCue.js +7 -8
- package/lib/nodes/html-media-element/VTTCue.js.map +1 -1
- package/lib/nodes/html-meter-element/HTMLMeterElement.d.ts.map +1 -1
- package/lib/nodes/html-meter-element/HTMLMeterElement.js +7 -6
- package/lib/nodes/html-meter-element/HTMLMeterElement.js.map +1 -1
- package/lib/nodes/html-progress-element/HTMLProgressElement.d.ts.map +1 -1
- package/lib/nodes/html-progress-element/HTMLProgressElement.js +3 -2
- package/lib/nodes/html-progress-element/HTMLProgressElement.js.map +1 -1
- package/lib/nodes/html-script-element/HTMLScriptElement.d.ts +0 -6
- package/lib/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
- package/lib/nodes/html-script-element/HTMLScriptElement.js +21 -27
- package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
- package/lib/nodes/html-select-element/HTMLSelectElement.d.ts.map +1 -1
- package/lib/nodes/html-select-element/HTMLSelectElement.js +5 -5
- package/lib/nodes/html-select-element/HTMLSelectElement.js.map +1 -1
- package/lib/nodes/html-table-element/HTMLTableElement.d.ts.map +1 -1
- package/lib/nodes/html-table-element/HTMLTableElement.js +8 -9
- package/lib/nodes/html-table-element/HTMLTableElement.js.map +1 -1
- package/lib/nodes/html-table-row-element/HTMLTableRowElement.d.ts.map +1 -1
- package/lib/nodes/html-table-row-element/HTMLTableRowElement.js +5 -6
- package/lib/nodes/html-table-row-element/HTMLTableRowElement.js.map +1 -1
- package/lib/nodes/html-text-area-element/HTMLTextAreaElement.d.ts.map +1 -1
- package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js +1 -2
- package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js.map +1 -1
- package/lib/nodes/html-track-element/HTMLTrackElement.js +1 -2
- package/lib/nodes/html-track-element/HTMLTrackElement.js.map +1 -1
- package/lib/nodes/node/Node.d.ts +1 -2
- package/lib/nodes/node/Node.d.ts.map +1 -1
- package/lib/nodes/node/Node.js +23 -22
- package/lib/nodes/node/Node.js.map +1 -1
- package/lib/nodes/node/NodeList.d.ts.map +1 -1
- package/lib/nodes/node/NodeList.js +4 -6
- package/lib/nodes/node/NodeList.js.map +1 -1
- package/lib/nodes/text/Text.d.ts.map +1 -1
- package/lib/nodes/text/Text.js +1 -2
- package/lib/nodes/text/Text.js.map +1 -1
- package/lib/permissions/Permissions.d.ts +7 -0
- package/lib/permissions/Permissions.d.ts.map +1 -1
- package/lib/permissions/Permissions.js +13 -2
- package/lib/permissions/Permissions.js.map +1 -1
- package/lib/query-selector/QuerySelector.d.ts.map +1 -1
- package/lib/query-selector/QuerySelector.js +12 -10
- package/lib/query-selector/QuerySelector.js.map +1 -1
- package/lib/range/Range.d.ts +2 -2
- package/lib/range/Range.d.ts.map +1 -1
- package/lib/range/Range.js +26 -23
- package/lib/range/Range.js.map +1 -1
- package/lib/selection/Selection.d.ts.map +1 -1
- package/lib/selection/Selection.js +16 -17
- package/lib/selection/Selection.js.map +1 -1
- package/lib/window/BrowserWindow.d.ts +115 -117
- package/lib/window/BrowserWindow.d.ts.map +1 -1
- package/lib/window/BrowserWindow.js +140 -270
- package/lib/window/BrowserWindow.js.map +1 -1
- package/lib/window/VMGlobalPropertyScript.d.ts.map +1 -1
- package/lib/window/VMGlobalPropertyScript.js +0 -1
- package/lib/window/VMGlobalPropertyScript.js.map +1 -1
- package/lib/window/WindowBrowserContext.d.ts +75 -0
- package/lib/window/WindowBrowserContext.d.ts.map +1 -0
- package/lib/window/WindowBrowserContext.js +91 -0
- package/lib/window/WindowBrowserContext.js.map +1 -0
- package/lib/window/WindowClassExtender.d.ts +15 -0
- package/lib/window/WindowClassExtender.d.ts.map +1 -0
- package/lib/window/WindowClassExtender.js +303 -0
- package/lib/window/WindowClassExtender.js.map +1 -0
- package/lib/window/WindowPageOpenUtility.d.ts.map +1 -1
- package/lib/window/WindowPageOpenUtility.js +11 -1
- package/lib/window/WindowPageOpenUtility.js.map +1 -1
- package/lib/xml-http-request/XMLHttpRequest.d.ts +2 -11
- package/lib/xml-http-request/XMLHttpRequest.d.ts.map +1 -1
- package/lib/xml-http-request/XMLHttpRequest.js +33 -33
- package/lib/xml-http-request/XMLHttpRequest.js.map +1 -1
- package/package.json +1 -1
- package/src/ClassMethodBinder.ts +10 -7
- package/src/PropertySymbol.ts +15 -4
- package/src/async-task-manager/AsyncTaskManager.ts +71 -39
- package/src/browser/Browser.ts +7 -0
- package/src/browser/BrowserFrame.ts +3 -7
- package/src/browser/DefaultBrowserSettings.ts +2 -1
- package/src/browser/detached-browser/DetachedBrowser.ts +7 -0
- package/src/browser/detached-browser/DetachedBrowserFrame.ts +3 -7
- package/src/browser/types/IBrowser.ts +3 -0
- package/src/browser/types/IBrowserFrame.ts +0 -3
- package/src/browser/types/IBrowserSettings.ts +1 -0
- package/src/browser/utilities/BrowserExceptionObserver.ts +125 -0
- package/src/browser/utilities/BrowserFrameFactory.ts +29 -33
- package/src/browser/utilities/BrowserFrameNavigator.ts +60 -38
- package/src/clipboard/Clipboard.ts +20 -14
- package/src/css/declaration/AbstractCSSStyleDeclaration.ts +4 -4
- package/src/css/declaration/element-style/CSSStyleDeclarationElementStyle.ts +6 -7
- package/src/css/declaration/measurement-converter/CSSMeasurementConverter.ts +6 -8
- package/src/custom-element/CustomElementRegistry.ts +45 -17
- package/src/dom-implementation/DOMImplementation.ts +15 -10
- package/src/dom-parser/DOMParser.ts +11 -16
- package/src/event/Event.ts +85 -18
- package/src/event/EventTarget.ts +200 -185
- package/src/event/MessagePort.ts +1 -2
- package/src/event/TEventListener.ts +6 -0
- package/src/event/TEventListenerFunction.ts +5 -0
- package/src/event/TEventListenerObject.ts +7 -0
- package/src/event/events/CustomEvent.ts +16 -6
- package/src/event/events/IErrorEventInit.ts +0 -1
- package/src/event/events/IMessageEventInit.ts +2 -2
- package/src/event/events/MessageEvent.ts +2 -2
- package/src/fetch/AbortController.ts +5 -7
- package/src/fetch/AbortSignal.ts +30 -4
- package/src/fetch/Fetch.ts +44 -16
- package/src/fetch/Request.ts +83 -55
- package/src/fetch/ResourceFetch.ts +2 -3
- package/src/fetch/Response.ts +80 -45
- package/src/fetch/SyncFetch.ts +20 -14
- package/src/fetch/multipart/MultipartFormDataParser.ts +16 -5
- package/src/fetch/multipart/MultipartReader.ts +6 -3
- package/src/fetch/utilities/FetchBodyUtility.ts +23 -8
- package/src/file/FileReader.ts +16 -12
- package/src/history/History.ts +31 -14
- package/src/index.ts +2 -2
- package/src/location/Location.ts +46 -22
- package/src/match-media/MediaQueryItem.ts +27 -30
- package/src/match-media/MediaQueryList.ts +11 -21
- package/src/match-media/MediaQueryParser.ts +5 -5
- package/src/mutation-observer/MutationObserver.ts +25 -17
- package/src/navigator/Navigator.ts +14 -12
- package/src/nodes/NodeFactory.ts +1 -1
- package/src/nodes/document/Document.ts +67 -62
- package/src/nodes/document/DocumentReadyStateManager.ts +13 -10
- package/src/nodes/element/Element.ts +44 -29
- package/src/nodes/element/HTMLCollection.ts +1 -4
- package/src/nodes/element/NamedNodeMap.ts +4 -0
- package/src/nodes/element/NamedNodeMapProxyFactory.ts +0 -6
- package/src/nodes/html-anchor-element/HTMLAnchorElement.ts +4 -8
- package/src/nodes/html-area-element/HTMLAreaElement.ts +7 -11
- package/src/nodes/html-audio-element/Audio.ts +6 -0
- package/src/nodes/html-button-element/HTMLButtonElement.ts +67 -37
- package/src/nodes/html-canvas-element/HTMLCanvasElement.ts +5 -3
- package/src/nodes/html-document/HTMLDocument.ts +2 -8
- package/src/nodes/html-element/HTMLElement.ts +151 -129
- package/src/nodes/html-form-element/HTMLFormElement.ts +7 -9
- package/src/nodes/html-iframe-element/HTMLIFrameElement.ts +31 -42
- package/src/nodes/html-image-element/Image.ts +6 -0
- package/src/nodes/html-input-element/HTMLInputElement.ts +96 -61
- package/src/nodes/html-label-element/HTMLLabelElement.ts +21 -6
- package/src/nodes/html-link-element/HTMLLinkElement.ts +12 -19
- package/src/nodes/html-media-element/HTMLMediaElement.ts +15 -12
- package/src/nodes/html-media-element/MediaStream.ts +6 -0
- package/src/nodes/html-media-element/MediaStreamTrack.ts +6 -0
- package/src/nodes/html-media-element/TextTrack.ts +6 -0
- package/src/nodes/html-media-element/TextTrackCue.ts +6 -0
- package/src/nodes/html-media-element/VTTCue.ts +10 -9
- package/src/nodes/html-meter-element/HTMLMeterElement.ts +8 -6
- package/src/nodes/html-progress-element/HTMLProgressElement.ts +4 -2
- package/src/nodes/html-script-element/HTMLScriptElement.ts +25 -45
- package/src/nodes/html-select-element/HTMLSelectElement.ts +6 -5
- package/src/nodes/html-table-element/HTMLTableElement.ts +8 -9
- package/src/nodes/html-table-row-element/HTMLTableRowElement.ts +5 -6
- package/src/nodes/html-text-area-element/HTMLTextAreaElement.ts +1 -2
- package/src/nodes/html-track-element/HTMLTrackElement.ts +1 -1
- package/src/nodes/node/Node.ts +28 -26
- package/src/nodes/node/NodeList.ts +10 -11
- package/src/nodes/text/Text.ts +1 -2
- package/src/permissions/Permissions.ts +17 -1
- package/src/query-selector/QuerySelector.ts +15 -10
- package/src/range/Range.ts +39 -23
- package/src/selection/Selection.ts +27 -17
- package/src/window/BrowserWindow.ts +308 -335
- package/src/window/VMGlobalPropertyScript.ts +0 -1
- package/src/window/WindowBrowserContext.ts +114 -0
- package/src/window/WindowClassExtender.ts +306 -0
- package/src/window/WindowPageOpenUtility.ts +11 -1
- package/src/xml-http-request/XMLHttpRequest.ts +39 -36
- package/cjs/browser/utilities/BrowserFrameExceptionObserver.cjs +0 -80
- package/cjs/browser/utilities/BrowserFrameExceptionObserver.cjs.map +0 -1
- package/cjs/browser/utilities/BrowserFrameExceptionObserver.d.ts.map +0 -1
- package/cjs/event/IEventListener.cjs.map +0 -1
- package/cjs/event/IEventListener.d.ts +0 -13
- package/cjs/event/IEventListener.d.ts.map +0 -1
- package/cjs/event/IMessagePort.cjs.map +0 -1
- package/cjs/event/IMessagePort.d.ts +0 -24
- package/cjs/event/IMessagePort.d.ts.map +0 -1
- package/cjs/window/WindowBrowserSettingsReader.cjs +0 -72
- package/cjs/window/WindowBrowserSettingsReader.cjs.map +0 -1
- package/cjs/window/WindowBrowserSettingsReader.d.ts +0 -29
- package/cjs/window/WindowBrowserSettingsReader.d.ts.map +0 -1
- package/lib/browser/utilities/BrowserFrameExceptionObserver.d.ts.map +0 -1
- package/lib/browser/utilities/BrowserFrameExceptionObserver.js +0 -77
- package/lib/browser/utilities/BrowserFrameExceptionObserver.js.map +0 -1
- package/lib/event/IEventListener.d.ts +0 -13
- package/lib/event/IEventListener.d.ts.map +0 -1
- package/lib/event/IEventListener.js +0 -2
- package/lib/event/IEventListener.js.map +0 -1
- package/lib/event/IMessagePort.d.ts +0 -24
- package/lib/event/IMessagePort.d.ts.map +0 -1
- package/lib/event/IMessagePort.js +0 -2
- package/lib/event/IMessagePort.js.map +0 -1
- package/lib/window/WindowBrowserSettingsReader.d.ts +0 -29
- package/lib/window/WindowBrowserSettingsReader.d.ts.map +0 -1
- package/lib/window/WindowBrowserSettingsReader.js +0 -46
- package/lib/window/WindowBrowserSettingsReader.js.map +0 -1
- package/src/browser/utilities/BrowserFrameExceptionObserver.ts +0 -111
- package/src/event/IEventListener.ts +0 -13
- package/src/event/IMessagePort.ts +0 -26
- package/src/window/WindowBrowserSettingsReader.ts +0 -55
@@ -6,7 +6,6 @@ import { URLSearchParams } from 'url';
|
|
6
6
|
import VM from 'vm';
|
7
7
|
import ClassMethodBinder from '../ClassMethodBinder.js';
|
8
8
|
import * as PropertySymbol from '../PropertySymbol.js';
|
9
|
-
import AsyncTaskManager from '../async-task-manager/AsyncTaskManager.js';
|
10
9
|
import Base64 from '../base64/Base64.js';
|
11
10
|
import BrowserErrorCaptureEnum from '../browser/enums/BrowserErrorCaptureEnum.js';
|
12
11
|
import IBrowserFrame from '../browser/types/IBrowserFrame.js';
|
@@ -25,7 +24,7 @@ import CSSMediaRule from '../css/rules/CSSMediaRule.js';
|
|
25
24
|
import CSSStyleRule from '../css/rules/CSSStyleRule.js';
|
26
25
|
import CSSSupportsRule from '../css/rules/CSSSupportsRule.js';
|
27
26
|
import CustomElementRegistry from '../custom-element/CustomElementRegistry.js';
|
28
|
-
import
|
27
|
+
import DOMParser from '../dom-parser/DOMParser.js';
|
29
28
|
import DataTransfer from '../event/DataTransfer.js';
|
30
29
|
import DataTransferItem from '../event/DataTransferItem.js';
|
31
30
|
import DataTransferItemList from '../event/DataTransferItemList.js';
|
@@ -57,15 +56,13 @@ import AbortController from '../fetch/AbortController.js';
|
|
57
56
|
import AbortSignal from '../fetch/AbortSignal.js';
|
58
57
|
import Fetch from '../fetch/Fetch.js';
|
59
58
|
import Headers from '../fetch/Headers.js';
|
60
|
-
import
|
61
|
-
import
|
59
|
+
import Request from '../fetch/Request.js';
|
60
|
+
import Response from '../fetch/Response.js';
|
62
61
|
import IRequestInfo from '../fetch/types/IRequestInfo.js';
|
63
62
|
import IRequestInit from '../fetch/types/IRequestInit.js';
|
64
|
-
import IResponseBody from '../fetch/types/IResponseBody.js';
|
65
|
-
import IResponseInit from '../fetch/types/IResponseInit.js';
|
66
63
|
import Blob from '../file/Blob.js';
|
67
64
|
import File from '../file/File.js';
|
68
|
-
import
|
65
|
+
import FileReader from '../file/FileReader.js';
|
69
66
|
import FormData from '../form-data/FormData.js';
|
70
67
|
import History from '../history/History.js';
|
71
68
|
import IntersectionObserver from '../intersection-observer/IntersectionObserver.js';
|
@@ -81,10 +78,10 @@ import Plugin from '../navigator/Plugin.js';
|
|
81
78
|
import PluginArray from '../navigator/PluginArray.js';
|
82
79
|
import Attr from '../nodes/attr/Attr.js';
|
83
80
|
import CharacterData from '../nodes/character-data/CharacterData.js';
|
84
|
-
import
|
85
|
-
import
|
81
|
+
import Comment from '../nodes/comment/Comment.js';
|
82
|
+
import DocumentFragment from '../nodes/document-fragment/DocumentFragment.js';
|
86
83
|
import DocumentType from '../nodes/document-type/DocumentType.js';
|
87
|
-
import
|
84
|
+
import Document from '../nodes/document/Document.js';
|
88
85
|
import DocumentReadyStateEnum from '../nodes/document/DocumentReadyStateEnum.js';
|
89
86
|
import DocumentReadyStateManager from '../nodes/document/DocumentReadyStateManager.js';
|
90
87
|
import DOMRect from '../nodes/element/DOMRect.js';
|
@@ -94,7 +91,7 @@ import HTMLCollection from '../nodes/element/HTMLCollection.js';
|
|
94
91
|
import NamedNodeMap from '../nodes/element/NamedNodeMap.js';
|
95
92
|
import HTMLAnchorElement from '../nodes/html-anchor-element/HTMLAnchorElement.js';
|
96
93
|
import HTMLAreaElement from '../nodes/html-area-element/HTMLAreaElement.js';
|
97
|
-
import
|
94
|
+
import Audio from '../nodes/html-audio-element/Audio.js';
|
98
95
|
import HTMLAudioElement from '../nodes/html-audio-element/HTMLAudioElement.js';
|
99
96
|
import HTMLBaseElement from '../nodes/html-base-element/HTMLBaseElement.js';
|
100
97
|
import HTMLBodyElement from '../nodes/html-body-element/HTMLBodyElement.js';
|
@@ -107,26 +104,26 @@ import HTMLDataListElement from '../nodes/html-data-list-element/HTMLDataListEle
|
|
107
104
|
import HTMLDetailsElement from '../nodes/html-details-element/HTMLDetailsElement.js';
|
108
105
|
import HTMLDialogElement from '../nodes/html-dialog-element/HTMLDialogElement.js';
|
109
106
|
import HTMLDivElement from '../nodes/html-div-element/HTMLDivElement.js';
|
110
|
-
import
|
107
|
+
import HTMLDocument from '../nodes/html-document/HTMLDocument.js';
|
111
108
|
import HTMLElement from '../nodes/html-element/HTMLElement.js';
|
112
109
|
import HTMLEmbedElement from '../nodes/html-embed-element/HTMLEmbedElement.js';
|
113
110
|
import HTMLFieldSetElement from '../nodes/html-field-set-element/HTMLFieldSetElement.js';
|
114
111
|
import HTMLFormControlsCollection from '../nodes/html-form-element/HTMLFormControlsCollection.js';
|
115
|
-
import
|
112
|
+
import HTMLFormElement from '../nodes/html-form-element/HTMLFormElement.js';
|
116
113
|
import RadioNodeList from '../nodes/html-form-element/RadioNodeList.js';
|
117
114
|
import HTMLHeadElement from '../nodes/html-head-element/HTMLHeadElement.js';
|
118
115
|
import HTMLHeadingElement from '../nodes/html-heading-element/HTMLHeadingElement.js';
|
119
116
|
import HTMLHRElement from '../nodes/html-hr-element/HTMLHRElement.js';
|
120
117
|
import HTMLHtmlElement from '../nodes/html-html-element/HTMLHtmlElement.js';
|
121
|
-
import
|
118
|
+
import HTMLIFrameElement from '../nodes/html-iframe-element/HTMLIFrameElement.js';
|
122
119
|
import HTMLImageElement from '../nodes/html-image-element/HTMLImageElement.js';
|
123
|
-
import
|
120
|
+
import Image from '../nodes/html-image-element/Image.js';
|
124
121
|
import FileList from '../nodes/html-input-element/FileList.js';
|
125
122
|
import HTMLInputElement from '../nodes/html-input-element/HTMLInputElement.js';
|
126
123
|
import HTMLLabelElement from '../nodes/html-label-element/HTMLLabelElement.js';
|
127
124
|
import HTMLLegendElement from '../nodes/html-legend-element/HTMLLegendElement.js';
|
128
125
|
import HTMLLIElement from '../nodes/html-li-element/HTMLLIElement.js';
|
129
|
-
import
|
126
|
+
import HTMLLinkElement from '../nodes/html-link-element/HTMLLinkElement.js';
|
130
127
|
import HTMLMapElement from '../nodes/html-map-element/HTMLMapElement.js';
|
131
128
|
import HTMLMediaElement from '../nodes/html-media-element/HTMLMediaElement.js';
|
132
129
|
import MediaStream from '../nodes/html-media-element/MediaStream.js';
|
@@ -137,7 +134,7 @@ import TextTrackCue from '../nodes/html-media-element/TextTrackCue.js';
|
|
137
134
|
import TextTrackCueList from '../nodes/html-media-element/TextTrackCueList.js';
|
138
135
|
import TextTrackList from '../nodes/html-media-element/TextTrackList.js';
|
139
136
|
import TimeRanges from '../nodes/html-media-element/TimeRanges.js';
|
140
|
-
import
|
137
|
+
import VTTCue from '../nodes/html-media-element/VTTCue.js';
|
141
138
|
import HTMLMenuElement from '../nodes/html-menu-element/HTMLMenuElement.js';
|
142
139
|
import HTMLMetaElement from '../nodes/html-meta-element/HTMLMetaElement.js';
|
143
140
|
import HTMLMeterElement from '../nodes/html-meter-element/HTMLMeterElement.js';
|
@@ -153,7 +150,7 @@ import HTMLPictureElement from '../nodes/html-picture-element/HTMLPictureElement
|
|
153
150
|
import HTMLPreElement from '../nodes/html-pre-element/HTMLPreElement.js';
|
154
151
|
import HTMLProgressElement from '../nodes/html-progress-element/HTMLProgressElement.js';
|
155
152
|
import HTMLQuoteElement from '../nodes/html-quote-element/HTMLQuoteElement.js';
|
156
|
-
import
|
153
|
+
import HTMLScriptElement from '../nodes/html-script-element/HTMLScriptElement.js';
|
157
154
|
import HTMLSelectElement from '../nodes/html-select-element/HTMLSelectElement.js';
|
158
155
|
import HTMLSlotElement from '../nodes/html-slot-element/HTMLSlotElement.js';
|
159
156
|
import HTMLSourceElement from '../nodes/html-source-element/HTMLSourceElement.js';
|
@@ -177,15 +174,15 @@ import Node from '../nodes/node/Node.js';
|
|
177
174
|
import NodeList from '../nodes/node/NodeList.js';
|
178
175
|
import ProcessingInstruction from '../nodes/processing-instruction/ProcessingInstruction.js';
|
179
176
|
import ShadowRoot from '../nodes/shadow-root/ShadowRoot.js';
|
180
|
-
import
|
177
|
+
import SVGDocument from '../nodes/svg-document/SVGDocument.js';
|
181
178
|
import SVGElement from '../nodes/svg-element/SVGElement.js';
|
182
179
|
import SVGGraphicsElement from '../nodes/svg-element/SVGGraphicsElement.js';
|
183
180
|
import SVGSVGElement from '../nodes/svg-element/SVGSVGElement.js';
|
184
|
-
import
|
185
|
-
import
|
181
|
+
import Text from '../nodes/text/Text.js';
|
182
|
+
import XMLDocument from '../nodes/xml-document/XMLDocument.js';
|
186
183
|
import PermissionStatus from '../permissions/PermissionStatus.js';
|
187
184
|
import Permissions from '../permissions/Permissions.js';
|
188
|
-
import
|
185
|
+
import Range from '../range/Range.js';
|
189
186
|
import ResizeObserver from '../resize-observer/ResizeObserver.js';
|
190
187
|
import Screen from '../screen/Screen.js';
|
191
188
|
import Selection from '../selection/Selection.js';
|
@@ -195,17 +192,25 @@ import NodeIterator from '../tree-walker/NodeIterator.js';
|
|
195
192
|
import TreeWalker from '../tree-walker/TreeWalker.js';
|
196
193
|
import URL from '../url/URL.js';
|
197
194
|
import ValidityState from '../validity-state/ValidityState.js';
|
198
|
-
import
|
195
|
+
import XMLHttpRequest from '../xml-http-request/XMLHttpRequest.js';
|
199
196
|
import XMLHttpRequestEventTarget from '../xml-http-request/XMLHttpRequestEventTarget.js';
|
200
197
|
import XMLHttpRequestUpload from '../xml-http-request/XMLHttpRequestUpload.js';
|
201
198
|
import XMLSerializer from '../xml-serializer/XMLSerializer.js';
|
202
199
|
import CrossOriginBrowserWindow from './CrossOriginBrowserWindow.js';
|
203
200
|
import INodeJSGlobal from './INodeJSGlobal.js';
|
204
201
|
import VMGlobalPropertyScript from './VMGlobalPropertyScript.js';
|
205
|
-
import WindowBrowserSettingsReader from './WindowBrowserSettingsReader.js';
|
206
202
|
import WindowErrorUtility from './WindowErrorUtility.js';
|
207
203
|
import WindowPageOpenUtility from './WindowPageOpenUtility.js';
|
208
|
-
|
204
|
+
import {
|
205
|
+
PerformanceObserver,
|
206
|
+
PerformanceEntry,
|
207
|
+
PerformanceObserverEntryList as IPerformanceObserverEntryList
|
208
|
+
} from 'node:perf_hooks';
|
209
|
+
import EventPhaseEnum from '../event/EventPhaseEnum.js';
|
210
|
+
import HTMLOptionsCollection from '../nodes/html-select-element/HTMLOptionsCollection.js';
|
211
|
+
import WindowClassExtender from './WindowClassExtender.js';
|
212
|
+
import WindowBrowserContext from './WindowBrowserContext.js';
|
213
|
+
import CanvasCaptureMediaStreamTrack from '../nodes/html-canvas-element/CanvasCaptureMediaStreamTrack.js';
|
209
214
|
const TIMER = {
|
210
215
|
setTimeout: globalThis.setTimeout.bind(globalThis),
|
211
216
|
clearTimeout: globalThis.clearTimeout.bind(globalThis),
|
@@ -216,6 +221,18 @@ const TIMER = {
|
|
216
221
|
clearImmediate: globalThis.clearImmediate.bind(globalThis)
|
217
222
|
};
|
218
223
|
const IS_NODE_JS_TIMEOUT_ENVIRONMENT = setTimeout.toString().includes('new Timeout');
|
224
|
+
|
225
|
+
/**
|
226
|
+
* Class for PerformanceObserverEntryList as it is only available as an interface from Node.js.
|
227
|
+
*/
|
228
|
+
class PerformanceObserverEntryList {
|
229
|
+
/**
|
230
|
+
* Constructor.
|
231
|
+
*/
|
232
|
+
constructor() {
|
233
|
+
throw new TypeError('Illegal constructor');
|
234
|
+
}
|
235
|
+
}
|
219
236
|
/**
|
220
237
|
* Zero Timeout.
|
221
238
|
*/
|
@@ -238,93 +255,95 @@ class Timeout {
|
|
238
255
|
*/
|
239
256
|
export default class BrowserWindow extends EventTarget implements INodeJSGlobal {
|
240
257
|
// Nodes
|
241
|
-
public readonly Node
|
242
|
-
public readonly Attr
|
243
|
-
public readonly SVGSVGElement
|
244
|
-
public readonly SVGElement
|
245
|
-
public readonly SVGGraphicsElement
|
246
|
-
public readonly ShadowRoot
|
247
|
-
public readonly ProcessingInstruction
|
248
|
-
public readonly Element
|
249
|
-
public readonly CharacterData
|
250
|
-
public readonly DocumentType
|
251
|
-
|
252
|
-
|
253
|
-
public readonly
|
254
|
-
public readonly
|
255
|
-
public readonly
|
256
|
-
public readonly
|
257
|
-
public readonly
|
258
|
-
public readonly
|
259
|
-
public readonly
|
258
|
+
public readonly Node = Node;
|
259
|
+
public readonly Attr = Attr;
|
260
|
+
public readonly SVGSVGElement = SVGSVGElement;
|
261
|
+
public readonly SVGElement = SVGElement;
|
262
|
+
public readonly SVGGraphicsElement = SVGGraphicsElement;
|
263
|
+
public readonly ShadowRoot = ShadowRoot;
|
264
|
+
public readonly ProcessingInstruction = ProcessingInstruction;
|
265
|
+
public readonly Element = Element;
|
266
|
+
public readonly CharacterData = CharacterData;
|
267
|
+
public readonly DocumentType = DocumentType;
|
268
|
+
|
269
|
+
// Nodes that can be created using "new" keyword (populated by WindowClassExtender)
|
270
|
+
public declare readonly Document: typeof Document;
|
271
|
+
public declare readonly HTMLDocument: typeof HTMLDocument;
|
272
|
+
public declare readonly XMLDocument: typeof XMLDocument;
|
273
|
+
public declare readonly SVGDocument: typeof SVGDocument;
|
274
|
+
public declare readonly DocumentFragment: typeof DocumentFragment;
|
275
|
+
public declare readonly Text: typeof Text;
|
276
|
+
public declare readonly Comment: typeof Comment;
|
277
|
+
public declare readonly Image: typeof Image;
|
278
|
+
public declare readonly Audio: typeof Audio;
|
260
279
|
|
261
280
|
// Element classes
|
262
|
-
public readonly HTMLAnchorElement
|
263
|
-
public readonly HTMLButtonElement
|
264
|
-
public readonly HTMLOptGroupElement
|
265
|
-
public readonly HTMLOptionElement
|
266
|
-
public readonly HTMLElement
|
267
|
-
public readonly HTMLUnknownElement
|
268
|
-
public readonly HTMLTemplateElement
|
269
|
-
public readonly HTMLInputElement
|
270
|
-
public readonly HTMLSelectElement
|
271
|
-
public readonly HTMLTextAreaElement
|
272
|
-
public readonly HTMLImageElement
|
273
|
-
public readonly HTMLStyleElement
|
274
|
-
public readonly HTMLLabelElement
|
275
|
-
public readonly HTMLSlotElement
|
276
|
-
public readonly HTMLMetaElement
|
277
|
-
public readonly HTMLMediaElement
|
278
|
-
public readonly HTMLAudioElement
|
279
|
-
public readonly HTMLVideoElement
|
280
|
-
public readonly HTMLBaseElement
|
281
|
-
public readonly HTMLDialogElement
|
282
|
-
public readonly HTMLScriptElement
|
283
|
-
public readonly HTMLLinkElement
|
284
|
-
public readonly HTMLIFrameElement
|
285
|
-
public readonly HTMLFormElement
|
286
|
-
public readonly HTMLUListElement
|
287
|
-
public readonly HTMLTrackElement
|
288
|
-
public readonly HTMLTableRowElement
|
289
|
-
public readonly HTMLTitleElement
|
290
|
-
public readonly HTMLTimeElement
|
291
|
-
public readonly HTMLTableSectionElement
|
292
|
-
public readonly HTMLTableCellElement
|
293
|
-
public readonly HTMLTableElement
|
294
|
-
public readonly HTMLSpanElement
|
295
|
-
public readonly HTMLSourceElement
|
296
|
-
public readonly HTMLQuoteElement
|
297
|
-
public readonly HTMLProgressElement
|
298
|
-
public readonly HTMLPreElement
|
299
|
-
public readonly HTMLPictureElement
|
300
|
-
public readonly HTMLParamElement
|
301
|
-
public readonly HTMLParagraphElement
|
302
|
-
public readonly HTMLOutputElement
|
303
|
-
public readonly HTMLOListElement
|
304
|
-
public readonly HTMLObjectElement
|
305
|
-
public readonly HTMLMeterElement
|
306
|
-
public readonly HTMLMenuElement
|
307
|
-
public readonly HTMLMapElement
|
308
|
-
public readonly HTMLLIElement
|
309
|
-
public readonly HTMLLegendElement
|
310
|
-
public readonly HTMLModElement
|
311
|
-
public readonly HTMLHtmlElement
|
312
|
-
public readonly HTMLHRElement
|
313
|
-
public readonly HTMLHeadElement
|
314
|
-
public readonly HTMLHeadingElement
|
315
|
-
public readonly HTMLFieldSetElement
|
316
|
-
public readonly HTMLEmbedElement
|
317
|
-
public readonly HTMLDListElement
|
318
|
-
public readonly HTMLDivElement
|
319
|
-
public readonly HTMLDetailsElement
|
320
|
-
public readonly HTMLDataListElement
|
321
|
-
public readonly HTMLDataElement
|
322
|
-
public readonly HTMLTableColElement
|
323
|
-
public readonly HTMLTableCaptionElement
|
324
|
-
public readonly HTMLCanvasElement
|
325
|
-
public readonly HTMLBRElement
|
326
|
-
public readonly HTMLBodyElement
|
327
|
-
public readonly HTMLAreaElement
|
281
|
+
public readonly HTMLAnchorElement = HTMLAnchorElement;
|
282
|
+
public readonly HTMLButtonElement = HTMLButtonElement;
|
283
|
+
public readonly HTMLOptGroupElement = HTMLOptGroupElement;
|
284
|
+
public readonly HTMLOptionElement = HTMLOptionElement;
|
285
|
+
public readonly HTMLElement = HTMLElement;
|
286
|
+
public readonly HTMLUnknownElement = HTMLUnknownElement;
|
287
|
+
public readonly HTMLTemplateElement = HTMLTemplateElement;
|
288
|
+
public readonly HTMLInputElement = HTMLInputElement;
|
289
|
+
public readonly HTMLSelectElement = HTMLSelectElement;
|
290
|
+
public readonly HTMLTextAreaElement = HTMLTextAreaElement;
|
291
|
+
public readonly HTMLImageElement = HTMLImageElement;
|
292
|
+
public readonly HTMLStyleElement = HTMLStyleElement;
|
293
|
+
public readonly HTMLLabelElement = HTMLLabelElement;
|
294
|
+
public readonly HTMLSlotElement = HTMLSlotElement;
|
295
|
+
public readonly HTMLMetaElement = HTMLMetaElement;
|
296
|
+
public readonly HTMLMediaElement = HTMLMediaElement;
|
297
|
+
public readonly HTMLAudioElement = HTMLAudioElement;
|
298
|
+
public readonly HTMLVideoElement = HTMLVideoElement;
|
299
|
+
public readonly HTMLBaseElement = HTMLBaseElement;
|
300
|
+
public readonly HTMLDialogElement = HTMLDialogElement;
|
301
|
+
public readonly HTMLScriptElement = HTMLScriptElement;
|
302
|
+
public readonly HTMLLinkElement = HTMLLinkElement;
|
303
|
+
public readonly HTMLIFrameElement = HTMLIFrameElement;
|
304
|
+
public readonly HTMLFormElement = HTMLFormElement;
|
305
|
+
public readonly HTMLUListElement = HTMLUListElement;
|
306
|
+
public readonly HTMLTrackElement = HTMLTrackElement;
|
307
|
+
public readonly HTMLTableRowElement = HTMLTableRowElement;
|
308
|
+
public readonly HTMLTitleElement = HTMLTitleElement;
|
309
|
+
public readonly HTMLTimeElement = HTMLTimeElement;
|
310
|
+
public readonly HTMLTableSectionElement = HTMLTableSectionElement;
|
311
|
+
public readonly HTMLTableCellElement = HTMLTableCellElement;
|
312
|
+
public readonly HTMLTableElement = HTMLTableElement;
|
313
|
+
public readonly HTMLSpanElement = HTMLSpanElement;
|
314
|
+
public readonly HTMLSourceElement = HTMLSourceElement;
|
315
|
+
public readonly HTMLQuoteElement = HTMLQuoteElement;
|
316
|
+
public readonly HTMLProgressElement = HTMLProgressElement;
|
317
|
+
public readonly HTMLPreElement = HTMLPreElement;
|
318
|
+
public readonly HTMLPictureElement = HTMLPictureElement;
|
319
|
+
public readonly HTMLParamElement = HTMLParamElement;
|
320
|
+
public readonly HTMLParagraphElement = HTMLParagraphElement;
|
321
|
+
public readonly HTMLOutputElement = HTMLOutputElement;
|
322
|
+
public readonly HTMLOListElement = HTMLOListElement;
|
323
|
+
public readonly HTMLObjectElement = HTMLObjectElement;
|
324
|
+
public readonly HTMLMeterElement = HTMLMeterElement;
|
325
|
+
public readonly HTMLMenuElement = HTMLMenuElement;
|
326
|
+
public readonly HTMLMapElement = HTMLMapElement;
|
327
|
+
public readonly HTMLLIElement = HTMLLIElement;
|
328
|
+
public readonly HTMLLegendElement = HTMLLegendElement;
|
329
|
+
public readonly HTMLModElement = HTMLModElement;
|
330
|
+
public readonly HTMLHtmlElement = HTMLHtmlElement;
|
331
|
+
public readonly HTMLHRElement = HTMLHRElement;
|
332
|
+
public readonly HTMLHeadElement = HTMLHeadElement;
|
333
|
+
public readonly HTMLHeadingElement = HTMLHeadingElement;
|
334
|
+
public readonly HTMLFieldSetElement = HTMLFieldSetElement;
|
335
|
+
public readonly HTMLEmbedElement = HTMLEmbedElement;
|
336
|
+
public readonly HTMLDListElement = HTMLDListElement;
|
337
|
+
public readonly HTMLDivElement = HTMLDivElement;
|
338
|
+
public readonly HTMLDetailsElement = HTMLDetailsElement;
|
339
|
+
public readonly HTMLDataListElement = HTMLDataListElement;
|
340
|
+
public readonly HTMLDataElement = HTMLDataElement;
|
341
|
+
public readonly HTMLTableColElement = HTMLTableColElement;
|
342
|
+
public readonly HTMLTableCaptionElement = HTMLTableCaptionElement;
|
343
|
+
public readonly HTMLCanvasElement = HTMLCanvasElement;
|
344
|
+
public readonly HTMLBRElement = HTMLBRElement;
|
345
|
+
public readonly HTMLBodyElement = HTMLBodyElement;
|
346
|
+
public readonly HTMLAreaElement = HTMLAreaElement;
|
328
347
|
|
329
348
|
// Event classes
|
330
349
|
public readonly Event = Event;
|
@@ -388,39 +407,56 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
388
407
|
public readonly WebGLContextEvent = Event;
|
389
408
|
public readonly TextEvent = Event;
|
390
409
|
|
391
|
-
// Other classes
|
392
|
-
public readonly
|
393
|
-
public readonly
|
394
|
-
public readonly
|
395
|
-
public readonly
|
396
|
-
public readonly
|
410
|
+
// Other classes that has to be bound to the Window context (populated by WindowClassExtender)
|
411
|
+
public declare readonly NodeIterator: typeof NodeIterator;
|
412
|
+
public declare readonly TreeWalker: typeof TreeWalker;
|
413
|
+
public declare readonly MutationObserver: typeof MutationObserver;
|
414
|
+
public declare readonly CSSStyleDeclaration: typeof CSSStyleDeclaration;
|
415
|
+
public declare readonly MessagePort: typeof MessagePort;
|
416
|
+
public declare readonly DataTransfer: typeof DataTransfer;
|
417
|
+
public declare readonly DataTransferItem: typeof DataTransferItem;
|
418
|
+
public declare readonly DataTransferItemList: typeof DataTransferItemList;
|
419
|
+
public declare readonly XMLSerializer: typeof XMLSerializer;
|
420
|
+
public declare readonly CSSStyleSheet: typeof CSSStyleSheet;
|
421
|
+
public declare readonly DOMException: typeof DOMException;
|
422
|
+
public declare readonly CSSUnitValue: typeof CSSUnitValue;
|
423
|
+
public declare readonly Selection: typeof Selection;
|
424
|
+
public declare readonly Headers: typeof Headers;
|
425
|
+
public declare readonly Request: typeof Request;
|
426
|
+
public declare readonly Response: typeof Response;
|
427
|
+
public declare readonly EventTarget: typeof EventTarget;
|
428
|
+
public declare readonly XMLHttpRequestUpload: typeof XMLHttpRequestUpload;
|
429
|
+
public declare readonly XMLHttpRequestEventTarget: typeof XMLHttpRequestEventTarget;
|
430
|
+
public declare readonly AbortController: typeof AbortController;
|
431
|
+
public declare readonly AbortSignal: typeof AbortSignal;
|
432
|
+
public declare readonly FormData: typeof FormData;
|
433
|
+
public declare readonly PermissionStatus: typeof PermissionStatus;
|
434
|
+
public declare readonly ClipboardItem: typeof ClipboardItem;
|
435
|
+
public declare readonly XMLHttpRequest: typeof XMLHttpRequest;
|
436
|
+
public declare readonly DOMParser: typeof DOMParser;
|
437
|
+
public declare readonly Range: typeof Range;
|
438
|
+
public declare readonly VTTCue: typeof VTTCue;
|
439
|
+
public declare readonly FileReader: typeof FileReader;
|
440
|
+
public declare readonly MediaStream: typeof MediaStream;
|
441
|
+
public declare readonly MediaStreamTrack: typeof MediaStreamTrack;
|
442
|
+
public declare readonly CanvasCaptureMediaStreamTrack: typeof CanvasCaptureMediaStreamTrack;
|
443
|
+
public declare readonly NamedNodeMap: typeof NamedNodeMap;
|
444
|
+
public declare readonly TextTrack: typeof TextTrack;
|
445
|
+
public declare readonly TextTrackList: typeof TextTrackList;
|
446
|
+
public declare readonly TextTrackCue: typeof TextTrackCue;
|
447
|
+
public declare readonly RemotePlayback: typeof RemotePlayback;
|
448
|
+
|
449
|
+
// Other classes that don't have to be bound to the Window context
|
450
|
+
public readonly Permissions = Permissions;
|
451
|
+
public readonly History = History;
|
452
|
+
public readonly Navigator = Navigator;
|
453
|
+
public readonly Clipboard = Clipboard;
|
454
|
+
public readonly TimeRanges = TimeRanges;
|
455
|
+
public readonly TextTrackCueList = TextTrackCueList;
|
456
|
+
public readonly ValidityState = ValidityState;
|
457
|
+
public readonly MutationRecord = MutationRecord;
|
397
458
|
public readonly IntersectionObserver = IntersectionObserver;
|
398
459
|
public readonly IntersectionObserverEntry = IntersectionObserverEntry;
|
399
|
-
public readonly MutationRecord = MutationRecord;
|
400
|
-
public readonly CSSStyleDeclaration = CSSStyleDeclaration;
|
401
|
-
public readonly EventTarget = EventTarget;
|
402
|
-
public readonly MessagePort = MessagePort;
|
403
|
-
public readonly DataTransfer = DataTransfer;
|
404
|
-
public readonly DataTransferItem = DataTransferItem;
|
405
|
-
public readonly DataTransferItemList = DataTransferItemList;
|
406
|
-
public readonly URL = URL;
|
407
|
-
public readonly Location = Location;
|
408
|
-
public readonly CustomElementRegistry = CustomElementRegistry;
|
409
|
-
public readonly Window = <typeof BrowserWindow>this.constructor;
|
410
|
-
public readonly XMLSerializer = XMLSerializer;
|
411
|
-
public readonly ResizeObserver = ResizeObserver;
|
412
|
-
public readonly CSSStyleSheet = CSSStyleSheet;
|
413
|
-
public readonly Blob = Blob;
|
414
|
-
public readonly File = File;
|
415
|
-
public readonly DOMException = DOMException;
|
416
|
-
public readonly History = History;
|
417
|
-
public readonly Screen = Screen;
|
418
|
-
public readonly Storage = Storage;
|
419
|
-
public readonly URLSearchParams = URLSearchParams;
|
420
|
-
public readonly HTMLCollection = HTMLCollection;
|
421
|
-
public readonly HTMLFormControlsCollection = HTMLFormControlsCollection;
|
422
|
-
public readonly NodeList = NodeList;
|
423
|
-
public readonly CSSUnitValue = CSSUnitValue;
|
424
460
|
public readonly CSSRule = CSSRule;
|
425
461
|
public readonly CSSContainerRule = CSSContainerRule;
|
426
462
|
public readonly CSSFontFaceRule = CSSFontFaceRule;
|
@@ -429,62 +465,47 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
429
465
|
public readonly CSSMediaRule = CSSMediaRule;
|
430
466
|
public readonly CSSStyleRule = CSSStyleRule;
|
431
467
|
public readonly CSSSupportsRule = CSSSupportsRule;
|
432
|
-
public readonly Selection = Selection;
|
433
|
-
public readonly Navigator = Navigator;
|
434
|
-
public readonly MimeType = MimeType;
|
435
|
-
public readonly MimeTypeArray = MimeTypeArray;
|
436
|
-
public readonly Plugin = Plugin;
|
437
|
-
public readonly PluginArray = PluginArray;
|
438
|
-
public readonly FileList = FileList;
|
439
468
|
public readonly DOMRect = DOMRect;
|
440
469
|
public readonly DOMRectReadOnly = DOMRectReadOnly;
|
470
|
+
public readonly Plugin = Plugin;
|
471
|
+
public readonly PluginArray = PluginArray;
|
472
|
+
public readonly Location = Location;
|
473
|
+
public readonly CustomElementRegistry = CustomElementRegistry;
|
474
|
+
public readonly ResizeObserver = ResizeObserver;
|
475
|
+
public readonly URL = URL;
|
476
|
+
public readonly Blob = Blob;
|
477
|
+
public readonly File = File;
|
478
|
+
public readonly Storage = Storage;
|
479
|
+
public readonly MimeType = MimeType;
|
480
|
+
public readonly MimeTypeArray = MimeTypeArray;
|
481
|
+
public readonly NodeFilter = NodeFilter;
|
482
|
+
public readonly HTMLCollection = HTMLCollection;
|
483
|
+
public readonly HTMLFormControlCollection = HTMLFormControlsCollection;
|
484
|
+
public readonly HTMLOptionsCollection = HTMLOptionsCollection;
|
485
|
+
public readonly NodeList = NodeList;
|
441
486
|
public readonly RadioNodeList = RadioNodeList;
|
442
|
-
public readonly
|
443
|
-
public readonly
|
444
|
-
public readonly
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
json: (data: object, init?: IResponseInit) => ResponseImplementation;
|
449
|
-
new (body?: IResponseBody, init?: IResponseInit): ResponseImplementation;
|
450
|
-
};
|
451
|
-
public readonly XMLHttpRequestUpload = XMLHttpRequestUpload;
|
452
|
-
public readonly XMLHttpRequestEventTarget = XMLHttpRequestEventTarget;
|
453
|
-
public readonly ReadableStream = ReadableStream;
|
487
|
+
public readonly FileList = FileList;
|
488
|
+
public readonly Screen = Screen;
|
489
|
+
public readonly Window = <typeof BrowserWindow>this.constructor;
|
490
|
+
|
491
|
+
// Node.js Classes
|
492
|
+
public readonly URLSearchParams = URLSearchParams;
|
454
493
|
public readonly WritableStream = Stream.Writable;
|
494
|
+
public readonly ReadableStream = ReadableStream;
|
455
495
|
public readonly TransformStream = Stream.Transform;
|
456
|
-
public readonly
|
457
|
-
public readonly
|
458
|
-
public readonly
|
459
|
-
|
460
|
-
|
461
|
-
public readonly Clipboard = Clipboard;
|
462
|
-
public readonly ClipboardItem = ClipboardItem;
|
463
|
-
public readonly XMLHttpRequest: new () => XMLHttpRequestImplementation;
|
464
|
-
public readonly DOMParser: new () => DOMParserImplementation;
|
465
|
-
public readonly Range: new () => RangeImplementation;
|
466
|
-
public readonly VTTCue: new (
|
467
|
-
startTime: number,
|
468
|
-
endTime: number,
|
469
|
-
text: string
|
470
|
-
) => VTTCueImplementation;
|
471
|
-
public readonly TextTrack = TextTrack;
|
472
|
-
public readonly TextTrackCue = TextTrackCue;
|
473
|
-
public readonly TextTrackCueList = TextTrackCueList;
|
474
|
-
public readonly FileReader: new () => FileReaderImplementation;
|
475
|
-
public readonly TimeRanges = TimeRanges;
|
476
|
-
public readonly RemotePlayback = RemotePlayback;
|
477
|
-
public readonly MediaStream = MediaStream;
|
478
|
-
public readonly MediaStreamTrack = MediaStreamTrack;
|
479
|
-
public readonly TextTrackList = TextTrackList;
|
496
|
+
public readonly PerformanceObserver = PerformanceObserver;
|
497
|
+
public readonly PerformanceEntry = PerformanceEntry;
|
498
|
+
public readonly PerformanceObserverEntryList: new () => IPerformanceObserverEntryList = <
|
499
|
+
new () => IPerformanceObserverEntryList
|
500
|
+
>PerformanceObserverEntryList;
|
480
501
|
|
481
502
|
// Events
|
482
503
|
public onload: ((event: Event) => void) | null = null;
|
483
504
|
public onerror: ((event: ErrorEvent) => void) | null = null;
|
484
505
|
|
485
506
|
// Public properties.
|
486
|
-
public readonly document:
|
487
|
-
public readonly customElements: CustomElementRegistry;
|
507
|
+
public readonly document: Document;
|
508
|
+
public readonly customElements: CustomElementRegistry = new CustomElementRegistry(this);
|
488
509
|
public readonly window: BrowserWindow = this;
|
489
510
|
public readonly globalThis: BrowserWindow = this;
|
490
511
|
public readonly performance: typeof performance = performance;
|
@@ -497,7 +518,7 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
497
518
|
public console: Console;
|
498
519
|
public name = '';
|
499
520
|
|
500
|
-
// Node.js Globals
|
521
|
+
// Node.js Globals (populated by VMGlobalPropertyScript)
|
501
522
|
public declare Array: typeof Array;
|
502
523
|
public declare ArrayBuffer: typeof ArrayBuffer;
|
503
524
|
public declare Boolean: typeof Boolean;
|
@@ -562,10 +583,8 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
562
583
|
|
563
584
|
// Used for tracking capture event listeners to improve performance when they are not used.
|
564
585
|
// See EventTarget class.
|
565
|
-
public [PropertySymbol.captureEventListenerCount]: { [eventType: string]: number } = {};
|
566
586
|
public [PropertySymbol.mutationObservers]: MutationObserver[] = [];
|
567
587
|
public readonly [PropertySymbol.readyStateManager] = new DocumentReadyStateManager(this);
|
568
|
-
public [PropertySymbol.asyncTaskManager]: AsyncTaskManager | null = null;
|
569
588
|
public [PropertySymbol.location]: Location;
|
570
589
|
public [PropertySymbol.history]: History;
|
571
590
|
public [PropertySymbol.navigator]: Navigator;
|
@@ -575,6 +594,8 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
575
594
|
public [PropertySymbol.self]: BrowserWindow = this;
|
576
595
|
public [PropertySymbol.top]: BrowserWindow = this;
|
577
596
|
public [PropertySymbol.parent]: BrowserWindow = this;
|
597
|
+
public [PropertySymbol.window]: BrowserWindow = this;
|
598
|
+
public [PropertySymbol.internalId]: number = -1;
|
578
599
|
|
579
600
|
// Private properties
|
580
601
|
#browserFrame: IBrowserFrame;
|
@@ -584,6 +605,7 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
584
605
|
#outerHeight: number | null = null;
|
585
606
|
#devicePixelRatio: number | null = null;
|
586
607
|
#zeroDelayTimeout: { timeouts: Array<Timeout> | null } = { timeouts: null };
|
608
|
+
#timerLoopStacks: string[] = [];
|
587
609
|
|
588
610
|
/**
|
589
611
|
* Constructor.
|
@@ -595,11 +617,9 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
595
617
|
constructor(browserFrame: IBrowserFrame, options?: { url?: string }) {
|
596
618
|
super();
|
597
619
|
|
598
|
-
const asyncTaskManager = browserFrame[PropertySymbol.asyncTaskManager];
|
599
|
-
|
600
620
|
this.#browserFrame = browserFrame;
|
601
621
|
|
602
|
-
this.
|
622
|
+
this.console = browserFrame.page.console;
|
603
623
|
|
604
624
|
this[PropertySymbol.navigator] = new Navigator(this);
|
605
625
|
this[PropertySymbol.screen] = new Screen();
|
@@ -607,143 +627,34 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
607
627
|
this[PropertySymbol.localStorage] = new Storage();
|
608
628
|
this[PropertySymbol.location] = new Location(this.#browserFrame, options?.url ?? 'about:blank');
|
609
629
|
this[PropertySymbol.history] = new History(this.#browserFrame, this);
|
610
|
-
this[PropertySymbol.asyncTaskManager] = asyncTaskManager;
|
611
630
|
|
612
|
-
this
|
613
|
-
|
614
|
-
WindowBrowserSettingsReader.setSettings(this, this.#browserFrame.page.context.browser.settings);
|
615
|
-
|
616
|
-
const window = this;
|
631
|
+
WindowBrowserContext.setWindowBrowserFrameRelation(this, this.#browserFrame);
|
617
632
|
|
618
633
|
this[PropertySymbol.setupVMContext]();
|
619
634
|
|
620
|
-
|
621
|
-
// For classes that need to be bound to the correct context to be instantiable using the "new" keyword.
|
622
|
-
|
623
|
-
/* eslint-disable jsdoc/require-jsdoc */
|
624
|
-
|
625
|
-
class Request extends RequestImplementation {
|
626
|
-
constructor(input: IRequestInfo, init?: IRequestInit) {
|
627
|
-
super({ window, asyncTaskManager }, input, init);
|
628
|
-
}
|
629
|
-
}
|
630
|
-
class Response extends ResponseImplementation {
|
631
|
-
protected static [PropertySymbol.window] = window;
|
632
|
-
constructor(body?: IResponseBody, init?: IResponseInit) {
|
633
|
-
super({ window, browserFrame }, body, init);
|
634
|
-
}
|
635
|
-
}
|
636
|
-
class XMLHttpRequest extends XMLHttpRequestImplementation {
|
637
|
-
constructor() {
|
638
|
-
super({ window, browserFrame });
|
639
|
-
}
|
640
|
-
}
|
641
|
-
class FileReader extends FileReaderImplementation {
|
642
|
-
constructor() {
|
643
|
-
super(window);
|
644
|
-
}
|
645
|
-
}
|
646
|
-
class DOMParser extends DOMParserImplementation {
|
647
|
-
constructor() {
|
648
|
-
super(window);
|
649
|
-
}
|
650
|
-
}
|
651
|
-
class Range extends RangeImplementation {
|
652
|
-
constructor() {
|
653
|
-
super(window);
|
654
|
-
}
|
655
|
-
}
|
656
|
-
class VTTCue extends VTTCueImplementation {
|
657
|
-
constructor(startTime: number, endTime: number, text: string) {
|
658
|
-
super(window, startTime, endTime, text);
|
659
|
-
}
|
660
|
-
}
|
661
|
-
class HTMLScriptElement extends HTMLScriptElementImplementation {
|
662
|
-
constructor() {
|
663
|
-
super(browserFrame);
|
664
|
-
}
|
665
|
-
}
|
666
|
-
class HTMLLinkElement extends HTMLLinkElementImplementation {
|
667
|
-
constructor() {
|
668
|
-
super(browserFrame);
|
669
|
-
}
|
670
|
-
}
|
671
|
-
class HTMLIFrameElement extends HTMLIFrameElementImplementation {
|
672
|
-
constructor() {
|
673
|
-
super(browserFrame);
|
674
|
-
}
|
675
|
-
}
|
676
|
-
class HTMLFormElement extends HTMLFormElementImplementation {
|
677
|
-
constructor() {
|
678
|
-
super(browserFrame);
|
679
|
-
}
|
680
|
-
}
|
681
|
-
class Document extends DocumentImplementation {
|
682
|
-
constructor() {
|
683
|
-
super({ window, browserFrame });
|
684
|
-
}
|
685
|
-
}
|
686
|
-
class HTMLDocument extends HTMLDocumentImplementation {
|
687
|
-
constructor() {
|
688
|
-
super({ window, browserFrame });
|
689
|
-
}
|
690
|
-
}
|
691
|
-
class XMLDocument extends XMLDocumentImplementation {
|
692
|
-
constructor() {
|
693
|
-
super({ window, browserFrame });
|
694
|
-
}
|
695
|
-
}
|
696
|
-
class SVGDocument extends SVGDocumentImplementation {
|
697
|
-
constructor() {
|
698
|
-
super({ window, browserFrame });
|
699
|
-
}
|
700
|
-
}
|
701
|
-
|
702
|
-
class Audio extends AudioImplementation {}
|
703
|
-
class Image extends ImageImplementation {}
|
704
|
-
class DocumentFragment extends DocumentFragmentImplementation {}
|
705
|
-
class Text extends TextImplementation {}
|
706
|
-
class Comment extends CommentImplementation {}
|
707
|
-
|
708
|
-
/* eslint-enable jsdoc/require-jsdoc */
|
709
|
-
|
710
|
-
this.Response = Response;
|
711
|
-
this.Request = Request;
|
712
|
-
this.Image = Image;
|
713
|
-
this.Text = Text;
|
714
|
-
this.Comment = Comment;
|
715
|
-
this.DocumentFragment = DocumentFragment;
|
716
|
-
this.FileReader = FileReader;
|
717
|
-
this.DOMParser = DOMParser;
|
718
|
-
this.VTTCue = VTTCue;
|
719
|
-
this.XMLHttpRequest = XMLHttpRequest;
|
720
|
-
this.Range = Range;
|
721
|
-
this.Audio = Audio;
|
722
|
-
this.HTMLScriptElement = HTMLScriptElement;
|
723
|
-
this.HTMLLinkElement = HTMLLinkElement;
|
724
|
-
this.HTMLIFrameElement = HTMLIFrameElement;
|
725
|
-
this.HTMLFormElement = HTMLFormElement;
|
726
|
-
this.Document = Document;
|
727
|
-
this.HTMLDocument = HTMLDocument;
|
728
|
-
this.XMLDocument = XMLDocument;
|
729
|
-
this.SVGDocument = SVGDocument;
|
635
|
+
WindowClassExtender.extendClass(this);
|
730
636
|
|
731
637
|
// Document
|
732
|
-
this.document = new HTMLDocument();
|
638
|
+
this.document = new this.HTMLDocument();
|
733
639
|
this.document[PropertySymbol.defaultView] = this;
|
734
640
|
|
735
|
-
// Override owner document
|
736
|
-
this.Audio[PropertySymbol.ownerDocument] = this.document;
|
737
|
-
this.Image[PropertySymbol.ownerDocument] = this.document;
|
738
|
-
this.DocumentFragment[PropertySymbol.ownerDocument] = this.document;
|
739
|
-
this.Text[PropertySymbol.ownerDocument] = this.document;
|
740
|
-
this.Comment[PropertySymbol.ownerDocument] = this.document;
|
741
|
-
|
742
641
|
// Ready state manager
|
743
642
|
this[PropertySymbol.readyStateManager].waitUntilComplete().then(() => {
|
744
643
|
this.document[PropertySymbol.readyState] = DocumentReadyStateEnum.complete;
|
745
644
|
this.document.dispatchEvent(new Event('readystatechange'));
|
746
|
-
|
645
|
+
|
646
|
+
// Not sure why target is set to document here, but this is how it works in the browser
|
647
|
+
const loadEvent = new Event('load');
|
648
|
+
|
649
|
+
loadEvent[PropertySymbol.currentTarget] = this.document;
|
650
|
+
loadEvent[PropertySymbol.target] = this.document;
|
651
|
+
loadEvent[PropertySymbol.eventPhase] = EventPhaseEnum.atTarget;
|
652
|
+
|
653
|
+
this.dispatchEvent(loadEvent);
|
654
|
+
|
655
|
+
loadEvent[PropertySymbol.target] = null;
|
656
|
+
loadEvent[PropertySymbol.currentTarget] = null;
|
657
|
+
loadEvent[PropertySymbol.eventPhase] = EventPhaseEnum.none;
|
747
658
|
});
|
748
659
|
|
749
660
|
ClassMethodBinder.bindMethods(this, [EventTarget, BrowserWindow]);
|
@@ -1125,7 +1036,7 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
1125
1036
|
* @returns A new MediaQueryList.
|
1126
1037
|
*/
|
1127
1038
|
public matchMedia(mediaQueryString: string): MediaQueryList {
|
1128
|
-
return new MediaQueryList({
|
1039
|
+
return new MediaQueryList({ window: this, media: mediaQueryString });
|
1129
1040
|
}
|
1130
1041
|
|
1131
1042
|
/**
|
@@ -1137,6 +1048,21 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
1137
1048
|
* @returns Timeout ID.
|
1138
1049
|
*/
|
1139
1050
|
public setTimeout(callback: Function, delay = 0, ...args: unknown[]): NodeJS.Timeout {
|
1051
|
+
if (this.closed) {
|
1052
|
+
return;
|
1053
|
+
}
|
1054
|
+
|
1055
|
+
const settings = this.#browserFrame.page?.context?.browser?.settings;
|
1056
|
+
|
1057
|
+
if (settings.timer.preventTimerLoops) {
|
1058
|
+
const stack = new Error().stack;
|
1059
|
+
const timerLoopStacks = this.#timerLoopStacks;
|
1060
|
+
if (timerLoopStacks.includes(stack)) {
|
1061
|
+
return;
|
1062
|
+
}
|
1063
|
+
timerLoopStacks.push(stack);
|
1064
|
+
}
|
1065
|
+
|
1140
1066
|
// We can group timeouts with a delay of 0 into one timeout to improve performance.
|
1141
1067
|
// Grouping timeouts will also improve the performance of the async task manager.
|
1142
1068
|
// It also makes the async task manager more stable as many timeouts may cause waitUntilComplete() to be resolved too early.
|
@@ -1144,13 +1070,14 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
1144
1070
|
const zeroDelayTimeout = this.#zeroDelayTimeout;
|
1145
1071
|
|
1146
1072
|
if (!zeroDelayTimeout.timeouts) {
|
1147
|
-
const settings = this.#browserFrame.page?.context?.browser?.settings;
|
1148
1073
|
const useTryCatch =
|
1149
1074
|
!settings ||
|
1150
1075
|
(!settings.disableErrorCapturing &&
|
1151
1076
|
settings.errorCapture === BrowserErrorCaptureEnum.tryAndCatch);
|
1152
1077
|
|
1153
1078
|
const id = TIMER.setTimeout(() => {
|
1079
|
+
// We need to call endTimer() before the callback as the callback might throw an error.
|
1080
|
+
this.#browserFrame[PropertySymbol.asyncTaskManager].endTimer(id);
|
1154
1081
|
const timeouts = zeroDelayTimeout.timeouts;
|
1155
1082
|
zeroDelayTimeout.timeouts = null;
|
1156
1083
|
for (const timeout of timeouts) {
|
@@ -1160,7 +1087,6 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
1160
1087
|
timeout.callback();
|
1161
1088
|
}
|
1162
1089
|
}
|
1163
|
-
this.#browserFrame[PropertySymbol.asyncTaskManager].endTimer(id);
|
1164
1090
|
});
|
1165
1091
|
|
1166
1092
|
zeroDelayTimeout.timeouts = [];
|
@@ -1174,7 +1100,6 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
1174
1100
|
return <NodeJS.Timeout>(<unknown>timeout);
|
1175
1101
|
}
|
1176
1102
|
|
1177
|
-
const settings = this.#browserFrame.page?.context?.browser?.settings;
|
1178
1103
|
const useTryCatch =
|
1179
1104
|
!settings ||
|
1180
1105
|
(!settings.disableErrorCapturing &&
|
@@ -1182,12 +1107,13 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
1182
1107
|
|
1183
1108
|
const id = TIMER.setTimeout(
|
1184
1109
|
() => {
|
1110
|
+
// We need to call endTimer() before the callback as the callback might throw an error.
|
1111
|
+
this.#browserFrame[PropertySymbol.asyncTaskManager].endTimer(id);
|
1185
1112
|
if (useTryCatch) {
|
1186
1113
|
WindowErrorUtility.captureError(this, () => callback(...args));
|
1187
1114
|
} else {
|
1188
1115
|
callback(...args);
|
1189
1116
|
}
|
1190
|
-
this.#browserFrame[PropertySymbol.asyncTaskManager].endTimer(id);
|
1191
1117
|
},
|
1192
1118
|
settings?.timer.maxTimeout !== -1 && delay && delay > settings?.timer.maxTimeout
|
1193
1119
|
? settings?.timer.maxTimeout
|
@@ -1232,6 +1158,9 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
1232
1158
|
* @returns Interval ID.
|
1233
1159
|
*/
|
1234
1160
|
public setInterval(callback: Function, delay = 0, ...args: unknown[]): NodeJS.Timeout {
|
1161
|
+
if (this.closed) {
|
1162
|
+
return;
|
1163
|
+
}
|
1235
1164
|
const settings = this.#browserFrame.page?.context?.browser?.settings;
|
1236
1165
|
const useTryCatch =
|
1237
1166
|
!settings ||
|
@@ -1286,18 +1215,32 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
1286
1215
|
* @returns ID.
|
1287
1216
|
*/
|
1288
1217
|
public requestAnimationFrame(callback: (timestamp: number) => void): NodeJS.Immediate {
|
1218
|
+
if (this.closed) {
|
1219
|
+
return;
|
1220
|
+
}
|
1289
1221
|
const settings = this.#browserFrame.page?.context?.browser?.settings;
|
1222
|
+
|
1223
|
+
if (settings.timer.preventTimerLoops) {
|
1224
|
+
const stack = new Error().stack;
|
1225
|
+
const timerLoopStacks = this.#timerLoopStacks;
|
1226
|
+
if (timerLoopStacks.includes(stack)) {
|
1227
|
+
return;
|
1228
|
+
}
|
1229
|
+
timerLoopStacks.push(stack);
|
1230
|
+
}
|
1231
|
+
|
1290
1232
|
const useTryCatch =
|
1291
1233
|
!settings ||
|
1292
1234
|
(!settings.disableErrorCapturing &&
|
1293
1235
|
settings.errorCapture === BrowserErrorCaptureEnum.tryAndCatch);
|
1294
1236
|
const id = TIMER.setImmediate(() => {
|
1237
|
+
// We need to call endImmediate() before the callback as the callback might throw an error.
|
1238
|
+
this.#browserFrame[PropertySymbol.asyncTaskManager].endImmediate(id);
|
1295
1239
|
if (useTryCatch) {
|
1296
1240
|
WindowErrorUtility.captureError(this, () => callback(this.performance.now()));
|
1297
1241
|
} else {
|
1298
1242
|
callback(this.performance.now());
|
1299
1243
|
}
|
1300
|
-
this.#browserFrame[PropertySymbol.asyncTaskManager].endImmediate(id);
|
1301
1244
|
});
|
1302
1245
|
this.#browserFrame[PropertySymbol.asyncTaskManager].startImmediate(id);
|
1303
1246
|
return id;
|
@@ -1324,6 +1267,9 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
1324
1267
|
* @param callback Function to be executed.
|
1325
1268
|
*/
|
1326
1269
|
public queueMicrotask(callback: Function): void {
|
1270
|
+
if (this.closed) {
|
1271
|
+
return;
|
1272
|
+
}
|
1327
1273
|
let isAborted = false;
|
1328
1274
|
const taskId = this.#browserFrame[PropertySymbol.asyncTaskManager].startTask(
|
1329
1275
|
() => (isAborted = true)
|
@@ -1335,12 +1281,13 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
1335
1281
|
settings.errorCapture === BrowserErrorCaptureEnum.tryAndCatch);
|
1336
1282
|
TIMER.queueMicrotask(() => {
|
1337
1283
|
if (!isAborted) {
|
1284
|
+
// We need to call endTask() before the callback as the callback might throw an error.
|
1285
|
+
this.#browserFrame[PropertySymbol.asyncTaskManager].endTask(taskId);
|
1338
1286
|
if (useTryCatch) {
|
1339
1287
|
WindowErrorUtility.captureError(this, <() => unknown>callback);
|
1340
1288
|
} else {
|
1341
1289
|
callback();
|
1342
1290
|
}
|
1343
|
-
this.#browserFrame[PropertySymbol.asyncTaskManager].endTask(taskId);
|
1344
1291
|
}
|
1345
1292
|
});
|
1346
1293
|
}
|
@@ -1353,6 +1300,14 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
1353
1300
|
* @returns Promise.
|
1354
1301
|
*/
|
1355
1302
|
public async fetch(url: IRequestInfo, init?: IRequestInit): Promise<Response> {
|
1303
|
+
if (this.closed) {
|
1304
|
+
return Promise.reject(
|
1305
|
+
new this.DOMException(
|
1306
|
+
"Failed to execute 'fetch' on 'Window': The window is closed.",
|
1307
|
+
DOMExceptionNameEnum.invalidStateError
|
1308
|
+
)
|
1309
|
+
);
|
1310
|
+
}
|
1356
1311
|
return await new Fetch({
|
1357
1312
|
browserFrame: this.#browserFrame,
|
1358
1313
|
window: this,
|
@@ -1395,8 +1350,12 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
1395
1350
|
public postMessage(message: unknown, targetOrigin = '*', _transfer?: unknown[]): void {
|
1396
1351
|
// TODO: Implement transfer.
|
1397
1352
|
|
1353
|
+
if (this.closed) {
|
1354
|
+
return;
|
1355
|
+
}
|
1356
|
+
|
1398
1357
|
if (targetOrigin && targetOrigin !== '*' && this.location.origin !== targetOrigin) {
|
1399
|
-
throw new DOMException(
|
1358
|
+
throw new this.DOMException(
|
1400
1359
|
`Failed to execute 'postMessage' on 'Window': The target origin provided ('${targetOrigin}') does not match the recipient window\'s origin ('${this.location.origin}').`,
|
1401
1360
|
DOMExceptionNameEnum.securityError
|
1402
1361
|
);
|
@@ -1405,7 +1364,7 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
1405
1364
|
try {
|
1406
1365
|
JSON.stringify(message);
|
1407
1366
|
} catch (error) {
|
1408
|
-
throw new DOMException(
|
1367
|
+
throw new this.DOMException(
|
1409
1368
|
`Failed to execute 'postMessage' on 'Window': The provided message cannot be serialized.`,
|
1410
1369
|
DOMExceptionNameEnum.invalidStateError
|
1411
1370
|
);
|
@@ -1434,8 +1393,12 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
1434
1393
|
* @param height Height.
|
1435
1394
|
*/
|
1436
1395
|
public resizeTo(width: number, height: number): void {
|
1396
|
+
if (this.closed) {
|
1397
|
+
return;
|
1398
|
+
}
|
1399
|
+
|
1437
1400
|
if (!width || !height) {
|
1438
|
-
throw new DOMException(
|
1401
|
+
throw new this.DOMException(
|
1439
1402
|
`Failed to execute 'resizeTo' on 'Window': 2 arguments required, but only ${arguments.length} present.`
|
1440
1403
|
);
|
1441
1404
|
}
|
@@ -1453,8 +1416,12 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
1453
1416
|
* @param height Height.
|
1454
1417
|
*/
|
1455
1418
|
public resizeBy(width: number, height: number): void {
|
1419
|
+
if (this.closed) {
|
1420
|
+
return;
|
1421
|
+
}
|
1422
|
+
|
1456
1423
|
if (!width || !height) {
|
1457
|
-
throw new DOMException(
|
1424
|
+
throw new this.DOMException(
|
1458
1425
|
`Failed to execute 'resizeBy' on 'Window': 2 arguments required, but only ${arguments.length} present.`
|
1459
1426
|
);
|
1460
1427
|
}
|
@@ -1502,12 +1469,6 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
1502
1469
|
this[PropertySymbol.asyncTaskManager] = null;
|
1503
1470
|
this[PropertySymbol.mutationObservers] = [];
|
1504
1471
|
|
1505
|
-
this.Audio[PropertySymbol.ownerDocument] = null;
|
1506
|
-
this.Image[PropertySymbol.ownerDocument] = null;
|
1507
|
-
this.DocumentFragment[PropertySymbol.ownerDocument] = null;
|
1508
|
-
this.Text[PropertySymbol.ownerDocument] = null;
|
1509
|
-
this.Comment[PropertySymbol.ownerDocument] = null;
|
1510
|
-
|
1511
1472
|
// Disconnects nodes from the document, so that they can be garbage collected.
|
1512
1473
|
const childNodes = this.document[PropertySymbol.nodeArray];
|
1513
1474
|
|
@@ -1519,6 +1480,18 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
1519
1480
|
this.document.removeChild(childNodes[0]);
|
1520
1481
|
}
|
1521
1482
|
|
1483
|
+
// Create some empty elements for scripts that are still running.
|
1484
|
+
const htmlElement = this.document.createElement('html');
|
1485
|
+
const headElement = this.document.createElement('head');
|
1486
|
+
const bodyElement = this.document.createElement('body');
|
1487
|
+
htmlElement.appendChild(headElement);
|
1488
|
+
htmlElement.appendChild(bodyElement);
|
1489
|
+
this.document.appendChild(htmlElement);
|
1490
|
+
|
1491
|
+
if (this.location[PropertySymbol.destroy]) {
|
1492
|
+
this.location[PropertySymbol.destroy]();
|
1493
|
+
}
|
1494
|
+
|
1522
1495
|
if (this.customElements[PropertySymbol.destroy]) {
|
1523
1496
|
this.customElements[PropertySymbol.destroy]();
|
1524
1497
|
}
|
@@ -1532,6 +1505,6 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
1532
1505
|
this.document[PropertySymbol.currentScript] = null;
|
1533
1506
|
this.document[PropertySymbol.selection] = null;
|
1534
1507
|
|
1535
|
-
|
1508
|
+
WindowBrowserContext.removeWindowBrowserFrameRelation(this);
|
1536
1509
|
}
|
1537
1510
|
}
|