happy-dom 15.0.0 → 15.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of happy-dom might be problematic. Click here for more details.
- 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 +48 -4
- package/cjs/fetch/AbortSignal.cjs.map +1 -1
- package/cjs/fetch/AbortSignal.d.ts +19 -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 +19 -0
- package/lib/fetch/AbortSignal.d.ts.map +1 -1
- package/lib/fetch/AbortSignal.js +48 -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 +69 -4
- package/src/fetch/Fetch.ts +39 -15
- 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 +15 -13
- 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
@@ -9,11 +9,8 @@ import * as PropertySymbol from '../PropertySymbol.js';
|
|
9
9
|
import Base64 from '../base64/Base64.js';
|
10
10
|
import BrowserErrorCaptureEnum from '../browser/enums/BrowserErrorCaptureEnum.js';
|
11
11
|
import Clipboard from '../clipboard/Clipboard.js';
|
12
|
-
import ClipboardItem from '../clipboard/ClipboardItem.js';
|
13
12
|
import CSS from '../css/CSS.js';
|
14
13
|
import CSSRule from '../css/CSSRule.js';
|
15
|
-
import CSSStyleSheet from '../css/CSSStyleSheet.js';
|
16
|
-
import CSSUnitValue from '../css/CSSUnitValue.js';
|
17
14
|
import CSSStyleDeclaration from '../css/declaration/CSSStyleDeclaration.js';
|
18
15
|
import CSSContainerRule from '../css/rules/CSSContainerRule.js';
|
19
16
|
import CSSFontFaceRule from '../css/rules/CSSFontFaceRule.js';
|
@@ -23,13 +20,8 @@ import CSSMediaRule from '../css/rules/CSSMediaRule.js';
|
|
23
20
|
import CSSStyleRule from '../css/rules/CSSStyleRule.js';
|
24
21
|
import CSSSupportsRule from '../css/rules/CSSSupportsRule.js';
|
25
22
|
import CustomElementRegistry from '../custom-element/CustomElementRegistry.js';
|
26
|
-
import DOMParserImplementation from '../dom-parser/DOMParser.js';
|
27
|
-
import DataTransfer from '../event/DataTransfer.js';
|
28
|
-
import DataTransferItem from '../event/DataTransferItem.js';
|
29
|
-
import DataTransferItemList from '../event/DataTransferItemList.js';
|
30
23
|
import Event from '../event/Event.js';
|
31
24
|
import EventTarget from '../event/EventTarget.js';
|
32
|
-
import MessagePort from '../event/MessagePort.js';
|
33
25
|
import Touch from '../event/Touch.js';
|
34
26
|
import UIEvent from '../event/UIEvent.js';
|
35
27
|
import AnimationEvent from '../event/events/AnimationEvent.js';
|
@@ -49,24 +41,15 @@ import StorageEvent from '../event/events/StorageEvent.js';
|
|
49
41
|
import SubmitEvent from '../event/events/SubmitEvent.js';
|
50
42
|
import TouchEvent from '../event/events/TouchEvent.js';
|
51
43
|
import WheelEvent from '../event/events/WheelEvent.js';
|
52
|
-
import DOMException from '../exception/DOMException.js';
|
53
44
|
import DOMExceptionNameEnum from '../exception/DOMExceptionNameEnum.js';
|
54
|
-
import AbortController from '../fetch/AbortController.js';
|
55
|
-
import AbortSignal from '../fetch/AbortSignal.js';
|
56
45
|
import Fetch from '../fetch/Fetch.js';
|
57
|
-
import Headers from '../fetch/Headers.js';
|
58
|
-
import RequestImplementation from '../fetch/Request.js';
|
59
|
-
import { default as ResponseImplementation } from '../fetch/Response.js';
|
60
46
|
import Blob from '../file/Blob.js';
|
61
47
|
import File from '../file/File.js';
|
62
|
-
import FileReaderImplementation from '../file/FileReader.js';
|
63
|
-
import FormData from '../form-data/FormData.js';
|
64
48
|
import History from '../history/History.js';
|
65
49
|
import IntersectionObserver from '../intersection-observer/IntersectionObserver.js';
|
66
50
|
import IntersectionObserverEntry from '../intersection-observer/IntersectionObserverEntry.js';
|
67
51
|
import Location from '../location/Location.js';
|
68
52
|
import MediaQueryList from '../match-media/MediaQueryList.js';
|
69
|
-
import MutationObserver from '../mutation-observer/MutationObserver.js';
|
70
53
|
import MutationRecord from '../mutation-observer/MutationRecord.js';
|
71
54
|
import MimeType from '../navigator/MimeType.js';
|
72
55
|
import MimeTypeArray from '../navigator/MimeTypeArray.js';
|
@@ -75,20 +58,15 @@ import Plugin from '../navigator/Plugin.js';
|
|
75
58
|
import PluginArray from '../navigator/PluginArray.js';
|
76
59
|
import Attr from '../nodes/attr/Attr.js';
|
77
60
|
import CharacterData from '../nodes/character-data/CharacterData.js';
|
78
|
-
import CommentImplementation from '../nodes/comment/Comment.js';
|
79
|
-
import DocumentFragmentImplementation from '../nodes/document-fragment/DocumentFragment.js';
|
80
61
|
import DocumentType from '../nodes/document-type/DocumentType.js';
|
81
|
-
import DocumentImplementation from '../nodes/document/Document.js';
|
82
62
|
import DocumentReadyStateEnum from '../nodes/document/DocumentReadyStateEnum.js';
|
83
63
|
import DocumentReadyStateManager from '../nodes/document/DocumentReadyStateManager.js';
|
84
64
|
import DOMRect from '../nodes/element/DOMRect.js';
|
85
65
|
import DOMRectReadOnly from '../nodes/element/DOMRectReadOnly.js';
|
86
66
|
import Element from '../nodes/element/Element.js';
|
87
67
|
import HTMLCollection from '../nodes/element/HTMLCollection.js';
|
88
|
-
import NamedNodeMap from '../nodes/element/NamedNodeMap.js';
|
89
68
|
import HTMLAnchorElement from '../nodes/html-anchor-element/HTMLAnchorElement.js';
|
90
69
|
import HTMLAreaElement from '../nodes/html-area-element/HTMLAreaElement.js';
|
91
|
-
import AudioImplementation from '../nodes/html-audio-element/Audio.js';
|
92
70
|
import HTMLAudioElement from '../nodes/html-audio-element/HTMLAudioElement.js';
|
93
71
|
import HTMLBaseElement from '../nodes/html-base-element/HTMLBaseElement.js';
|
94
72
|
import HTMLBodyElement from '../nodes/html-body-element/HTMLBodyElement.js';
|
@@ -101,37 +79,28 @@ import HTMLDataListElement from '../nodes/html-data-list-element/HTMLDataListEle
|
|
101
79
|
import HTMLDetailsElement from '../nodes/html-details-element/HTMLDetailsElement.js';
|
102
80
|
import HTMLDialogElement from '../nodes/html-dialog-element/HTMLDialogElement.js';
|
103
81
|
import HTMLDivElement from '../nodes/html-div-element/HTMLDivElement.js';
|
104
|
-
import HTMLDocumentImplementation from '../nodes/html-document/HTMLDocument.js';
|
105
82
|
import HTMLElement from '../nodes/html-element/HTMLElement.js';
|
106
83
|
import HTMLEmbedElement from '../nodes/html-embed-element/HTMLEmbedElement.js';
|
107
84
|
import HTMLFieldSetElement from '../nodes/html-field-set-element/HTMLFieldSetElement.js';
|
108
85
|
import HTMLFormControlsCollection from '../nodes/html-form-element/HTMLFormControlsCollection.js';
|
109
|
-
import
|
86
|
+
import HTMLFormElement from '../nodes/html-form-element/HTMLFormElement.js';
|
110
87
|
import RadioNodeList from '../nodes/html-form-element/RadioNodeList.js';
|
111
88
|
import HTMLHeadElement from '../nodes/html-head-element/HTMLHeadElement.js';
|
112
89
|
import HTMLHeadingElement from '../nodes/html-heading-element/HTMLHeadingElement.js';
|
113
90
|
import HTMLHRElement from '../nodes/html-hr-element/HTMLHRElement.js';
|
114
91
|
import HTMLHtmlElement from '../nodes/html-html-element/HTMLHtmlElement.js';
|
115
|
-
import
|
92
|
+
import HTMLIFrameElement from '../nodes/html-iframe-element/HTMLIFrameElement.js';
|
116
93
|
import HTMLImageElement from '../nodes/html-image-element/HTMLImageElement.js';
|
117
|
-
import ImageImplementation from '../nodes/html-image-element/Image.js';
|
118
94
|
import FileList from '../nodes/html-input-element/FileList.js';
|
119
95
|
import HTMLInputElement from '../nodes/html-input-element/HTMLInputElement.js';
|
120
96
|
import HTMLLabelElement from '../nodes/html-label-element/HTMLLabelElement.js';
|
121
97
|
import HTMLLegendElement from '../nodes/html-legend-element/HTMLLegendElement.js';
|
122
98
|
import HTMLLIElement from '../nodes/html-li-element/HTMLLIElement.js';
|
123
|
-
import
|
99
|
+
import HTMLLinkElement from '../nodes/html-link-element/HTMLLinkElement.js';
|
124
100
|
import HTMLMapElement from '../nodes/html-map-element/HTMLMapElement.js';
|
125
101
|
import HTMLMediaElement from '../nodes/html-media-element/HTMLMediaElement.js';
|
126
|
-
import MediaStream from '../nodes/html-media-element/MediaStream.js';
|
127
|
-
import MediaStreamTrack from '../nodes/html-media-element/MediaStreamTrack.js';
|
128
|
-
import RemotePlayback from '../nodes/html-media-element/RemotePlayback.js';
|
129
|
-
import TextTrack from '../nodes/html-media-element/TextTrack.js';
|
130
|
-
import TextTrackCue from '../nodes/html-media-element/TextTrackCue.js';
|
131
102
|
import TextTrackCueList from '../nodes/html-media-element/TextTrackCueList.js';
|
132
|
-
import TextTrackList from '../nodes/html-media-element/TextTrackList.js';
|
133
103
|
import TimeRanges from '../nodes/html-media-element/TimeRanges.js';
|
134
|
-
import VTTCueImplementation from '../nodes/html-media-element/VTTCue.js';
|
135
104
|
import HTMLMenuElement from '../nodes/html-menu-element/HTMLMenuElement.js';
|
136
105
|
import HTMLMetaElement from '../nodes/html-meta-element/HTMLMetaElement.js';
|
137
106
|
import HTMLMeterElement from '../nodes/html-meter-element/HTMLMeterElement.js';
|
@@ -147,7 +116,7 @@ import HTMLPictureElement from '../nodes/html-picture-element/HTMLPictureElement
|
|
147
116
|
import HTMLPreElement from '../nodes/html-pre-element/HTMLPreElement.js';
|
148
117
|
import HTMLProgressElement from '../nodes/html-progress-element/HTMLProgressElement.js';
|
149
118
|
import HTMLQuoteElement from '../nodes/html-quote-element/HTMLQuoteElement.js';
|
150
|
-
import
|
119
|
+
import HTMLScriptElement from '../nodes/html-script-element/HTMLScriptElement.js';
|
151
120
|
import HTMLSelectElement from '../nodes/html-select-element/HTMLSelectElement.js';
|
152
121
|
import HTMLSlotElement from '../nodes/html-slot-element/HTMLSlotElement.js';
|
153
122
|
import HTMLSourceElement from '../nodes/html-source-element/HTMLSourceElement.js';
|
@@ -171,32 +140,24 @@ import Node from '../nodes/node/Node.js';
|
|
171
140
|
import NodeList from '../nodes/node/NodeList.js';
|
172
141
|
import ProcessingInstruction from '../nodes/processing-instruction/ProcessingInstruction.js';
|
173
142
|
import ShadowRoot from '../nodes/shadow-root/ShadowRoot.js';
|
174
|
-
import SVGDocumentImplementation from '../nodes/svg-document/SVGDocument.js';
|
175
143
|
import SVGElement from '../nodes/svg-element/SVGElement.js';
|
176
144
|
import SVGGraphicsElement from '../nodes/svg-element/SVGGraphicsElement.js';
|
177
145
|
import SVGSVGElement from '../nodes/svg-element/SVGSVGElement.js';
|
178
|
-
import TextImplementation from '../nodes/text/Text.js';
|
179
|
-
import XMLDocumentImplementation from '../nodes/xml-document/XMLDocument.js';
|
180
|
-
import PermissionStatus from '../permissions/PermissionStatus.js';
|
181
146
|
import Permissions from '../permissions/Permissions.js';
|
182
|
-
import RangeImplementation from '../range/Range.js';
|
183
147
|
import ResizeObserver from '../resize-observer/ResizeObserver.js';
|
184
148
|
import Screen from '../screen/Screen.js';
|
185
|
-
import Selection from '../selection/Selection.js';
|
186
149
|
import Storage from '../storage/Storage.js';
|
187
150
|
import NodeFilter from '../tree-walker/NodeFilter.js';
|
188
|
-
import NodeIterator from '../tree-walker/NodeIterator.js';
|
189
|
-
import TreeWalker from '../tree-walker/TreeWalker.js';
|
190
151
|
import URL from '../url/URL.js';
|
191
152
|
import ValidityState from '../validity-state/ValidityState.js';
|
192
|
-
import XMLHttpRequestImplementation from '../xml-http-request/XMLHttpRequest.js';
|
193
|
-
import XMLHttpRequestEventTarget from '../xml-http-request/XMLHttpRequestEventTarget.js';
|
194
|
-
import XMLHttpRequestUpload from '../xml-http-request/XMLHttpRequestUpload.js';
|
195
|
-
import XMLSerializer from '../xml-serializer/XMLSerializer.js';
|
196
153
|
import VMGlobalPropertyScript from './VMGlobalPropertyScript.js';
|
197
|
-
import WindowBrowserSettingsReader from './WindowBrowserSettingsReader.js';
|
198
154
|
import WindowErrorUtility from './WindowErrorUtility.js';
|
199
155
|
import WindowPageOpenUtility from './WindowPageOpenUtility.js';
|
156
|
+
import { PerformanceObserver, PerformanceEntry } from 'node:perf_hooks';
|
157
|
+
import EventPhaseEnum from '../event/EventPhaseEnum.js';
|
158
|
+
import HTMLOptionsCollection from '../nodes/html-select-element/HTMLOptionsCollection.js';
|
159
|
+
import WindowClassExtender from './WindowClassExtender.js';
|
160
|
+
import WindowBrowserContext from './WindowBrowserContext.js';
|
200
161
|
const TIMER = {
|
201
162
|
setTimeout: globalThis.setTimeout.bind(globalThis),
|
202
163
|
clearTimeout: globalThis.clearTimeout.bind(globalThis),
|
@@ -207,6 +168,17 @@ const TIMER = {
|
|
207
168
|
clearImmediate: globalThis.clearImmediate.bind(globalThis)
|
208
169
|
};
|
209
170
|
const IS_NODE_JS_TIMEOUT_ENVIRONMENT = setTimeout.toString().includes('new Timeout');
|
171
|
+
/**
|
172
|
+
* Class for PerformanceObserverEntryList as it is only available as an interface from Node.js.
|
173
|
+
*/
|
174
|
+
class PerformanceObserverEntryList {
|
175
|
+
/**
|
176
|
+
* Constructor.
|
177
|
+
*/
|
178
|
+
constructor() {
|
179
|
+
throw new TypeError('Illegal constructor');
|
180
|
+
}
|
181
|
+
}
|
210
182
|
/**
|
211
183
|
* Zero Timeout.
|
212
184
|
*/
|
@@ -238,15 +210,6 @@ export default class BrowserWindow extends EventTarget {
|
|
238
210
|
Element = Element;
|
239
211
|
CharacterData = CharacterData;
|
240
212
|
DocumentType = DocumentType;
|
241
|
-
Document;
|
242
|
-
HTMLDocument;
|
243
|
-
XMLDocument;
|
244
|
-
SVGDocument;
|
245
|
-
Text;
|
246
|
-
Comment;
|
247
|
-
Image;
|
248
|
-
DocumentFragment;
|
249
|
-
Audio;
|
250
213
|
// Element classes
|
251
214
|
HTMLAnchorElement = HTMLAnchorElement;
|
252
215
|
HTMLButtonElement = HTMLButtonElement;
|
@@ -268,10 +231,10 @@ export default class BrowserWindow extends EventTarget {
|
|
268
231
|
HTMLVideoElement = HTMLVideoElement;
|
269
232
|
HTMLBaseElement = HTMLBaseElement;
|
270
233
|
HTMLDialogElement = HTMLDialogElement;
|
271
|
-
HTMLScriptElement;
|
272
|
-
HTMLLinkElement;
|
273
|
-
HTMLIFrameElement;
|
274
|
-
HTMLFormElement;
|
234
|
+
HTMLScriptElement = HTMLScriptElement;
|
235
|
+
HTMLLinkElement = HTMLLinkElement;
|
236
|
+
HTMLIFrameElement = HTMLIFrameElement;
|
237
|
+
HTMLFormElement = HTMLFormElement;
|
275
238
|
HTMLUListElement = HTMLUListElement;
|
276
239
|
HTMLTrackElement = HTMLTrackElement;
|
277
240
|
HTMLTableRowElement = HTMLTableRowElement;
|
@@ -374,39 +337,17 @@ export default class BrowserWindow extends EventTarget {
|
|
374
337
|
UserProximityEvent = Event;
|
375
338
|
WebGLContextEvent = Event;
|
376
339
|
TextEvent = Event;
|
377
|
-
// Other classes
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
340
|
+
// Other classes that don't have to be bound to the Window context
|
341
|
+
Permissions = Permissions;
|
342
|
+
History = History;
|
343
|
+
Navigator = Navigator;
|
344
|
+
Clipboard = Clipboard;
|
345
|
+
TimeRanges = TimeRanges;
|
346
|
+
TextTrackCueList = TextTrackCueList;
|
347
|
+
ValidityState = ValidityState;
|
348
|
+
MutationRecord = MutationRecord;
|
383
349
|
IntersectionObserver = IntersectionObserver;
|
384
350
|
IntersectionObserverEntry = IntersectionObserverEntry;
|
385
|
-
MutationRecord = MutationRecord;
|
386
|
-
CSSStyleDeclaration = CSSStyleDeclaration;
|
387
|
-
EventTarget = EventTarget;
|
388
|
-
MessagePort = MessagePort;
|
389
|
-
DataTransfer = DataTransfer;
|
390
|
-
DataTransferItem = DataTransferItem;
|
391
|
-
DataTransferItemList = DataTransferItemList;
|
392
|
-
URL = URL;
|
393
|
-
Location = Location;
|
394
|
-
CustomElementRegistry = CustomElementRegistry;
|
395
|
-
Window = this.constructor;
|
396
|
-
XMLSerializer = XMLSerializer;
|
397
|
-
ResizeObserver = ResizeObserver;
|
398
|
-
CSSStyleSheet = CSSStyleSheet;
|
399
|
-
Blob = Blob;
|
400
|
-
File = File;
|
401
|
-
DOMException = DOMException;
|
402
|
-
History = History;
|
403
|
-
Screen = Screen;
|
404
|
-
Storage = Storage;
|
405
|
-
URLSearchParams = URLSearchParams;
|
406
|
-
HTMLCollection = HTMLCollection;
|
407
|
-
HTMLFormControlsCollection = HTMLFormControlsCollection;
|
408
|
-
NodeList = NodeList;
|
409
|
-
CSSUnitValue = CSSUnitValue;
|
410
351
|
CSSRule = CSSRule;
|
411
352
|
CSSContainerRule = CSSContainerRule;
|
412
353
|
CSSFontFaceRule = CSSFontFaceRule;
|
@@ -415,51 +356,42 @@ export default class BrowserWindow extends EventTarget {
|
|
415
356
|
CSSMediaRule = CSSMediaRule;
|
416
357
|
CSSStyleRule = CSSStyleRule;
|
417
358
|
CSSSupportsRule = CSSSupportsRule;
|
418
|
-
Selection = Selection;
|
419
|
-
Navigator = Navigator;
|
420
|
-
MimeType = MimeType;
|
421
|
-
MimeTypeArray = MimeTypeArray;
|
422
|
-
Plugin = Plugin;
|
423
|
-
PluginArray = PluginArray;
|
424
|
-
FileList = FileList;
|
425
359
|
DOMRect = DOMRect;
|
426
360
|
DOMRectReadOnly = DOMRectReadOnly;
|
361
|
+
Plugin = Plugin;
|
362
|
+
PluginArray = PluginArray;
|
363
|
+
Location = Location;
|
364
|
+
CustomElementRegistry = CustomElementRegistry;
|
365
|
+
ResizeObserver = ResizeObserver;
|
366
|
+
URL = URL;
|
367
|
+
Blob = Blob;
|
368
|
+
File = File;
|
369
|
+
Storage = Storage;
|
370
|
+
MimeType = MimeType;
|
371
|
+
MimeTypeArray = MimeTypeArray;
|
372
|
+
NodeFilter = NodeFilter;
|
373
|
+
HTMLCollection = HTMLCollection;
|
374
|
+
HTMLFormControlCollection = HTMLFormControlsCollection;
|
375
|
+
HTMLOptionsCollection = HTMLOptionsCollection;
|
376
|
+
NodeList = NodeList;
|
427
377
|
RadioNodeList = RadioNodeList;
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
XMLHttpRequestEventTarget = XMLHttpRequestEventTarget;
|
434
|
-
ReadableStream = ReadableStream;
|
378
|
+
FileList = FileList;
|
379
|
+
Screen = Screen;
|
380
|
+
Window = this.constructor;
|
381
|
+
// Node.js Classes
|
382
|
+
URLSearchParams = URLSearchParams;
|
435
383
|
WritableStream = Stream.Writable;
|
384
|
+
ReadableStream = ReadableStream;
|
436
385
|
TransformStream = Stream.Transform;
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
Permissions = Permissions;
|
441
|
-
PermissionStatus = PermissionStatus;
|
442
|
-
Clipboard = Clipboard;
|
443
|
-
ClipboardItem = ClipboardItem;
|
444
|
-
XMLHttpRequest;
|
445
|
-
DOMParser;
|
446
|
-
Range;
|
447
|
-
VTTCue;
|
448
|
-
TextTrack = TextTrack;
|
449
|
-
TextTrackCue = TextTrackCue;
|
450
|
-
TextTrackCueList = TextTrackCueList;
|
451
|
-
FileReader;
|
452
|
-
TimeRanges = TimeRanges;
|
453
|
-
RemotePlayback = RemotePlayback;
|
454
|
-
MediaStream = MediaStream;
|
455
|
-
MediaStreamTrack = MediaStreamTrack;
|
456
|
-
TextTrackList = TextTrackList;
|
386
|
+
PerformanceObserver = PerformanceObserver;
|
387
|
+
PerformanceEntry = PerformanceEntry;
|
388
|
+
PerformanceObserverEntryList = PerformanceObserverEntryList;
|
457
389
|
// Events
|
458
390
|
onload = null;
|
459
391
|
onerror = null;
|
460
392
|
// Public properties.
|
461
393
|
document;
|
462
|
-
customElements;
|
394
|
+
customElements = new CustomElementRegistry(this);
|
463
395
|
window = this;
|
464
396
|
globalThis = this;
|
465
397
|
performance = performance;
|
@@ -475,10 +407,8 @@ export default class BrowserWindow extends EventTarget {
|
|
475
407
|
// Public internal properties
|
476
408
|
// Used for tracking capture event listeners to improve performance when they are not used.
|
477
409
|
// See EventTarget class.
|
478
|
-
[PropertySymbol.captureEventListenerCount] = {};
|
479
410
|
[PropertySymbol.mutationObservers] = [];
|
480
411
|
[PropertySymbol.readyStateManager] = new DocumentReadyStateManager(this);
|
481
|
-
[PropertySymbol.asyncTaskManager] = null;
|
482
412
|
[PropertySymbol.location];
|
483
413
|
[PropertySymbol.history];
|
484
414
|
[PropertySymbol.navigator];
|
@@ -488,6 +418,8 @@ export default class BrowserWindow extends EventTarget {
|
|
488
418
|
[PropertySymbol.self] = this;
|
489
419
|
[PropertySymbol.top] = this;
|
490
420
|
[PropertySymbol.parent] = this;
|
421
|
+
[PropertySymbol.window] = this;
|
422
|
+
[PropertySymbol.internalId] = -1;
|
491
423
|
// Private properties
|
492
424
|
#browserFrame;
|
493
425
|
#innerWidth = null;
|
@@ -496,6 +428,7 @@ export default class BrowserWindow extends EventTarget {
|
|
496
428
|
#outerHeight = null;
|
497
429
|
#devicePixelRatio = null;
|
498
430
|
#zeroDelayTimeout = { timeouts: null };
|
431
|
+
#timerLoopStacks = [];
|
499
432
|
/**
|
500
433
|
* Constructor.
|
501
434
|
*
|
@@ -505,144 +438,33 @@ export default class BrowserWindow extends EventTarget {
|
|
505
438
|
*/
|
506
439
|
constructor(browserFrame, options) {
|
507
440
|
super();
|
508
|
-
const asyncTaskManager = browserFrame[PropertySymbol.asyncTaskManager];
|
509
441
|
this.#browserFrame = browserFrame;
|
510
|
-
this.
|
442
|
+
this.console = browserFrame.page.console;
|
511
443
|
this[PropertySymbol.navigator] = new Navigator(this);
|
512
444
|
this[PropertySymbol.screen] = new Screen();
|
513
445
|
this[PropertySymbol.sessionStorage] = new Storage();
|
514
446
|
this[PropertySymbol.localStorage] = new Storage();
|
515
447
|
this[PropertySymbol.location] = new Location(this.#browserFrame, options?.url ?? 'about:blank');
|
516
448
|
this[PropertySymbol.history] = new History(this.#browserFrame, this);
|
517
|
-
this
|
518
|
-
this.console = browserFrame.page.console;
|
519
|
-
WindowBrowserSettingsReader.setSettings(this, this.#browserFrame.page.context.browser.settings);
|
520
|
-
const window = this;
|
449
|
+
WindowBrowserContext.setWindowBrowserFrameRelation(this, this.#browserFrame);
|
521
450
|
this[PropertySymbol.setupVMContext]();
|
522
|
-
|
523
|
-
// For classes that need to be bound to the correct context to be instantiable using the "new" keyword.
|
524
|
-
/* eslint-disable jsdoc/require-jsdoc */
|
525
|
-
class Request extends RequestImplementation {
|
526
|
-
constructor(input, init) {
|
527
|
-
super({ window, asyncTaskManager }, input, init);
|
528
|
-
}
|
529
|
-
}
|
530
|
-
class Response extends ResponseImplementation {
|
531
|
-
static [PropertySymbol.window] = window;
|
532
|
-
constructor(body, init) {
|
533
|
-
super({ window, browserFrame }, body, init);
|
534
|
-
}
|
535
|
-
}
|
536
|
-
class XMLHttpRequest extends XMLHttpRequestImplementation {
|
537
|
-
constructor() {
|
538
|
-
super({ window, browserFrame });
|
539
|
-
}
|
540
|
-
}
|
541
|
-
class FileReader extends FileReaderImplementation {
|
542
|
-
constructor() {
|
543
|
-
super(window);
|
544
|
-
}
|
545
|
-
}
|
546
|
-
class DOMParser extends DOMParserImplementation {
|
547
|
-
constructor() {
|
548
|
-
super(window);
|
549
|
-
}
|
550
|
-
}
|
551
|
-
class Range extends RangeImplementation {
|
552
|
-
constructor() {
|
553
|
-
super(window);
|
554
|
-
}
|
555
|
-
}
|
556
|
-
class VTTCue extends VTTCueImplementation {
|
557
|
-
constructor(startTime, endTime, text) {
|
558
|
-
super(window, startTime, endTime, text);
|
559
|
-
}
|
560
|
-
}
|
561
|
-
class HTMLScriptElement extends HTMLScriptElementImplementation {
|
562
|
-
constructor() {
|
563
|
-
super(browserFrame);
|
564
|
-
}
|
565
|
-
}
|
566
|
-
class HTMLLinkElement extends HTMLLinkElementImplementation {
|
567
|
-
constructor() {
|
568
|
-
super(browserFrame);
|
569
|
-
}
|
570
|
-
}
|
571
|
-
class HTMLIFrameElement extends HTMLIFrameElementImplementation {
|
572
|
-
constructor() {
|
573
|
-
super(browserFrame);
|
574
|
-
}
|
575
|
-
}
|
576
|
-
class HTMLFormElement extends HTMLFormElementImplementation {
|
577
|
-
constructor() {
|
578
|
-
super(browserFrame);
|
579
|
-
}
|
580
|
-
}
|
581
|
-
class Document extends DocumentImplementation {
|
582
|
-
constructor() {
|
583
|
-
super({ window, browserFrame });
|
584
|
-
}
|
585
|
-
}
|
586
|
-
class HTMLDocument extends HTMLDocumentImplementation {
|
587
|
-
constructor() {
|
588
|
-
super({ window, browserFrame });
|
589
|
-
}
|
590
|
-
}
|
591
|
-
class XMLDocument extends XMLDocumentImplementation {
|
592
|
-
constructor() {
|
593
|
-
super({ window, browserFrame });
|
594
|
-
}
|
595
|
-
}
|
596
|
-
class SVGDocument extends SVGDocumentImplementation {
|
597
|
-
constructor() {
|
598
|
-
super({ window, browserFrame });
|
599
|
-
}
|
600
|
-
}
|
601
|
-
class Audio extends AudioImplementation {
|
602
|
-
}
|
603
|
-
class Image extends ImageImplementation {
|
604
|
-
}
|
605
|
-
class DocumentFragment extends DocumentFragmentImplementation {
|
606
|
-
}
|
607
|
-
class Text extends TextImplementation {
|
608
|
-
}
|
609
|
-
class Comment extends CommentImplementation {
|
610
|
-
}
|
611
|
-
/* eslint-enable jsdoc/require-jsdoc */
|
612
|
-
this.Response = Response;
|
613
|
-
this.Request = Request;
|
614
|
-
this.Image = Image;
|
615
|
-
this.Text = Text;
|
616
|
-
this.Comment = Comment;
|
617
|
-
this.DocumentFragment = DocumentFragment;
|
618
|
-
this.FileReader = FileReader;
|
619
|
-
this.DOMParser = DOMParser;
|
620
|
-
this.VTTCue = VTTCue;
|
621
|
-
this.XMLHttpRequest = XMLHttpRequest;
|
622
|
-
this.Range = Range;
|
623
|
-
this.Audio = Audio;
|
624
|
-
this.HTMLScriptElement = HTMLScriptElement;
|
625
|
-
this.HTMLLinkElement = HTMLLinkElement;
|
626
|
-
this.HTMLIFrameElement = HTMLIFrameElement;
|
627
|
-
this.HTMLFormElement = HTMLFormElement;
|
628
|
-
this.Document = Document;
|
629
|
-
this.HTMLDocument = HTMLDocument;
|
630
|
-
this.XMLDocument = XMLDocument;
|
631
|
-
this.SVGDocument = SVGDocument;
|
451
|
+
WindowClassExtender.extendClass(this);
|
632
452
|
// Document
|
633
|
-
this.document = new HTMLDocument();
|
453
|
+
this.document = new this.HTMLDocument();
|
634
454
|
this.document[PropertySymbol.defaultView] = this;
|
635
|
-
// Override owner document
|
636
|
-
this.Audio[PropertySymbol.ownerDocument] = this.document;
|
637
|
-
this.Image[PropertySymbol.ownerDocument] = this.document;
|
638
|
-
this.DocumentFragment[PropertySymbol.ownerDocument] = this.document;
|
639
|
-
this.Text[PropertySymbol.ownerDocument] = this.document;
|
640
|
-
this.Comment[PropertySymbol.ownerDocument] = this.document;
|
641
455
|
// Ready state manager
|
642
456
|
this[PropertySymbol.readyStateManager].waitUntilComplete().then(() => {
|
643
457
|
this.document[PropertySymbol.readyState] = DocumentReadyStateEnum.complete;
|
644
458
|
this.document.dispatchEvent(new Event('readystatechange'));
|
645
|
-
|
459
|
+
// Not sure why target is set to document here, but this is how it works in the browser
|
460
|
+
const loadEvent = new Event('load');
|
461
|
+
loadEvent[PropertySymbol.currentTarget] = this.document;
|
462
|
+
loadEvent[PropertySymbol.target] = this.document;
|
463
|
+
loadEvent[PropertySymbol.eventPhase] = EventPhaseEnum.atTarget;
|
464
|
+
this.dispatchEvent(loadEvent);
|
465
|
+
loadEvent[PropertySymbol.target] = null;
|
466
|
+
loadEvent[PropertySymbol.currentTarget] = null;
|
467
|
+
loadEvent[PropertySymbol.eventPhase] = EventPhaseEnum.none;
|
646
468
|
});
|
647
469
|
ClassMethodBinder.bindMethods(this, [EventTarget, BrowserWindow]);
|
648
470
|
}
|
@@ -981,7 +803,7 @@ export default class BrowserWindow extends EventTarget {
|
|
981
803
|
* @returns A new MediaQueryList.
|
982
804
|
*/
|
983
805
|
matchMedia(mediaQueryString) {
|
984
|
-
return new MediaQueryList({
|
806
|
+
return new MediaQueryList({ window: this, media: mediaQueryString });
|
985
807
|
}
|
986
808
|
/**
|
987
809
|
* Sets a timer which executes a function once the timer expires.
|
@@ -992,17 +814,30 @@ export default class BrowserWindow extends EventTarget {
|
|
992
814
|
* @returns Timeout ID.
|
993
815
|
*/
|
994
816
|
setTimeout(callback, delay = 0, ...args) {
|
817
|
+
if (this.closed) {
|
818
|
+
return;
|
819
|
+
}
|
820
|
+
const settings = this.#browserFrame.page?.context?.browser?.settings;
|
821
|
+
if (settings.timer.preventTimerLoops) {
|
822
|
+
const stack = new Error().stack;
|
823
|
+
const timerLoopStacks = this.#timerLoopStacks;
|
824
|
+
if (timerLoopStacks.includes(stack)) {
|
825
|
+
return;
|
826
|
+
}
|
827
|
+
timerLoopStacks.push(stack);
|
828
|
+
}
|
995
829
|
// We can group timeouts with a delay of 0 into one timeout to improve performance.
|
996
830
|
// Grouping timeouts will also improve the performance of the async task manager.
|
997
831
|
// It also makes the async task manager more stable as many timeouts may cause waitUntilComplete() to be resolved too early.
|
998
832
|
if (!delay) {
|
999
833
|
const zeroDelayTimeout = this.#zeroDelayTimeout;
|
1000
834
|
if (!zeroDelayTimeout.timeouts) {
|
1001
|
-
const settings = this.#browserFrame.page?.context?.browser?.settings;
|
1002
835
|
const useTryCatch = !settings ||
|
1003
836
|
(!settings.disableErrorCapturing &&
|
1004
837
|
settings.errorCapture === BrowserErrorCaptureEnum.tryAndCatch);
|
1005
838
|
const id = TIMER.setTimeout(() => {
|
839
|
+
// We need to call endTimer() before the callback as the callback might throw an error.
|
840
|
+
this.#browserFrame[PropertySymbol.asyncTaskManager].endTimer(id);
|
1006
841
|
const timeouts = zeroDelayTimeout.timeouts;
|
1007
842
|
zeroDelayTimeout.timeouts = null;
|
1008
843
|
for (const timeout of timeouts) {
|
@@ -1013,7 +848,6 @@ export default class BrowserWindow extends EventTarget {
|
|
1013
848
|
timeout.callback();
|
1014
849
|
}
|
1015
850
|
}
|
1016
|
-
this.#browserFrame[PropertySymbol.asyncTaskManager].endTimer(id);
|
1017
851
|
});
|
1018
852
|
zeroDelayTimeout.timeouts = [];
|
1019
853
|
this.#browserFrame[PropertySymbol.asyncTaskManager].startTimer(id);
|
@@ -1022,18 +856,18 @@ export default class BrowserWindow extends EventTarget {
|
|
1022
856
|
zeroDelayTimeout.timeouts.push(timeout);
|
1023
857
|
return timeout;
|
1024
858
|
}
|
1025
|
-
const settings = this.#browserFrame.page?.context?.browser?.settings;
|
1026
859
|
const useTryCatch = !settings ||
|
1027
860
|
(!settings.disableErrorCapturing &&
|
1028
861
|
settings.errorCapture === BrowserErrorCaptureEnum.tryAndCatch);
|
1029
862
|
const id = TIMER.setTimeout(() => {
|
863
|
+
// We need to call endTimer() before the callback as the callback might throw an error.
|
864
|
+
this.#browserFrame[PropertySymbol.asyncTaskManager].endTimer(id);
|
1030
865
|
if (useTryCatch) {
|
1031
866
|
WindowErrorUtility.captureError(this, () => callback(...args));
|
1032
867
|
}
|
1033
868
|
else {
|
1034
869
|
callback(...args);
|
1035
870
|
}
|
1036
|
-
this.#browserFrame[PropertySymbol.asyncTaskManager].endTimer(id);
|
1037
871
|
}, settings?.timer.maxTimeout !== -1 && delay && delay > settings?.timer.maxTimeout
|
1038
872
|
? settings?.timer.maxTimeout
|
1039
873
|
: delay);
|
@@ -1074,6 +908,9 @@ export default class BrowserWindow extends EventTarget {
|
|
1074
908
|
* @returns Interval ID.
|
1075
909
|
*/
|
1076
910
|
setInterval(callback, delay = 0, ...args) {
|
911
|
+
if (this.closed) {
|
912
|
+
return;
|
913
|
+
}
|
1077
914
|
const settings = this.#browserFrame.page?.context?.browser?.settings;
|
1078
915
|
const useTryCatch = !settings ||
|
1079
916
|
(!settings.disableErrorCapturing &&
|
@@ -1119,18 +956,30 @@ export default class BrowserWindow extends EventTarget {
|
|
1119
956
|
* @returns ID.
|
1120
957
|
*/
|
1121
958
|
requestAnimationFrame(callback) {
|
959
|
+
if (this.closed) {
|
960
|
+
return;
|
961
|
+
}
|
1122
962
|
const settings = this.#browserFrame.page?.context?.browser?.settings;
|
963
|
+
if (settings.timer.preventTimerLoops) {
|
964
|
+
const stack = new Error().stack;
|
965
|
+
const timerLoopStacks = this.#timerLoopStacks;
|
966
|
+
if (timerLoopStacks.includes(stack)) {
|
967
|
+
return;
|
968
|
+
}
|
969
|
+
timerLoopStacks.push(stack);
|
970
|
+
}
|
1123
971
|
const useTryCatch = !settings ||
|
1124
972
|
(!settings.disableErrorCapturing &&
|
1125
973
|
settings.errorCapture === BrowserErrorCaptureEnum.tryAndCatch);
|
1126
974
|
const id = TIMER.setImmediate(() => {
|
975
|
+
// We need to call endImmediate() before the callback as the callback might throw an error.
|
976
|
+
this.#browserFrame[PropertySymbol.asyncTaskManager].endImmediate(id);
|
1127
977
|
if (useTryCatch) {
|
1128
978
|
WindowErrorUtility.captureError(this, () => callback(this.performance.now()));
|
1129
979
|
}
|
1130
980
|
else {
|
1131
981
|
callback(this.performance.now());
|
1132
982
|
}
|
1133
|
-
this.#browserFrame[PropertySymbol.asyncTaskManager].endImmediate(id);
|
1134
983
|
});
|
1135
984
|
this.#browserFrame[PropertySymbol.asyncTaskManager].startImmediate(id);
|
1136
985
|
return id;
|
@@ -1155,6 +1004,9 @@ export default class BrowserWindow extends EventTarget {
|
|
1155
1004
|
* @param callback Function to be executed.
|
1156
1005
|
*/
|
1157
1006
|
queueMicrotask(callback) {
|
1007
|
+
if (this.closed) {
|
1008
|
+
return;
|
1009
|
+
}
|
1158
1010
|
let isAborted = false;
|
1159
1011
|
const taskId = this.#browserFrame[PropertySymbol.asyncTaskManager].startTask(() => (isAborted = true));
|
1160
1012
|
const settings = this.#browserFrame.page?.context?.browser?.settings;
|
@@ -1163,13 +1015,14 @@ export default class BrowserWindow extends EventTarget {
|
|
1163
1015
|
settings.errorCapture === BrowserErrorCaptureEnum.tryAndCatch);
|
1164
1016
|
TIMER.queueMicrotask(() => {
|
1165
1017
|
if (!isAborted) {
|
1018
|
+
// We need to call endTask() before the callback as the callback might throw an error.
|
1019
|
+
this.#browserFrame[PropertySymbol.asyncTaskManager].endTask(taskId);
|
1166
1020
|
if (useTryCatch) {
|
1167
1021
|
WindowErrorUtility.captureError(this, callback);
|
1168
1022
|
}
|
1169
1023
|
else {
|
1170
1024
|
callback();
|
1171
1025
|
}
|
1172
|
-
this.#browserFrame[PropertySymbol.asyncTaskManager].endTask(taskId);
|
1173
1026
|
}
|
1174
1027
|
});
|
1175
1028
|
}
|
@@ -1181,6 +1034,9 @@ export default class BrowserWindow extends EventTarget {
|
|
1181
1034
|
* @returns Promise.
|
1182
1035
|
*/
|
1183
1036
|
async fetch(url, init) {
|
1037
|
+
if (this.closed) {
|
1038
|
+
return Promise.reject(new this.DOMException("Failed to execute 'fetch' on 'Window': The window is closed.", DOMExceptionNameEnum.invalidStateError));
|
1039
|
+
}
|
1184
1040
|
return await new Fetch({
|
1185
1041
|
browserFrame: this.#browserFrame,
|
1186
1042
|
window: this,
|
@@ -1219,14 +1075,17 @@ export default class BrowserWindow extends EventTarget {
|
|
1219
1075
|
*/
|
1220
1076
|
postMessage(message, targetOrigin = '*', _transfer) {
|
1221
1077
|
// TODO: Implement transfer.
|
1078
|
+
if (this.closed) {
|
1079
|
+
return;
|
1080
|
+
}
|
1222
1081
|
if (targetOrigin && targetOrigin !== '*' && this.location.origin !== targetOrigin) {
|
1223
|
-
throw new DOMException(`Failed to execute 'postMessage' on 'Window': The target origin provided ('${targetOrigin}') does not match the recipient window\'s origin ('${this.location.origin}').`, DOMExceptionNameEnum.securityError);
|
1082
|
+
throw new this.DOMException(`Failed to execute 'postMessage' on 'Window': The target origin provided ('${targetOrigin}') does not match the recipient window\'s origin ('${this.location.origin}').`, DOMExceptionNameEnum.securityError);
|
1224
1083
|
}
|
1225
1084
|
try {
|
1226
1085
|
JSON.stringify(message);
|
1227
1086
|
}
|
1228
1087
|
catch (error) {
|
1229
|
-
throw new DOMException(`Failed to execute 'postMessage' on 'Window': The provided message cannot be serialized.`, DOMExceptionNameEnum.invalidStateError);
|
1088
|
+
throw new this.DOMException(`Failed to execute 'postMessage' on 'Window': The provided message cannot be serialized.`, DOMExceptionNameEnum.invalidStateError);
|
1230
1089
|
}
|
1231
1090
|
this.setTimeout(() => this.dispatchEvent(new MessageEvent('message', {
|
1232
1091
|
data: message,
|
@@ -1246,8 +1105,11 @@ export default class BrowserWindow extends EventTarget {
|
|
1246
1105
|
* @param height Height.
|
1247
1106
|
*/
|
1248
1107
|
resizeTo(width, height) {
|
1108
|
+
if (this.closed) {
|
1109
|
+
return;
|
1110
|
+
}
|
1249
1111
|
if (!width || !height) {
|
1250
|
-
throw new DOMException(`Failed to execute 'resizeTo' on 'Window': 2 arguments required, but only ${arguments.length} present.`);
|
1112
|
+
throw new this.DOMException(`Failed to execute 'resizeTo' on 'Window': 2 arguments required, but only ${arguments.length} present.`);
|
1251
1113
|
}
|
1252
1114
|
// We can only resize the window if it is a popup.
|
1253
1115
|
if (this.#browserFrame[PropertySymbol.popup]) {
|
@@ -1261,8 +1123,11 @@ export default class BrowserWindow extends EventTarget {
|
|
1261
1123
|
* @param height Height.
|
1262
1124
|
*/
|
1263
1125
|
resizeBy(width, height) {
|
1126
|
+
if (this.closed) {
|
1127
|
+
return;
|
1128
|
+
}
|
1264
1129
|
if (!width || !height) {
|
1265
|
-
throw new DOMException(`Failed to execute 'resizeBy' on 'Window': 2 arguments required, but only ${arguments.length} present.`);
|
1130
|
+
throw new this.DOMException(`Failed to execute 'resizeBy' on 'Window': 2 arguments required, but only ${arguments.length} present.`);
|
1266
1131
|
}
|
1267
1132
|
// We can only resize the window if it is a popup.
|
1268
1133
|
if (this.#browserFrame[PropertySymbol.popup]) {
|
@@ -1299,11 +1164,6 @@ export default class BrowserWindow extends EventTarget {
|
|
1299
1164
|
this[PropertySymbol.mutationObservers] = [];
|
1300
1165
|
this[PropertySymbol.asyncTaskManager] = null;
|
1301
1166
|
this[PropertySymbol.mutationObservers] = [];
|
1302
|
-
this.Audio[PropertySymbol.ownerDocument] = null;
|
1303
|
-
this.Image[PropertySymbol.ownerDocument] = null;
|
1304
|
-
this.DocumentFragment[PropertySymbol.ownerDocument] = null;
|
1305
|
-
this.Text[PropertySymbol.ownerDocument] = null;
|
1306
|
-
this.Comment[PropertySymbol.ownerDocument] = null;
|
1307
1167
|
// Disconnects nodes from the document, so that they can be garbage collected.
|
1308
1168
|
const childNodes = this.document[PropertySymbol.nodeArray];
|
1309
1169
|
while (childNodes.length > 0) {
|
@@ -1313,6 +1173,16 @@ export default class BrowserWindow extends EventTarget {
|
|
1313
1173
|
}
|
1314
1174
|
this.document.removeChild(childNodes[0]);
|
1315
1175
|
}
|
1176
|
+
// Create some empty elements for scripts that are still running.
|
1177
|
+
const htmlElement = this.document.createElement('html');
|
1178
|
+
const headElement = this.document.createElement('head');
|
1179
|
+
const bodyElement = this.document.createElement('body');
|
1180
|
+
htmlElement.appendChild(headElement);
|
1181
|
+
htmlElement.appendChild(bodyElement);
|
1182
|
+
this.document.appendChild(htmlElement);
|
1183
|
+
if (this.location[PropertySymbol.destroy]) {
|
1184
|
+
this.location[PropertySymbol.destroy]();
|
1185
|
+
}
|
1316
1186
|
if (this.customElements[PropertySymbol.destroy]) {
|
1317
1187
|
this.customElements[PropertySymbol.destroy]();
|
1318
1188
|
}
|
@@ -1323,7 +1193,7 @@ export default class BrowserWindow extends EventTarget {
|
|
1323
1193
|
this.document[PropertySymbol.nextActiveElement] = null;
|
1324
1194
|
this.document[PropertySymbol.currentScript] = null;
|
1325
1195
|
this.document[PropertySymbol.selection] = null;
|
1326
|
-
|
1196
|
+
WindowBrowserContext.removeWindowBrowserFrameRelation(this);
|
1327
1197
|
}
|
1328
1198
|
}
|
1329
1199
|
//# sourceMappingURL=BrowserWindow.js.map
|