happy-dom 8.5.0 → 8.7.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/README.md +11 -1
- package/lib/config/ElementTag.d.ts +2 -1
- package/lib/config/ElementTag.js +2 -1
- package/lib/config/ElementTag.js.map +1 -1
- package/lib/config/NonImplemenetedElementClasses.js +0 -1
- package/lib/config/NonImplemenetedElementClasses.js.map +1 -1
- package/lib/event/EventTarget.d.ts +7 -1
- package/lib/event/EventTarget.js +13 -2
- package/lib/event/EventTarget.js.map +1 -1
- package/lib/event/IEventListenerOptions.d.ts +6 -0
- package/lib/event/IEventListenerOptions.js +3 -0
- package/lib/event/IEventListenerOptions.js.map +1 -0
- package/lib/event/IMessagePort.d.ts +23 -0
- package/lib/event/IMessagePort.js +3 -0
- package/lib/event/IMessagePort.js.map +1 -0
- package/lib/event/MessagePort.d.ts +24 -0
- package/lib/event/MessagePort.js +36 -0
- package/lib/event/MessagePort.js.map +1 -0
- package/lib/event/events/IMessageEventInit.d.ts +10 -0
- package/lib/event/events/IMessageEventInit.js +3 -0
- package/lib/event/events/IMessageEventInit.js.map +1 -0
- package/lib/event/events/MessageEvent.d.ts +23 -0
- package/lib/event/events/MessageEvent.js +34 -0
- package/lib/event/events/MessageEvent.js.map +1 -0
- package/lib/index.d.ts +3 -1
- package/lib/index.js +3 -1
- package/lib/index.js.map +1 -1
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts +126 -0
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.js +246 -0
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.js.map +1 -0
- package/lib/nodes/html-iframe-element/IFrameCrossOriginWindow.d.ts +29 -0
- package/lib/nodes/html-iframe-element/IFrameCrossOriginWindow.js +47 -0
- package/lib/nodes/html-iframe-element/IFrameCrossOriginWindow.js.map +1 -0
- package/lib/nodes/html-iframe-element/IHTMLIFrameElement.d.ts +24 -0
- package/lib/nodes/html-iframe-element/IHTMLIFrameElement.js +3 -0
- package/lib/nodes/html-iframe-element/IHTMLIFrameElement.js.map +1 -0
- package/lib/nodes/html-link-element/HTMLLinkElement.js +2 -1
- package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
- package/lib/nodes/html-script-element/HTMLScriptElement.js +1 -1
- package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
- package/lib/window/IHappyDOMOptions.d.ts +15 -0
- package/lib/window/IHappyDOMOptions.js +3 -0
- package/lib/window/IHappyDOMOptions.js.map +1 -0
- package/lib/window/IHappyDOMSettings.d.ts +1 -0
- package/lib/window/IWindow.d.ts +13 -0
- package/lib/window/Window.d.ts +17 -7
- package/lib/window/Window.js +33 -0
- package/lib/window/Window.js.map +1 -1
- package/package.json +1 -1
- package/src/config/ElementTag.ts +2 -1
- package/src/config/NonImplemenetedElementClasses.ts +0 -1
- package/src/event/EventTarget.ts +24 -2
- package/src/event/IEventListenerOptions.ts +8 -0
- package/src/event/IMessagePort.ts +26 -0
- package/src/event/MessagePort.ts +33 -0
- package/src/event/events/IMessageEventInit.ts +11 -0
- package/src/event/events/MessageEvent.ts +32 -0
- package/src/index.ts +4 -0
- package/src/nodes/html-iframe-element/HTMLIFrameElement.ts +266 -0
- package/src/nodes/html-iframe-element/IFrameCrossOriginWindow.ts +60 -0
- package/src/nodes/html-iframe-element/IHTMLIFrameElement.ts +27 -0
- package/src/nodes/html-link-element/HTMLLinkElement.ts +2 -1
- package/src/nodes/html-script-element/HTMLScriptElement.ts +2 -2
- package/src/window/IHappyDOMOptions.ts +15 -0
- package/src/window/IHappyDOMSettings.ts +1 -0
- package/src/window/IWindow.ts +14 -0
- package/src/window/Window.ts +46 -7
package/lib/window/Window.js
CHANGED
@@ -53,6 +53,7 @@ const HTMLMediaElement_1 = __importDefault(require("../nodes/html-media-element/
|
|
53
53
|
const HTMLAudioElement_1 = __importDefault(require("../nodes/html-audio-element/HTMLAudioElement"));
|
54
54
|
const HTMLVideoElement_1 = __importDefault(require("../nodes/html-video-element/HTMLVideoElement"));
|
55
55
|
const HTMLBaseElement_1 = __importDefault(require("../nodes/html-base-element/HTMLBaseElement"));
|
56
|
+
const HTMLIFrameElement_1 = __importDefault(require("../nodes/html-iframe-element/HTMLIFrameElement"));
|
56
57
|
const HTMLDialogElement_1 = __importDefault(require("../nodes/html-dialog-element/HTMLDialogElement"));
|
57
58
|
const SVGSVGElement_1 = __importDefault(require("../nodes/svg-element/SVGSVGElement"));
|
58
59
|
const SVGElement_1 = __importDefault(require("../nodes/svg-element/SVGElement"));
|
@@ -67,9 +68,11 @@ const Event_1 = __importDefault(require("../event/Event"));
|
|
67
68
|
const CustomEvent_1 = __importDefault(require("../event/events/CustomEvent"));
|
68
69
|
const AnimationEvent_1 = __importDefault(require("../event/events/AnimationEvent"));
|
69
70
|
const KeyboardEvent_1 = __importDefault(require("../event/events/KeyboardEvent"));
|
71
|
+
const MessageEvent_1 = __importDefault(require("../event/events/MessageEvent"));
|
70
72
|
const ProgressEvent_1 = __importDefault(require("../event/events/ProgressEvent"));
|
71
73
|
const MediaQueryListEvent_1 = __importDefault(require("../event/events/MediaQueryListEvent"));
|
72
74
|
const EventTarget_1 = __importDefault(require("../event/EventTarget"));
|
75
|
+
const MessagePort_1 = __importDefault(require("../event/MessagePort"));
|
73
76
|
const url_1 = require("url");
|
74
77
|
const Location_1 = __importDefault(require("../location/Location"));
|
75
78
|
const NonImplementedEventTypes_1 = __importDefault(require("../event/NonImplementedEventTypes"));
|
@@ -134,6 +137,7 @@ const Attr_1 = __importDefault(require("../nodes/attr/Attr"));
|
|
134
137
|
const NamedNodeMap_1 = __importDefault(require("../named-node-map/NamedNodeMap"));
|
135
138
|
const ProcessingInstruction_1 = __importDefault(require("../nodes/processing-instruction/ProcessingInstruction"));
|
136
139
|
const FileList_1 = __importDefault(require("../nodes/html-input-element/FileList"));
|
140
|
+
const DOMExceptionNameEnum_1 = __importDefault(require("../exception/DOMExceptionNameEnum"));
|
137
141
|
const ORIGINAL_SET_TIMEOUT = setTimeout;
|
138
142
|
const ORIGINAL_CLEAR_TIMEOUT = clearTimeout;
|
139
143
|
const ORIGINAL_SET_INTERVAL = setInterval;
|
@@ -191,6 +195,7 @@ class Window extends EventTarget_1.default {
|
|
191
195
|
disableJavaScriptEvaluation: false,
|
192
196
|
disableJavaScriptFileLoading: false,
|
193
197
|
disableCSSFileLoading: false,
|
198
|
+
disableIframePageLoading: false,
|
194
199
|
enableFileSystemHttpRequests: false
|
195
200
|
}
|
196
201
|
};
|
@@ -214,6 +219,7 @@ class Window extends EventTarget_1.default {
|
|
214
219
|
this.HTMLAudioElement = HTMLAudioElement_1.default;
|
215
220
|
this.HTMLVideoElement = HTMLVideoElement_1.default;
|
216
221
|
this.HTMLBaseElement = HTMLBaseElement_1.default;
|
222
|
+
this.HTMLIFrameElement = HTMLIFrameElement_1.default;
|
217
223
|
this.HTMLDialogElement = HTMLDialogElement_1.default;
|
218
224
|
this.Attr = Attr_1.default;
|
219
225
|
this.NamedNodeMap = NamedNodeMap_1.default;
|
@@ -239,6 +245,7 @@ class Window extends EventTarget_1.default {
|
|
239
245
|
this.CustomEvent = CustomEvent_1.default;
|
240
246
|
this.AnimationEvent = AnimationEvent_1.default;
|
241
247
|
this.KeyboardEvent = KeyboardEvent_1.default;
|
248
|
+
this.MessageEvent = MessageEvent_1.default;
|
242
249
|
this.MouseEvent = MouseEvent_1.default;
|
243
250
|
this.PointerEvent = PointerEvent_1.default;
|
244
251
|
this.FocusEvent = FocusEvent_1.default;
|
@@ -249,6 +256,7 @@ class Window extends EventTarget_1.default {
|
|
249
256
|
this.ProgressEvent = ProgressEvent_1.default;
|
250
257
|
this.MediaQueryListEvent = MediaQueryListEvent_1.default;
|
251
258
|
this.EventTarget = EventTarget_1.default;
|
259
|
+
this.MessagePort = MessagePort_1.default;
|
252
260
|
this.DataTransfer = DataTransfer_1.default;
|
253
261
|
this.DataTransferItem = DataTransferItem_1.default;
|
254
262
|
this.DataTransferItemList = DataTransferItemList_1.default;
|
@@ -601,6 +609,31 @@ class Window extends EventTarget_1.default {
|
|
601
609
|
atob(data) {
|
602
610
|
return Base64_1.default.atob(data);
|
603
611
|
}
|
612
|
+
/**
|
613
|
+
* Safely enables cross-origin communication between Window objects; e.g., between a page and a pop-up that it spawned, or between a page and an iframe embedded within it.
|
614
|
+
*
|
615
|
+
* @param message Message.
|
616
|
+
* @param [targetOrigin=*] Target origin.
|
617
|
+
* @param _transfer Transfer. Not implemented.
|
618
|
+
*/
|
619
|
+
postMessage(message, targetOrigin = '*', _transfer) {
|
620
|
+
// TODO: Implement transfer.
|
621
|
+
if (targetOrigin && targetOrigin !== '*' && this.location.origin !== targetOrigin) {
|
622
|
+
throw new DOMException_1.default(`Failed to execute 'postMessage' on 'Window': The target origin provided ('${targetOrigin}') does not match the recipient window\'s origin ('${this.location.origin}').`, DOMExceptionNameEnum_1.default.securityError);
|
623
|
+
}
|
624
|
+
try {
|
625
|
+
JSON.stringify(message);
|
626
|
+
}
|
627
|
+
catch (error) {
|
628
|
+
throw new DOMException_1.default(`Failed to execute 'postMessage' on 'Window': The provided message cannot be serialized.`, DOMExceptionNameEnum_1.default.invalidStateError);
|
629
|
+
}
|
630
|
+
this.dispatchEvent(new MessageEvent_1.default('message', {
|
631
|
+
data: message,
|
632
|
+
origin: this.parent.location.origin,
|
633
|
+
source: this.parent,
|
634
|
+
lastEventId: ''
|
635
|
+
}));
|
636
|
+
}
|
604
637
|
/**
|
605
638
|
* Setup of VM context.
|
606
639
|
*/
|
package/lib/window/Window.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Window.js","sourceRoot":"","sources":["../../src/window/Window.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Window.js","sourceRoot":"","sources":["../../src/window/Window.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/config/ElementTag.ts
CHANGED
@@ -21,6 +21,7 @@ import HTMLButtonElement from '../nodes/html-button-element/HTMLButtonElement';
|
|
21
21
|
import HTMLAudioElement from '../nodes/html-audio-element/HTMLAudioElement';
|
22
22
|
import HTMLVideoElement from '../nodes/html-video-element/HTMLVideoElement';
|
23
23
|
import HTMLAnchorElement from '../nodes/html-anchor-element/HTMLAnchorElement';
|
24
|
+
import HTMLIFrameElement from '../nodes/html-iframe-element/HTMLIFrameElement';
|
24
25
|
|
25
26
|
export default {
|
26
27
|
A: HTMLAnchorElement,
|
@@ -94,7 +95,7 @@ export default {
|
|
94
95
|
HR: HTMLElement,
|
95
96
|
HTML: HTMLElement,
|
96
97
|
I: HTMLElement,
|
97
|
-
IFRAME:
|
98
|
+
IFRAME: HTMLIFrameElement,
|
98
99
|
INS: HTMLElement,
|
99
100
|
KBD: HTMLElement,
|
100
101
|
LEGEND: HTMLElement,
|
package/src/event/EventTarget.ts
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
import IEventListener from './IEventListener';
|
2
2
|
import Event from './Event';
|
3
3
|
import IEventTarget from './IEventTarget';
|
4
|
+
import IEventListenerOptions from './IEventListenerOptions';
|
4
5
|
|
5
6
|
/**
|
6
7
|
* Handles events.
|
@@ -9,16 +10,28 @@ export default abstract class EventTarget implements IEventTarget {
|
|
9
10
|
public readonly _listeners: {
|
10
11
|
[k: string]: (((event: Event) => void) | IEventListener)[];
|
11
12
|
} = {};
|
13
|
+
public readonly _listenerOptions: {
|
14
|
+
[k: string]: (IEventListenerOptions | null)[];
|
15
|
+
} = {};
|
12
16
|
|
13
17
|
/**
|
14
18
|
* Adds an event listener.
|
15
19
|
*
|
16
20
|
* @param type Event type.
|
17
21
|
* @param listener Listener.
|
22
|
+
* @param options An object that specifies characteristics about the event listener.(currently only once)
|
23
|
+
* @param options.once
|
18
24
|
*/
|
19
|
-
public addEventListener(
|
25
|
+
public addEventListener(
|
26
|
+
type: string,
|
27
|
+
listener: ((event: Event) => void) | IEventListener,
|
28
|
+
options?: IEventListenerOptions
|
29
|
+
): void {
|
20
30
|
this._listeners[type] = this._listeners[type] || [];
|
31
|
+
this._listenerOptions[type] = this._listenerOptions[type] || [];
|
32
|
+
|
21
33
|
this._listeners[type].push(listener);
|
34
|
+
this._listenerOptions[type].push(options || null);
|
22
35
|
}
|
23
36
|
|
24
37
|
/**
|
@@ -35,6 +48,7 @@ export default abstract class EventTarget implements IEventTarget {
|
|
35
48
|
const index = this._listeners[type].indexOf(listener);
|
36
49
|
if (index !== -1) {
|
37
50
|
this._listeners[type].splice(index, 1);
|
51
|
+
this._listenerOptions[type].splice(index, 1);
|
38
52
|
}
|
39
53
|
}
|
40
54
|
}
|
@@ -59,12 +73,20 @@ export default abstract class EventTarget implements IEventTarget {
|
|
59
73
|
}
|
60
74
|
|
61
75
|
if (this._listeners[event.type]) {
|
62
|
-
for (
|
76
|
+
for (let i = 0, max = this._listeners[event.type].length; i < max; i++) {
|
77
|
+
const listener = this._listeners[event.type][i];
|
78
|
+
const options = this._listenerOptions[event.type][i];
|
79
|
+
|
63
80
|
if ((<IEventListener>listener).handleEvent) {
|
64
81
|
(<IEventListener>listener).handleEvent(event);
|
65
82
|
} else {
|
66
83
|
(<(event: Event) => void>listener).call(this, event);
|
67
84
|
}
|
85
|
+
|
86
|
+
if (options?.once) {
|
87
|
+
this.removeEventListener(event.type, listener);
|
88
|
+
}
|
89
|
+
|
68
90
|
if (event._immediatePropagationStopped) {
|
69
91
|
return !(event.cancelable && event.defaultPrevented);
|
70
92
|
}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import IEventTarget from './IEventTarget';
|
2
|
+
|
3
|
+
/**
|
4
|
+
* Message port.
|
5
|
+
*
|
6
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/MessagePort
|
7
|
+
*/
|
8
|
+
export default interface IMessagePort extends IEventTarget {
|
9
|
+
/**
|
10
|
+
* Sends a message from the port, and optionally, transfers ownership of objects to other browsing contexts.
|
11
|
+
*
|
12
|
+
* @param type Event type.
|
13
|
+
* @param listener Listener.
|
14
|
+
*/
|
15
|
+
postMessage(message: unknown, transerList: unknown[]): void;
|
16
|
+
|
17
|
+
/**
|
18
|
+
* Starts the sending of messages queued on the port.
|
19
|
+
*/
|
20
|
+
start(): void;
|
21
|
+
|
22
|
+
/**
|
23
|
+
* Disconnects the port, so it is no longer active. This stops the flow of messages to that port.
|
24
|
+
*/
|
25
|
+
close(): void;
|
26
|
+
}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
import EventTarget from './EventTarget';
|
2
|
+
import IMessagePort from './IMessagePort';
|
3
|
+
|
4
|
+
/**
|
5
|
+
* Message port.
|
6
|
+
*
|
7
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/MessagePort
|
8
|
+
*/
|
9
|
+
export default abstract class MessagePort extends EventTarget implements IMessagePort {
|
10
|
+
/**
|
11
|
+
* Sends a message from the port, and optionally, transfers ownership of objects to other browsing contexts.
|
12
|
+
*
|
13
|
+
* @param _message Message.
|
14
|
+
* @param _transerList Transfer list.
|
15
|
+
*/
|
16
|
+
public postMessage(_message: unknown, _transerList: unknown[]): void {
|
17
|
+
// TODO: Implement
|
18
|
+
}
|
19
|
+
|
20
|
+
/**
|
21
|
+
* Starts the sending of messages queued on the port.
|
22
|
+
*/
|
23
|
+
public start(): void {
|
24
|
+
// TODO: Implement
|
25
|
+
}
|
26
|
+
|
27
|
+
/**
|
28
|
+
* Disconnects the port, so it is no longer active. This stops the flow of messages to that port.
|
29
|
+
*/
|
30
|
+
public close(): void {
|
31
|
+
// TODO: Implement
|
32
|
+
}
|
33
|
+
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import IEventInit from '../IEventInit';
|
2
|
+
import IWindow from '../../window/IWindow';
|
3
|
+
import IMessagePort from '../IMessagePort';
|
4
|
+
|
5
|
+
export default interface IMessageEventInit extends IEventInit {
|
6
|
+
data?: unknown | null;
|
7
|
+
origin?: string;
|
8
|
+
lastEventId?: string;
|
9
|
+
source?: IWindow | null;
|
10
|
+
ports?: IMessagePort[];
|
11
|
+
}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import IWindow from '../../window/IWindow';
|
2
|
+
import Event from '../Event';
|
3
|
+
import IMessagePort from '../IMessagePort';
|
4
|
+
import IMessageEventInit from './IMessageEventInit';
|
5
|
+
|
6
|
+
/**
|
7
|
+
* Message event.
|
8
|
+
*
|
9
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/MessageEvent
|
10
|
+
*/
|
11
|
+
export default class MessageEvent extends Event {
|
12
|
+
public data?: unknown | null = null;
|
13
|
+
public origin?: string = '';
|
14
|
+
public lastEventId?: string = '';
|
15
|
+
public source?: IWindow | null = null;
|
16
|
+
public ports?: IMessagePort[] = [];
|
17
|
+
|
18
|
+
/**
|
19
|
+
* Constructor.
|
20
|
+
*
|
21
|
+
* @param type Event type.
|
22
|
+
* @param [eventInit] Event init.
|
23
|
+
*/
|
24
|
+
constructor(type: string, eventInit?: IMessageEventInit) {
|
25
|
+
super(type, eventInit);
|
26
|
+
this.data = eventInit?.data !== undefined ? eventInit.data : null;
|
27
|
+
this.origin = eventInit?.origin || '';
|
28
|
+
this.lastEventId = eventInit?.lastEventId || '';
|
29
|
+
this.source = eventInit?.source || null;
|
30
|
+
this.ports = eventInit?.ports || [];
|
31
|
+
}
|
32
|
+
}
|
package/src/index.ts
CHANGED
@@ -82,6 +82,8 @@ import HTMLVideoElement from './nodes/html-video-element/HTMLVideoElement';
|
|
82
82
|
import IHTMLVideoElement from './nodes/html-video-element/IHTMLVideoElement';
|
83
83
|
import HTMLBaseElement from './nodes/html-base-element/HTMLBaseElement';
|
84
84
|
import IHTMLBaseElement from './nodes/html-base-element/IHTMLBaseElement';
|
85
|
+
import HTMLIFrameElement from './nodes/html-iframe-element/HTMLIFrameElement';
|
86
|
+
import IHTMLIFrameElement from './nodes/html-iframe-element/IHTMLIFrameElement';
|
85
87
|
import SVGElement from './nodes/svg-element/SVGElement';
|
86
88
|
import ISVGElement from './nodes/svg-element/ISVGElement';
|
87
89
|
import SVGGraphicsElement from './nodes/svg-element/SVGGraphicsElement';
|
@@ -211,6 +213,8 @@ export {
|
|
211
213
|
IHTMLVideoElement,
|
212
214
|
HTMLBaseElement,
|
213
215
|
IHTMLBaseElement,
|
216
|
+
HTMLIFrameElement,
|
217
|
+
IHTMLIFrameElement,
|
214
218
|
SVGElement,
|
215
219
|
ISVGElement,
|
216
220
|
SVGGraphicsElement,
|
@@ -0,0 +1,266 @@
|
|
1
|
+
import { URL } from 'url';
|
2
|
+
import Event from '../../event/Event';
|
3
|
+
import ErrorEvent from '../../event/events/ErrorEvent';
|
4
|
+
import IWindow from '../../window/IWindow';
|
5
|
+
import Window from '../../window/Window';
|
6
|
+
import IDocument from '../document/IDocument';
|
7
|
+
import HTMLElement from '../html-element/HTMLElement';
|
8
|
+
import INode from '../node/INode';
|
9
|
+
import IFrameCrossOriginWindow from './IFrameCrossOriginWindow';
|
10
|
+
import IHTMLIFrameElement from './IHTMLIFrameElement';
|
11
|
+
|
12
|
+
/**
|
13
|
+
* HTML Iframe Element.
|
14
|
+
*
|
15
|
+
* Reference:
|
16
|
+
* https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.
|
17
|
+
*/
|
18
|
+
export default class HTMLIFrameElement extends HTMLElement implements IHTMLIFrameElement {
|
19
|
+
// Events
|
20
|
+
public onload: (event: Event) => void | null = null;
|
21
|
+
public onerror: (event: Event) => void | null = null;
|
22
|
+
|
23
|
+
// Private
|
24
|
+
#contentWindow: IWindow | IFrameCrossOriginWindow | null = null;
|
25
|
+
|
26
|
+
/**
|
27
|
+
* Returns source.
|
28
|
+
*
|
29
|
+
* @returns Source.
|
30
|
+
*/
|
31
|
+
public get src(): string {
|
32
|
+
return this.getAttribute('src') || '';
|
33
|
+
}
|
34
|
+
|
35
|
+
/**
|
36
|
+
* Sets source.
|
37
|
+
*
|
38
|
+
* @param src Source.
|
39
|
+
*/
|
40
|
+
public set src(src: string) {
|
41
|
+
this.setAttribute('src', src);
|
42
|
+
}
|
43
|
+
|
44
|
+
/**
|
45
|
+
* Returns allow.
|
46
|
+
*
|
47
|
+
* @returns Allow.
|
48
|
+
*/
|
49
|
+
public get allow(): string {
|
50
|
+
return this.getAttribute('allow') || '';
|
51
|
+
}
|
52
|
+
|
53
|
+
/**
|
54
|
+
* Sets allow.
|
55
|
+
*
|
56
|
+
* @param allow Allow.
|
57
|
+
*/
|
58
|
+
public set allow(allow: string) {
|
59
|
+
this.setAttribute('allow', allow);
|
60
|
+
}
|
61
|
+
|
62
|
+
/**
|
63
|
+
* Returns height.
|
64
|
+
*
|
65
|
+
* @returns Height.
|
66
|
+
*/
|
67
|
+
public get height(): string {
|
68
|
+
return this.getAttribute('height') || '';
|
69
|
+
}
|
70
|
+
|
71
|
+
/**
|
72
|
+
* Sets height.
|
73
|
+
*
|
74
|
+
* @param height Height.
|
75
|
+
*/
|
76
|
+
public set height(height: string) {
|
77
|
+
this.setAttribute('height', height);
|
78
|
+
}
|
79
|
+
|
80
|
+
/**
|
81
|
+
* Returns width.
|
82
|
+
*
|
83
|
+
* @returns Width.
|
84
|
+
*/
|
85
|
+
public get width(): string {
|
86
|
+
return this.getAttribute('width') || '';
|
87
|
+
}
|
88
|
+
|
89
|
+
/**
|
90
|
+
* Sets width.
|
91
|
+
*
|
92
|
+
* @param width Width.
|
93
|
+
*/
|
94
|
+
public set width(width: string) {
|
95
|
+
this.setAttribute('width', width);
|
96
|
+
}
|
97
|
+
|
98
|
+
/**
|
99
|
+
* Returns name.
|
100
|
+
*
|
101
|
+
* @returns Name.
|
102
|
+
*/
|
103
|
+
public get name(): string {
|
104
|
+
return this.getAttribute('name') || '';
|
105
|
+
}
|
106
|
+
|
107
|
+
/**
|
108
|
+
* Sets name.
|
109
|
+
*
|
110
|
+
* @param name Name.
|
111
|
+
*/
|
112
|
+
public set name(name: string) {
|
113
|
+
this.setAttribute('name', name);
|
114
|
+
}
|
115
|
+
|
116
|
+
/**
|
117
|
+
* Returns sandbox.
|
118
|
+
*
|
119
|
+
* @returns Sandbox.
|
120
|
+
*/
|
121
|
+
public get sandbox(): string {
|
122
|
+
return this.getAttribute('sandbox') || '';
|
123
|
+
}
|
124
|
+
|
125
|
+
/**
|
126
|
+
* Sets sandbox.
|
127
|
+
*
|
128
|
+
* @param sandbox Sandbox.
|
129
|
+
*/
|
130
|
+
public set sandbox(sandbox: string) {
|
131
|
+
this.setAttribute('sandbox', sandbox);
|
132
|
+
}
|
133
|
+
|
134
|
+
/**
|
135
|
+
* Returns srcdoc.
|
136
|
+
*
|
137
|
+
* @returns Srcdoc.
|
138
|
+
*/
|
139
|
+
public get srcdoc(): string {
|
140
|
+
return this.getAttribute('srcdoc') || '';
|
141
|
+
}
|
142
|
+
|
143
|
+
/**
|
144
|
+
* Sets sandbox.
|
145
|
+
*
|
146
|
+
* @param srcdoc Srcdoc.
|
147
|
+
*/
|
148
|
+
public set srcdoc(srcdoc: string) {
|
149
|
+
this.setAttribute('srcdoc', srcdoc);
|
150
|
+
}
|
151
|
+
|
152
|
+
/**
|
153
|
+
* Returns content document.
|
154
|
+
*
|
155
|
+
* @returns Content document.
|
156
|
+
*/
|
157
|
+
public get contentDocument(): IDocument | null {
|
158
|
+
return (<IWindow>this.#contentWindow)?.document || null;
|
159
|
+
}
|
160
|
+
|
161
|
+
/**
|
162
|
+
* Returns content window.
|
163
|
+
*
|
164
|
+
* @returns Content window.
|
165
|
+
*/
|
166
|
+
public get contentWindow(): IWindow | IFrameCrossOriginWindow | null {
|
167
|
+
return this.#contentWindow || null;
|
168
|
+
}
|
169
|
+
|
170
|
+
/**
|
171
|
+
* @override
|
172
|
+
*/
|
173
|
+
public override _connectToNode(parentNode: INode = null): void {
|
174
|
+
const isConnected = this.isConnected;
|
175
|
+
const isParentConnected = parentNode ? parentNode.isConnected : false;
|
176
|
+
|
177
|
+
super._connectToNode(parentNode);
|
178
|
+
|
179
|
+
if (
|
180
|
+
isParentConnected &&
|
181
|
+
isConnected !== isParentConnected &&
|
182
|
+
!this.ownerDocument.defaultView.happyDOM.settings.disableIframePageLoading
|
183
|
+
) {
|
184
|
+
const src = this.src;
|
185
|
+
|
186
|
+
if (src !== null) {
|
187
|
+
const contentWindow = new (<typeof Window>this.ownerDocument.defaultView.constructor)({
|
188
|
+
url: src,
|
189
|
+
settings: {
|
190
|
+
...this.ownerDocument.defaultView.happyDOM.settings
|
191
|
+
}
|
192
|
+
});
|
193
|
+
|
194
|
+
(<IWindow>contentWindow.parent) = this.ownerDocument.defaultView;
|
195
|
+
(<IWindow>contentWindow.top) = this.ownerDocument.defaultView;
|
196
|
+
|
197
|
+
if (src === 'about:blank') {
|
198
|
+
this.#contentWindow = contentWindow;
|
199
|
+
return;
|
200
|
+
}
|
201
|
+
|
202
|
+
if (src.startsWith('javascript:')) {
|
203
|
+
this.#contentWindow = contentWindow;
|
204
|
+
this.#contentWindow.eval(src.replace('javascript:', ''));
|
205
|
+
return;
|
206
|
+
}
|
207
|
+
|
208
|
+
const originURL = this.ownerDocument.defaultView.location;
|
209
|
+
const targetURL = new URL(src, originURL);
|
210
|
+
const isCORS =
|
211
|
+
(originURL.hostname !== targetURL.hostname &&
|
212
|
+
!originURL.hostname.endsWith(targetURL.hostname)) ||
|
213
|
+
originURL.protocol !== targetURL.protocol;
|
214
|
+
|
215
|
+
const onError = (error): void => {
|
216
|
+
this.dispatchEvent(
|
217
|
+
new ErrorEvent('error', {
|
218
|
+
message: error.message,
|
219
|
+
error
|
220
|
+
})
|
221
|
+
);
|
222
|
+
this.ownerDocument.defaultView.dispatchEvent(
|
223
|
+
new ErrorEvent('error', {
|
224
|
+
message: error.message,
|
225
|
+
error
|
226
|
+
})
|
227
|
+
);
|
228
|
+
if (
|
229
|
+
!this['_listeners']['error'] &&
|
230
|
+
!this.ownerDocument.defaultView['_listeners']['error']
|
231
|
+
) {
|
232
|
+
this.ownerDocument.defaultView.console.error(error);
|
233
|
+
}
|
234
|
+
};
|
235
|
+
|
236
|
+
this.#contentWindow = null;
|
237
|
+
this.ownerDocument.defaultView
|
238
|
+
.fetch(src)
|
239
|
+
.then((response) => {
|
240
|
+
response
|
241
|
+
.text()
|
242
|
+
.then((text) => {
|
243
|
+
this.#contentWindow = isCORS
|
244
|
+
? new IFrameCrossOriginWindow(this.ownerDocument.defaultView, contentWindow)
|
245
|
+
: contentWindow;
|
246
|
+
contentWindow.document.write(text);
|
247
|
+
this.dispatchEvent(new Event('load'));
|
248
|
+
})
|
249
|
+
.catch(onError);
|
250
|
+
})
|
251
|
+
.catch(onError);
|
252
|
+
}
|
253
|
+
}
|
254
|
+
}
|
255
|
+
|
256
|
+
/**
|
257
|
+
* Clones a node.
|
258
|
+
*
|
259
|
+
* @override
|
260
|
+
* @param [deep=false] "true" to clone deep.
|
261
|
+
* @returns Cloned node.
|
262
|
+
*/
|
263
|
+
public cloneNode(deep = false): IHTMLIFrameElement {
|
264
|
+
return <IHTMLIFrameElement>super.cloneNode(deep);
|
265
|
+
}
|
266
|
+
}
|