happy-dom 8.6.0 → 8.7.1
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/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-input-element/HTMLInputElement.js +2 -0
- package/lib/nodes/html-input-element/HTMLInputElement.js.map +1 -1
- 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/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-input-element/HTMLInputElement.ts +2 -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.d.ts
CHANGED
@@ -28,6 +28,7 @@ import HTMLMediaElement from '../nodes/html-media-element/HTMLMediaElement';
|
|
28
28
|
import HTMLAudioElement from '../nodes/html-audio-element/HTMLAudioElement';
|
29
29
|
import HTMLVideoElement from '../nodes/html-video-element/HTMLVideoElement';
|
30
30
|
import HTMLBaseElement from '../nodes/html-base-element/HTMLBaseElement';
|
31
|
+
import HTMLIFrameElement from '../nodes/html-iframe-element/HTMLIFrameElement';
|
31
32
|
import HTMLDialogElement from '../nodes/html-dialog-element/HTMLDialogElement';
|
32
33
|
import SVGSVGElement from '../nodes/svg-element/SVGSVGElement';
|
33
34
|
import SVGElement from '../nodes/svg-element/SVGElement';
|
@@ -41,9 +42,11 @@ import Event from '../event/Event';
|
|
41
42
|
import CustomEvent from '../event/events/CustomEvent';
|
42
43
|
import AnimationEvent from '../event/events/AnimationEvent';
|
43
44
|
import KeyboardEvent from '../event/events/KeyboardEvent';
|
45
|
+
import MessageEvent from '../event/events/MessageEvent';
|
44
46
|
import ProgressEvent from '../event/events/ProgressEvent';
|
45
47
|
import MediaQueryListEvent from '../event/events/MediaQueryListEvent';
|
46
48
|
import EventTarget from '../event/EventTarget';
|
49
|
+
import MessagePort from '../event/MessagePort';
|
47
50
|
import { URL, URLSearchParams } from 'url';
|
48
51
|
import Location from '../location/Location';
|
49
52
|
import MutationObserver from '../mutation-observer/MutationObserver';
|
@@ -102,9 +105,9 @@ import Attr from '../nodes/attr/Attr';
|
|
102
105
|
import NamedNodeMap from '../named-node-map/NamedNodeMap';
|
103
106
|
import IElement from '../nodes/element/IElement';
|
104
107
|
import ProcessingInstruction from '../nodes/processing-instruction/ProcessingInstruction';
|
105
|
-
import IHappyDOMSettings from './IHappyDOMSettings';
|
106
108
|
import RequestInfo from '../fetch/RequestInfo';
|
107
109
|
import FileList from '../nodes/html-input-element/FileList';
|
110
|
+
import IHappyDOMOptions from './IHappyDOMOptions';
|
108
111
|
/**
|
109
112
|
* Browser window.
|
110
113
|
*
|
@@ -123,6 +126,7 @@ export default class Window extends EventTarget implements IWindow {
|
|
123
126
|
disableJavaScriptEvaluation: boolean;
|
124
127
|
disableJavaScriptFileLoading: boolean;
|
125
128
|
disableCSSFileLoading: boolean;
|
129
|
+
disableIframePageLoading: boolean;
|
126
130
|
enableFileSystemHttpRequests: boolean;
|
127
131
|
};
|
128
132
|
};
|
@@ -145,6 +149,7 @@ export default class Window extends EventTarget implements IWindow {
|
|
145
149
|
readonly HTMLAudioElement: typeof HTMLAudioElement;
|
146
150
|
readonly HTMLVideoElement: typeof HTMLVideoElement;
|
147
151
|
readonly HTMLBaseElement: typeof HTMLBaseElement;
|
152
|
+
readonly HTMLIFrameElement: typeof HTMLIFrameElement;
|
148
153
|
readonly HTMLDialogElement: typeof HTMLDialogElement;
|
149
154
|
readonly Attr: typeof Attr;
|
150
155
|
readonly NamedNodeMap: typeof NamedNodeMap;
|
@@ -187,6 +192,7 @@ export default class Window extends EventTarget implements IWindow {
|
|
187
192
|
readonly CustomEvent: typeof CustomEvent;
|
188
193
|
readonly AnimationEvent: typeof AnimationEvent;
|
189
194
|
readonly KeyboardEvent: typeof KeyboardEvent;
|
195
|
+
readonly MessageEvent: typeof MessageEvent;
|
190
196
|
readonly MouseEvent: typeof MouseEvent;
|
191
197
|
readonly PointerEvent: typeof PointerEvent;
|
192
198
|
readonly FocusEvent: typeof FocusEvent;
|
@@ -197,6 +203,7 @@ export default class Window extends EventTarget implements IWindow {
|
|
197
203
|
readonly ProgressEvent: typeof ProgressEvent;
|
198
204
|
readonly MediaQueryListEvent: typeof MediaQueryListEvent;
|
199
205
|
readonly EventTarget: typeof EventTarget;
|
206
|
+
readonly MessagePort: typeof MessagePort;
|
200
207
|
readonly DataTransfer: typeof DataTransfer;
|
201
208
|
readonly DataTransferItem: typeof DataTransferItem;
|
202
209
|
readonly DataTransferItemList: typeof DataTransferItemList;
|
@@ -344,12 +351,7 @@ export default class Window extends EventTarget implements IWindow {
|
|
344
351
|
* @param [options.url] URL.
|
345
352
|
* @param [options.settings] Settings.
|
346
353
|
*/
|
347
|
-
constructor(options?:
|
348
|
-
innerWidth?: number;
|
349
|
-
innerHeight?: number;
|
350
|
-
url?: string;
|
351
|
-
settings?: IHappyDOMSettings;
|
352
|
-
});
|
354
|
+
constructor(options?: IHappyDOMOptions);
|
353
355
|
/**
|
354
356
|
* The number of pixels that the document is currently scrolled horizontally
|
355
357
|
*
|
@@ -506,6 +508,14 @@ export default class Window extends EventTarget implements IWindow {
|
|
506
508
|
* @returns An ASCII string containing decoded data from encodedData.
|
507
509
|
*/
|
508
510
|
atob(data: unknown): string;
|
511
|
+
/**
|
512
|
+
* 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.
|
513
|
+
*
|
514
|
+
* @param message Message.
|
515
|
+
* @param [targetOrigin=*] Target origin.
|
516
|
+
* @param _transfer Transfer. Not implemented.
|
517
|
+
*/
|
518
|
+
postMessage(message: unknown, targetOrigin?: string, _transfer?: unknown[]): void;
|
509
519
|
/**
|
510
520
|
* Setup of VM context.
|
511
521
|
*/
|
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,
|
@@ -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
|
+
}
|