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.

Files changed (62) hide show
  1. package/README.md +11 -1
  2. package/lib/config/ElementTag.d.ts +2 -1
  3. package/lib/config/ElementTag.js +2 -1
  4. package/lib/config/ElementTag.js.map +1 -1
  5. package/lib/config/NonImplemenetedElementClasses.js +0 -1
  6. package/lib/config/NonImplemenetedElementClasses.js.map +1 -1
  7. package/lib/event/IMessagePort.d.ts +23 -0
  8. package/lib/event/IMessagePort.js +3 -0
  9. package/lib/event/IMessagePort.js.map +1 -0
  10. package/lib/event/MessagePort.d.ts +24 -0
  11. package/lib/event/MessagePort.js +36 -0
  12. package/lib/event/MessagePort.js.map +1 -0
  13. package/lib/event/events/IMessageEventInit.d.ts +10 -0
  14. package/lib/event/events/IMessageEventInit.js +3 -0
  15. package/lib/event/events/IMessageEventInit.js.map +1 -0
  16. package/lib/event/events/MessageEvent.d.ts +23 -0
  17. package/lib/event/events/MessageEvent.js +34 -0
  18. package/lib/event/events/MessageEvent.js.map +1 -0
  19. package/lib/index.d.ts +3 -1
  20. package/lib/index.js +3 -1
  21. package/lib/index.js.map +1 -1
  22. package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts +126 -0
  23. package/lib/nodes/html-iframe-element/HTMLIFrameElement.js +246 -0
  24. package/lib/nodes/html-iframe-element/HTMLIFrameElement.js.map +1 -0
  25. package/lib/nodes/html-iframe-element/IFrameCrossOriginWindow.d.ts +29 -0
  26. package/lib/nodes/html-iframe-element/IFrameCrossOriginWindow.js +47 -0
  27. package/lib/nodes/html-iframe-element/IFrameCrossOriginWindow.js.map +1 -0
  28. package/lib/nodes/html-iframe-element/IHTMLIFrameElement.d.ts +24 -0
  29. package/lib/nodes/html-iframe-element/IHTMLIFrameElement.js +3 -0
  30. package/lib/nodes/html-iframe-element/IHTMLIFrameElement.js.map +1 -0
  31. package/lib/nodes/html-input-element/HTMLInputElement.js +2 -0
  32. package/lib/nodes/html-input-element/HTMLInputElement.js.map +1 -1
  33. package/lib/nodes/html-link-element/HTMLLinkElement.js +2 -1
  34. package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
  35. package/lib/nodes/html-script-element/HTMLScriptElement.js +1 -1
  36. package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
  37. package/lib/window/IHappyDOMOptions.d.ts +15 -0
  38. package/lib/window/IHappyDOMOptions.js +3 -0
  39. package/lib/window/IHappyDOMOptions.js.map +1 -0
  40. package/lib/window/IHappyDOMSettings.d.ts +1 -0
  41. package/lib/window/IWindow.d.ts +13 -0
  42. package/lib/window/Window.d.ts +17 -7
  43. package/lib/window/Window.js +33 -0
  44. package/lib/window/Window.js.map +1 -1
  45. package/package.json +1 -1
  46. package/src/config/ElementTag.ts +2 -1
  47. package/src/config/NonImplemenetedElementClasses.ts +0 -1
  48. package/src/event/IMessagePort.ts +26 -0
  49. package/src/event/MessagePort.ts +33 -0
  50. package/src/event/events/IMessageEventInit.ts +11 -0
  51. package/src/event/events/MessageEvent.ts +32 -0
  52. package/src/index.ts +4 -0
  53. package/src/nodes/html-iframe-element/HTMLIFrameElement.ts +266 -0
  54. package/src/nodes/html-iframe-element/IFrameCrossOriginWindow.ts +60 -0
  55. package/src/nodes/html-iframe-element/IHTMLIFrameElement.ts +27 -0
  56. package/src/nodes/html-input-element/HTMLInputElement.ts +2 -0
  57. package/src/nodes/html-link-element/HTMLLinkElement.ts +2 -1
  58. package/src/nodes/html-script-element/HTMLScriptElement.ts +2 -2
  59. package/src/window/IHappyDOMOptions.ts +15 -0
  60. package/src/window/IHappyDOMSettings.ts +1 -0
  61. package/src/window/IWindow.ts +14 -0
  62. package/src/window/Window.ts +46 -7
@@ -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
  */
@@ -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
  */
@@ -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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "happy-dom",
3
- "version": "8.6.0",
3
+ "version": "8.7.1",
4
4
  "license": "MIT",
5
5
  "homepage": "https://github.com/capricorn86/happy-dom",
6
6
  "repository": "https://github.com/capricorn86/happy-dom",
@@ -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: HTMLElement,
98
+ IFRAME: HTMLIFrameElement,
98
99
  INS: HTMLElement,
99
100
  KBD: HTMLElement,
100
101
  LEGEND: HTMLElement,
@@ -45,7 +45,6 @@ export default [
45
45
  'HTMLTableSectionElement',
46
46
  'HTMLFrameElement',
47
47
  'HTMLFrameSetElement',
48
- 'HTMLIFrameElement',
49
48
  'HTMLEmbedElement',
50
49
  'HTMLObjectElement',
51
50
  'HTMLParamElement',
@@ -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
+ }