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
@@ -3,10 +3,10 @@ import * as PropertySymbol from '../../PropertySymbol.js';
|
|
3
3
|
import CSSStyleDeclaration from '../../css/declaration/CSSStyleDeclaration.js';
|
4
4
|
import PointerEvent from '../../event/events/PointerEvent.js';
|
5
5
|
import NodeTypeEnum from '../node/NodeTypeEnum.js';
|
6
|
-
import DOMException from '../../exception/DOMException.js';
|
7
6
|
import Event from '../../event/Event.js';
|
8
7
|
import HTMLElementUtility from './HTMLElementUtility.js';
|
9
8
|
import DOMStringMap from '../element/DOMStringMap.js';
|
9
|
+
import WindowBrowserContext from '../../window/WindowBrowserContext.js';
|
10
10
|
|
11
11
|
/**
|
12
12
|
* HTML Element.
|
@@ -58,8 +58,10 @@ export default class HTMLElement extends Element {
|
|
58
58
|
public [PropertySymbol.clientLeft] = 0;
|
59
59
|
public [PropertySymbol.clientTop] = 0;
|
60
60
|
public [PropertySymbol.style]: CSSStyleDeclaration = null;
|
61
|
-
|
62
|
-
|
61
|
+
public [PropertySymbol.dataset]: DOMStringMap | null = null;
|
62
|
+
|
63
|
+
// Private properties
|
64
|
+
#customElementDefineCallback: () => void = null;
|
63
65
|
|
64
66
|
/**
|
65
67
|
* Returns access key.
|
@@ -217,10 +219,7 @@ export default class HTMLElement extends Element {
|
|
217
219
|
for (const childNode of this[PropertySymbol.nodeArray]) {
|
218
220
|
if (childNode[PropertySymbol.nodeType] === NodeTypeEnum.elementNode) {
|
219
221
|
const childElement = <HTMLElement>childNode;
|
220
|
-
const computedStyle =
|
221
|
-
this[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow].getComputedStyle(
|
222
|
-
childElement
|
223
|
-
);
|
222
|
+
const computedStyle = this[PropertySymbol.window].getComputedStyle(childElement);
|
224
223
|
|
225
224
|
if (
|
226
225
|
childElement[PropertySymbol.tagName] !== 'SCRIPT' &&
|
@@ -301,7 +300,7 @@ export default class HTMLElement extends Element {
|
|
301
300
|
*/
|
302
301
|
public set outerText(text: string) {
|
303
302
|
if (!this[PropertySymbol.parentNode]) {
|
304
|
-
throw new DOMException(
|
303
|
+
throw new this[PropertySymbol.window].DOMException(
|
305
304
|
"Failed to set the 'outerHTML' property on 'Element': This element has no parent node."
|
306
305
|
);
|
307
306
|
}
|
@@ -453,18 +452,50 @@ export default class HTMLElement extends Element {
|
|
453
452
|
this.setAttribute('title', title);
|
454
453
|
}
|
455
454
|
|
455
|
+
/**
|
456
|
+
* Returns popover.
|
457
|
+
*
|
458
|
+
* @returns Popover.
|
459
|
+
*/
|
460
|
+
public get popover(): string | null {
|
461
|
+
const value = this.getAttribute('popover');
|
462
|
+
switch (value) {
|
463
|
+
case null:
|
464
|
+
return null;
|
465
|
+
case '':
|
466
|
+
case 'auto':
|
467
|
+
return 'auto';
|
468
|
+
case 'manual':
|
469
|
+
return 'manual';
|
470
|
+
default:
|
471
|
+
return 'manual';
|
472
|
+
}
|
473
|
+
}
|
474
|
+
|
475
|
+
/**
|
476
|
+
* Sets popover.
|
477
|
+
*
|
478
|
+
* @param value Value.
|
479
|
+
*/
|
480
|
+
public set popover(value: string | null) {
|
481
|
+
if (value === null) {
|
482
|
+
this.removeAttribute('popover');
|
483
|
+
return;
|
484
|
+
}
|
485
|
+
this.setAttribute('popover', value);
|
486
|
+
}
|
487
|
+
|
456
488
|
/**
|
457
489
|
* Triggers a click event.
|
458
490
|
*/
|
459
491
|
public click(): void {
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
this.dispatchEvent(event);
|
492
|
+
this.dispatchEvent(
|
493
|
+
new PointerEvent('click', {
|
494
|
+
bubbles: true,
|
495
|
+
composed: true,
|
496
|
+
cancelable: true
|
497
|
+
})
|
498
|
+
);
|
468
499
|
}
|
469
500
|
|
470
501
|
/**
|
@@ -499,103 +530,22 @@ export default class HTMLElement extends Element {
|
|
499
530
|
* @see https://html.spec.whatwg.org/multipage/dom.html#htmlelement
|
500
531
|
*/
|
501
532
|
public override [PropertySymbol.connectedToNode](): void {
|
533
|
+
const window = this[PropertySymbol.window];
|
502
534
|
const localName = this[PropertySymbol.localName];
|
535
|
+
const allCallbacks = window.customElements[PropertySymbol.callbacks];
|
503
536
|
|
504
537
|
// This element can potentially be a custom element that has not been defined yet
|
505
538
|
// Therefore we need to register a callback for when it is defined in CustomElementRegistry and replace it with the registered element (see #404)
|
506
|
-
if (
|
507
|
-
this
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
];
|
517
|
-
|
518
|
-
if (!this[PropertySymbol.customElementDefineCallback]) {
|
519
|
-
const callback = (): void => {
|
520
|
-
if (this[PropertySymbol.parentNode]) {
|
521
|
-
const newElement = <HTMLElement>(
|
522
|
-
this[PropertySymbol.ownerDocument].createElement(localName)
|
523
|
-
);
|
524
|
-
const newCache = newElement[PropertySymbol.cache];
|
525
|
-
newElement[PropertySymbol.nodeArray] = this[PropertySymbol.nodeArray];
|
526
|
-
newElement[PropertySymbol.elementArray] = this[PropertySymbol.elementArray];
|
527
|
-
newElement[PropertySymbol.childNodes] = null;
|
528
|
-
newElement[PropertySymbol.children] = null;
|
529
|
-
newElement[PropertySymbol.isConnected] = this[PropertySymbol.isConnected];
|
530
|
-
|
531
|
-
newElement[PropertySymbol.rootNode] = this[PropertySymbol.rootNode];
|
532
|
-
newElement[PropertySymbol.formNode] = this[PropertySymbol.formNode];
|
533
|
-
newElement[PropertySymbol.parentNode] = this[PropertySymbol.parentNode];
|
534
|
-
newElement[PropertySymbol.selectNode] = this[PropertySymbol.selectNode];
|
535
|
-
newElement[PropertySymbol.textAreaNode] = this[PropertySymbol.textAreaNode];
|
536
|
-
newElement[PropertySymbol.mutationListeners] = this[PropertySymbol.mutationListeners];
|
537
|
-
newElement[PropertySymbol.isValue] = this[PropertySymbol.isValue];
|
538
|
-
newElement[PropertySymbol.cache] = this[PropertySymbol.cache];
|
539
|
-
newElement[PropertySymbol.affectsCache] = this[PropertySymbol.affectsCache];
|
540
|
-
newElement[PropertySymbol.attributes][PropertySymbol.namedItems] =
|
541
|
-
this[PropertySymbol.attributes][PropertySymbol.namedItems];
|
542
|
-
newElement[PropertySymbol.attributes][PropertySymbol.namespaceItems] =
|
543
|
-
this[PropertySymbol.attributes][PropertySymbol.namespaceItems];
|
544
|
-
|
545
|
-
for (const attr of newElement[PropertySymbol.attributes][
|
546
|
-
PropertySymbol.namedItems
|
547
|
-
].values()) {
|
548
|
-
attr[PropertySymbol.ownerElement] = newElement;
|
549
|
-
}
|
550
|
-
|
551
|
-
this[PropertySymbol.nodeArray] = [];
|
552
|
-
this[PropertySymbol.elementArray] = [];
|
553
|
-
this[PropertySymbol.childNodes] = null;
|
554
|
-
this[PropertySymbol.children] = null;
|
555
|
-
|
556
|
-
this[PropertySymbol.rootNode] = null;
|
557
|
-
this[PropertySymbol.formNode] = null;
|
558
|
-
this[PropertySymbol.selectNode] = null;
|
559
|
-
this[PropertySymbol.textAreaNode] = null;
|
560
|
-
this[PropertySymbol.mutationListeners] = [];
|
561
|
-
this[PropertySymbol.isValue] = null;
|
562
|
-
this[PropertySymbol.cache] = newCache;
|
563
|
-
this[PropertySymbol.affectsCache] = [];
|
564
|
-
this[PropertySymbol.attributes][PropertySymbol.namedItems] = new Map();
|
565
|
-
this[PropertySymbol.attributes][PropertySymbol.namespaceItems] = new Map();
|
566
|
-
|
567
|
-
const parentChildNodes = this[PropertySymbol.parentNode][PropertySymbol.nodeArray];
|
568
|
-
const parentChildElements =
|
569
|
-
this[PropertySymbol.parentNode][PropertySymbol.elementArray];
|
570
|
-
parentChildNodes[parentChildNodes.indexOf(this)] = newElement;
|
571
|
-
parentChildElements[parentChildElements.indexOf(this)] = newElement;
|
572
|
-
|
573
|
-
if (newElement[PropertySymbol.isConnected] && newElement.connectedCallback) {
|
574
|
-
const result = <void | Promise<void>>newElement.connectedCallback();
|
575
|
-
/**
|
576
|
-
* It is common to import dependencies in the connectedCallback() method of web components.
|
577
|
-
* As Happy DOM doesn't have support for dynamic imports yet, this is a temporary solution to wait for imports in connectedCallback().
|
578
|
-
*
|
579
|
-
* @see https://github.com/capricorn86/happy-dom/issues/1442
|
580
|
-
*/
|
581
|
-
if (result instanceof Promise) {
|
582
|
-
const asyncTaskManager =
|
583
|
-
this[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow][
|
584
|
-
PropertySymbol.asyncTaskManager
|
585
|
-
];
|
586
|
-
const taskID = asyncTaskManager.startTask();
|
587
|
-
result
|
588
|
-
.then(() => asyncTaskManager.endTask(taskID))
|
589
|
-
.catch(() => asyncTaskManager.endTask(taskID));
|
590
|
-
}
|
591
|
-
}
|
592
|
-
|
593
|
-
this[PropertySymbol.disconnectedFromDocument]();
|
594
|
-
}
|
595
|
-
};
|
596
|
-
callbacks[localName] = callbacks[localName] || [];
|
597
|
-
callbacks[localName].push(callback);
|
598
|
-
this[PropertySymbol.customElementDefineCallback] = callback;
|
539
|
+
if (this.constructor === window.HTMLElement && localName.includes('-') && allCallbacks) {
|
540
|
+
if (!this.#customElementDefineCallback) {
|
541
|
+
const callback = this.#onCustomElementConnected.bind(this);
|
542
|
+
const callbacks = allCallbacks.get(localName);
|
543
|
+
if (callbacks) {
|
544
|
+
callbacks.push(callback);
|
545
|
+
} else {
|
546
|
+
allCallbacks.set(localName, [callback]);
|
547
|
+
}
|
548
|
+
this.#customElementDefineCallback = callback;
|
599
549
|
}
|
600
550
|
}
|
601
551
|
|
@@ -606,36 +556,108 @@ export default class HTMLElement extends Element {
|
|
606
556
|
* @override
|
607
557
|
*/
|
608
558
|
public override [PropertySymbol.disconnectedFromNode](): void {
|
559
|
+
const window = this[PropertySymbol.window];
|
609
560
|
const localName = this[PropertySymbol.localName];
|
561
|
+
const allCallbacks = window.customElements[PropertySymbol.callbacks];
|
610
562
|
|
611
563
|
// This element can potentially be a custom element that has not been defined yet
|
612
564
|
// Therefore we need to register a callback for when it is defined in CustomElementRegistry and replace it with the registered element (see #404)
|
613
|
-
if (
|
614
|
-
|
615
|
-
|
616
|
-
this
|
617
|
-
|
618
|
-
]
|
619
|
-
) {
|
620
|
-
const callbacks =
|
621
|
-
this[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow].customElements[
|
622
|
-
PropertySymbol.callbacks
|
623
|
-
];
|
624
|
-
|
625
|
-
if (callbacks[localName] && this[PropertySymbol.customElementDefineCallback]) {
|
626
|
-
const index = callbacks[localName].indexOf(
|
627
|
-
this[PropertySymbol.customElementDefineCallback]
|
628
|
-
);
|
565
|
+
if (this.constructor === window.HTMLElement && localName.includes('-') && allCallbacks) {
|
566
|
+
const callbacks = allCallbacks.get(localName);
|
567
|
+
|
568
|
+
if (callbacks && this.#customElementDefineCallback) {
|
569
|
+
const index = callbacks.indexOf(this.#customElementDefineCallback);
|
629
570
|
if (index !== -1) {
|
630
|
-
callbacks
|
571
|
+
callbacks.splice(index, 1);
|
631
572
|
}
|
632
|
-
if (!callbacks
|
633
|
-
delete
|
573
|
+
if (!callbacks.length) {
|
574
|
+
allCallbacks.delete(localName);
|
634
575
|
}
|
635
|
-
this
|
576
|
+
this.#customElementDefineCallback = null;
|
636
577
|
}
|
637
578
|
}
|
638
579
|
|
639
580
|
super[PropertySymbol.disconnectedFromNode]();
|
640
581
|
}
|
582
|
+
|
583
|
+
/**
|
584
|
+
* Triggered when a custom element is connected to the DOM.
|
585
|
+
*/
|
586
|
+
#onCustomElementConnected(): void {
|
587
|
+
if (!this[PropertySymbol.parentNode]) {
|
588
|
+
return;
|
589
|
+
}
|
590
|
+
|
591
|
+
const localName = this[PropertySymbol.localName];
|
592
|
+
const newElement = <HTMLElement>this[PropertySymbol.ownerDocument].createElement(localName);
|
593
|
+
const newCache = newElement[PropertySymbol.cache];
|
594
|
+
|
595
|
+
newElement[PropertySymbol.nodeArray] = this[PropertySymbol.nodeArray];
|
596
|
+
newElement[PropertySymbol.elementArray] = this[PropertySymbol.elementArray];
|
597
|
+
newElement[PropertySymbol.childNodes] = null;
|
598
|
+
newElement[PropertySymbol.children] = null;
|
599
|
+
newElement[PropertySymbol.isConnected] = this[PropertySymbol.isConnected];
|
600
|
+
|
601
|
+
newElement[PropertySymbol.rootNode] = this[PropertySymbol.rootNode];
|
602
|
+
newElement[PropertySymbol.formNode] = this[PropertySymbol.formNode];
|
603
|
+
newElement[PropertySymbol.parentNode] = this[PropertySymbol.parentNode];
|
604
|
+
newElement[PropertySymbol.selectNode] = this[PropertySymbol.selectNode];
|
605
|
+
newElement[PropertySymbol.textAreaNode] = this[PropertySymbol.textAreaNode];
|
606
|
+
newElement[PropertySymbol.mutationListeners] = this[PropertySymbol.mutationListeners];
|
607
|
+
newElement[PropertySymbol.isValue] = this[PropertySymbol.isValue];
|
608
|
+
newElement[PropertySymbol.cache] = this[PropertySymbol.cache];
|
609
|
+
newElement[PropertySymbol.affectsCache] = this[PropertySymbol.affectsCache];
|
610
|
+
newElement[PropertySymbol.attributes][PropertySymbol.namedItems] =
|
611
|
+
this[PropertySymbol.attributes][PropertySymbol.namedItems];
|
612
|
+
newElement[PropertySymbol.attributes][PropertySymbol.namespaceItems] =
|
613
|
+
this[PropertySymbol.attributes][PropertySymbol.namespaceItems];
|
614
|
+
|
615
|
+
for (const attr of newElement[PropertySymbol.attributes][PropertySymbol.namedItems].values()) {
|
616
|
+
attr[PropertySymbol.ownerElement] = newElement;
|
617
|
+
}
|
618
|
+
|
619
|
+
this[PropertySymbol.nodeArray] = [];
|
620
|
+
this[PropertySymbol.elementArray] = [];
|
621
|
+
this[PropertySymbol.childNodes] = null;
|
622
|
+
this[PropertySymbol.children] = null;
|
623
|
+
|
624
|
+
this[PropertySymbol.rootNode] = null;
|
625
|
+
this[PropertySymbol.formNode] = null;
|
626
|
+
this[PropertySymbol.selectNode] = null;
|
627
|
+
this[PropertySymbol.textAreaNode] = null;
|
628
|
+
this[PropertySymbol.mutationListeners] = [];
|
629
|
+
this[PropertySymbol.isValue] = null;
|
630
|
+
this[PropertySymbol.cache] = newCache;
|
631
|
+
this[PropertySymbol.affectsCache] = [];
|
632
|
+
this[PropertySymbol.attributes][PropertySymbol.namedItems] = new Map();
|
633
|
+
this[PropertySymbol.attributes][PropertySymbol.namespaceItems] = new Map();
|
634
|
+
|
635
|
+
const parentChildNodes = this[PropertySymbol.parentNode][PropertySymbol.nodeArray];
|
636
|
+
const parentChildElements = this[PropertySymbol.parentNode][PropertySymbol.elementArray];
|
637
|
+
parentChildNodes[parentChildNodes.indexOf(this)] = newElement;
|
638
|
+
parentChildElements[parentChildElements.indexOf(this)] = newElement;
|
639
|
+
|
640
|
+
if (newElement[PropertySymbol.isConnected] && newElement.connectedCallback) {
|
641
|
+
const result = <void | Promise<void>>newElement.connectedCallback();
|
642
|
+
/**
|
643
|
+
* It is common to import dependencies in the connectedCallback() method of web components.
|
644
|
+
* As Happy DOM doesn't have support for dynamic imports yet, this is a temporary solution to wait for imports in connectedCallback().
|
645
|
+
*
|
646
|
+
* @see https://github.com/capricorn86/happy-dom/issues/1442
|
647
|
+
*/
|
648
|
+
if (result instanceof Promise) {
|
649
|
+
const asyncTaskManager = new WindowBrowserContext(
|
650
|
+
this[PropertySymbol.window]
|
651
|
+
).getAsyncTaskManager();
|
652
|
+
if (asyncTaskManager) {
|
653
|
+
const taskID = asyncTaskManager.startTask();
|
654
|
+
result
|
655
|
+
.then(() => asyncTaskManager.endTask(taskID))
|
656
|
+
.catch(() => asyncTaskManager.endTask(taskID));
|
657
|
+
}
|
658
|
+
}
|
659
|
+
}
|
660
|
+
|
661
|
+
this[PropertySymbol.disconnectedFromDocument]();
|
662
|
+
}
|
641
663
|
}
|
@@ -17,6 +17,7 @@ import Element from '../element/Element.js';
|
|
17
17
|
import EventTarget from '../../event/EventTarget.js';
|
18
18
|
import Node from '../node/Node.js';
|
19
19
|
import ClassMethodBinder from '../../ClassMethodBinder.js';
|
20
|
+
import WindowBrowserContext from '../../window/WindowBrowserContext.js';
|
20
21
|
|
21
22
|
/**
|
22
23
|
* HTML Form Element.
|
@@ -37,19 +38,12 @@ export default class HTMLFormElement extends HTMLElement {
|
|
37
38
|
public onreset: (event: Event) => void | null = null;
|
38
39
|
public onsubmit: (event: Event) => void | null = null;
|
39
40
|
|
40
|
-
// Private properties
|
41
|
-
#browserFrame: IBrowserFrame;
|
42
|
-
|
43
41
|
/**
|
44
42
|
* Constructor.
|
45
|
-
*
|
46
|
-
* @param browserFrame Browser frame.
|
47
43
|
*/
|
48
|
-
constructor(
|
44
|
+
constructor() {
|
49
45
|
super();
|
50
46
|
|
51
|
-
this.#browserFrame = browserFrame;
|
52
|
-
|
53
47
|
ClassMethodBinder.bindMethods(
|
54
48
|
this,
|
55
49
|
[EventTarget, Node, Element, HTMLElement, HTMLFormElement],
|
@@ -576,7 +570,11 @@ export default class HTMLFormElement extends HTMLElement {
|
|
576
570
|
const action = submitter?.hasAttribute('formaction')
|
577
571
|
? submitter?.formAction || this.action
|
578
572
|
: this.action;
|
579
|
-
const browserFrame = this
|
573
|
+
const browserFrame = new WindowBrowserContext(this[PropertySymbol.window]).getBrowserFrame();
|
574
|
+
|
575
|
+
if (!browserFrame) {
|
576
|
+
return;
|
577
|
+
}
|
580
578
|
|
581
579
|
if (!action) {
|
582
580
|
// The URL is invalid when the action is empty.
|
@@ -10,9 +10,9 @@ import Attr from '../attr/Attr.js';
|
|
10
10
|
import BrowserFrameFactory from '../../browser/utilities/BrowserFrameFactory.js';
|
11
11
|
import BrowserFrameURL from '../../browser/utilities/BrowserFrameURL.js';
|
12
12
|
import WindowErrorUtility from '../../window/WindowErrorUtility.js';
|
13
|
-
import DOMException from '../../exception/DOMException.js';
|
14
13
|
import DOMExceptionNameEnum from '../../exception/DOMExceptionNameEnum.js';
|
15
14
|
import IRequestReferrerPolicy from '../../fetch/types/IRequestReferrerPolicy.js';
|
15
|
+
import WindowBrowserContext from '../../window/WindowBrowserContext.js';
|
16
16
|
|
17
17
|
const SANDBOX_FLAGS = [
|
18
18
|
'allow-downloads',
|
@@ -51,21 +51,9 @@ export default class HTMLIFrameElement extends HTMLElement {
|
|
51
51
|
#contentWindowContainer: { window: BrowserWindow | CrossOriginBrowserWindow | null } = {
|
52
52
|
window: null
|
53
53
|
};
|
54
|
-
#
|
55
|
-
#browserChildFrame: IBrowserFrame;
|
54
|
+
#iframe: IBrowserFrame;
|
56
55
|
#loadedSrcdoc: string | null = null;
|
57
56
|
|
58
|
-
/**
|
59
|
-
* Constructor.
|
60
|
-
*
|
61
|
-
* @param browserFrame Browser frame.
|
62
|
-
*/
|
63
|
-
constructor(browserFrame) {
|
64
|
-
super();
|
65
|
-
|
66
|
-
this.#browserFrame = browserFrame;
|
67
|
-
}
|
68
|
-
|
69
57
|
/**
|
70
58
|
* Returns source.
|
71
59
|
*
|
@@ -306,7 +294,7 @@ export default class HTMLIFrameElement extends HTMLElement {
|
|
306
294
|
* @param vconsole
|
307
295
|
*/
|
308
296
|
#validateSandboxFlags(): void {
|
309
|
-
const window = this[PropertySymbol.
|
297
|
+
const window = this[PropertySymbol.window];
|
310
298
|
const invalidFlags: string[] = [];
|
311
299
|
|
312
300
|
for (const token of this.sandbox) {
|
@@ -338,7 +326,12 @@ export default class HTMLIFrameElement extends HTMLElement {
|
|
338
326
|
}
|
339
327
|
|
340
328
|
const srcdoc = this.getAttribute('srcdoc');
|
341
|
-
const window = this[PropertySymbol.
|
329
|
+
const window = this[PropertySymbol.window];
|
330
|
+
const browserFrame = new WindowBrowserContext(window).getBrowserFrame();
|
331
|
+
|
332
|
+
if (!browserFrame) {
|
333
|
+
return;
|
334
|
+
}
|
342
335
|
|
343
336
|
if (srcdoc !== null) {
|
344
337
|
if (this.#loadedSrcdoc === srcdoc) {
|
@@ -347,20 +340,20 @@ export default class HTMLIFrameElement extends HTMLElement {
|
|
347
340
|
|
348
341
|
this.#unloadPage();
|
349
342
|
|
350
|
-
this.#
|
351
|
-
this.#
|
343
|
+
this.#iframe = BrowserFrameFactory.createChildFrame(browserFrame);
|
344
|
+
this.#iframe.url = 'about:srcdoc';
|
352
345
|
|
353
|
-
this.#contentWindowContainer.window = this.#
|
346
|
+
this.#contentWindowContainer.window = this.#iframe.window;
|
354
347
|
|
355
|
-
this.#
|
356
|
-
this.#
|
348
|
+
this.#iframe.window[PropertySymbol.top] = browserFrame.window.top;
|
349
|
+
this.#iframe.window[PropertySymbol.parent] = browserFrame.window;
|
357
350
|
|
358
|
-
this.#
|
359
|
-
this.#
|
351
|
+
this.#iframe.window.document.open();
|
352
|
+
this.#iframe.window.document.write(srcdoc);
|
360
353
|
|
361
354
|
this.#loadedSrcdoc = srcdoc;
|
362
355
|
|
363
|
-
this[PropertySymbol.
|
356
|
+
this[PropertySymbol.window].requestAnimationFrame(() =>
|
364
357
|
this.dispatchEvent(new Event('load'))
|
365
358
|
);
|
366
359
|
return;
|
@@ -370,20 +363,17 @@ export default class HTMLIFrameElement extends HTMLElement {
|
|
370
363
|
this.#unloadPage();
|
371
364
|
}
|
372
365
|
|
373
|
-
const originURL =
|
374
|
-
const targetURL = BrowserFrameURL.getRelativeURL(
|
366
|
+
const originURL = browserFrame.window.location;
|
367
|
+
const targetURL = BrowserFrameURL.getRelativeURL(browserFrame, this.src);
|
375
368
|
|
376
|
-
if (
|
377
|
-
this.#browserChildFrame &&
|
378
|
-
this.#browserChildFrame.window.location.href === targetURL.href
|
379
|
-
) {
|
369
|
+
if (this.#iframe && this.#iframe.window.location.href === targetURL.href) {
|
380
370
|
return;
|
381
371
|
}
|
382
372
|
|
383
|
-
if (
|
373
|
+
if (browserFrame.page.context.browser.settings.disableIframePageLoading) {
|
384
374
|
WindowErrorUtility.dispatchError(
|
385
375
|
this,
|
386
|
-
new DOMException(
|
376
|
+
new window.DOMException(
|
387
377
|
`Failed to load iframe page "${targetURL.href}". Iframe page loading is disabled.`,
|
388
378
|
DOMExceptionNameEnum.notSupportedError
|
389
379
|
)
|
@@ -395,13 +385,12 @@ export default class HTMLIFrameElement extends HTMLElement {
|
|
395
385
|
const isSameOrigin = originURL.origin === targetURL.origin || targetURL.origin === 'null';
|
396
386
|
const parentWindow = isSameOrigin ? window : new CrossOriginBrowserWindow(window);
|
397
387
|
|
398
|
-
this.#
|
399
|
-
this.#browserChildFrame ?? BrowserFrameFactory.createChildFrame(this.#browserFrame);
|
388
|
+
this.#iframe = this.#iframe ?? BrowserFrameFactory.createChildFrame(browserFrame);
|
400
389
|
|
401
|
-
this.#
|
402
|
-
this.#
|
390
|
+
this.#iframe.window[PropertySymbol.top] = <BrowserWindow>parentWindow;
|
391
|
+
this.#iframe.window[PropertySymbol.parent] = <BrowserWindow>parentWindow;
|
403
392
|
|
404
|
-
this.#
|
393
|
+
this.#iframe
|
405
394
|
.goto(targetURL.href, {
|
406
395
|
referrer: originURL.origin,
|
407
396
|
referrerPolicy: <IRequestReferrerPolicy>this.referrerPolicy
|
@@ -410,17 +399,17 @@ export default class HTMLIFrameElement extends HTMLElement {
|
|
410
399
|
.catch((error) => WindowErrorUtility.dispatchError(this, error));
|
411
400
|
|
412
401
|
this.#contentWindowContainer.window = isSameOrigin
|
413
|
-
? this.#
|
414
|
-
: new CrossOriginBrowserWindow(this.#
|
402
|
+
? this.#iframe.window
|
403
|
+
: new CrossOriginBrowserWindow(this.#iframe.window, window);
|
415
404
|
}
|
416
405
|
|
417
406
|
/**
|
418
407
|
* Unloads an iframe page.
|
419
408
|
*/
|
420
409
|
#unloadPage(): void {
|
421
|
-
if (this.#
|
422
|
-
BrowserFrameFactory.destroyFrame(this.#
|
423
|
-
this.#
|
410
|
+
if (this.#iframe) {
|
411
|
+
BrowserFrameFactory.destroyFrame(this.#iframe);
|
412
|
+
this.#iframe = null;
|
424
413
|
}
|
425
414
|
this.#contentWindowContainer.window = null;
|
426
415
|
this.#loadedSrcdoc = null;
|
@@ -1,4 +1,6 @@
|
|
1
1
|
import HTMLImageElement from './HTMLImageElement.js';
|
2
|
+
import * as PropertySymbol from '../../PropertySymbol.js';
|
3
|
+
import NamespaceURI from '../../config/NamespaceURI.js';
|
2
4
|
|
3
5
|
/**
|
4
6
|
* Image as constructor.
|
@@ -7,6 +9,10 @@ import HTMLImageElement from './HTMLImageElement.js';
|
|
7
9
|
* https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/Image.
|
8
10
|
*/
|
9
11
|
export default class Image extends HTMLImageElement {
|
12
|
+
public [PropertySymbol.tagName] = 'IMG';
|
13
|
+
public [PropertySymbol.localName] = 'img';
|
14
|
+
public [PropertySymbol.namespaceURI] = NamespaceURI.html;
|
15
|
+
|
10
16
|
/**
|
11
17
|
* Constructor.
|
12
18
|
*
|