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.

Files changed (67) 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/EventTarget.d.ts +7 -1
  8. package/lib/event/EventTarget.js +13 -2
  9. package/lib/event/EventTarget.js.map +1 -1
  10. package/lib/event/IEventListenerOptions.d.ts +6 -0
  11. package/lib/event/IEventListenerOptions.js +3 -0
  12. package/lib/event/IEventListenerOptions.js.map +1 -0
  13. package/lib/event/IMessagePort.d.ts +23 -0
  14. package/lib/event/IMessagePort.js +3 -0
  15. package/lib/event/IMessagePort.js.map +1 -0
  16. package/lib/event/MessagePort.d.ts +24 -0
  17. package/lib/event/MessagePort.js +36 -0
  18. package/lib/event/MessagePort.js.map +1 -0
  19. package/lib/event/events/IMessageEventInit.d.ts +10 -0
  20. package/lib/event/events/IMessageEventInit.js +3 -0
  21. package/lib/event/events/IMessageEventInit.js.map +1 -0
  22. package/lib/event/events/MessageEvent.d.ts +23 -0
  23. package/lib/event/events/MessageEvent.js +34 -0
  24. package/lib/event/events/MessageEvent.js.map +1 -0
  25. package/lib/index.d.ts +3 -1
  26. package/lib/index.js +3 -1
  27. package/lib/index.js.map +1 -1
  28. package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts +126 -0
  29. package/lib/nodes/html-iframe-element/HTMLIFrameElement.js +246 -0
  30. package/lib/nodes/html-iframe-element/HTMLIFrameElement.js.map +1 -0
  31. package/lib/nodes/html-iframe-element/IFrameCrossOriginWindow.d.ts +29 -0
  32. package/lib/nodes/html-iframe-element/IFrameCrossOriginWindow.js +47 -0
  33. package/lib/nodes/html-iframe-element/IFrameCrossOriginWindow.js.map +1 -0
  34. package/lib/nodes/html-iframe-element/IHTMLIFrameElement.d.ts +24 -0
  35. package/lib/nodes/html-iframe-element/IHTMLIFrameElement.js +3 -0
  36. package/lib/nodes/html-iframe-element/IHTMLIFrameElement.js.map +1 -0
  37. package/lib/nodes/html-link-element/HTMLLinkElement.js +2 -1
  38. package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
  39. package/lib/nodes/html-script-element/HTMLScriptElement.js +1 -1
  40. package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
  41. package/lib/window/IHappyDOMOptions.d.ts +15 -0
  42. package/lib/window/IHappyDOMOptions.js +3 -0
  43. package/lib/window/IHappyDOMOptions.js.map +1 -0
  44. package/lib/window/IHappyDOMSettings.d.ts +1 -0
  45. package/lib/window/IWindow.d.ts +13 -0
  46. package/lib/window/Window.d.ts +17 -7
  47. package/lib/window/Window.js +33 -0
  48. package/lib/window/Window.js.map +1 -1
  49. package/package.json +1 -1
  50. package/src/config/ElementTag.ts +2 -1
  51. package/src/config/NonImplemenetedElementClasses.ts +0 -1
  52. package/src/event/EventTarget.ts +24 -2
  53. package/src/event/IEventListenerOptions.ts +8 -0
  54. package/src/event/IMessagePort.ts +26 -0
  55. package/src/event/MessagePort.ts +33 -0
  56. package/src/event/events/IMessageEventInit.ts +11 -0
  57. package/src/event/events/MessageEvent.ts +32 -0
  58. package/src/index.ts +4 -0
  59. package/src/nodes/html-iframe-element/HTMLIFrameElement.ts +266 -0
  60. package/src/nodes/html-iframe-element/IFrameCrossOriginWindow.ts +60 -0
  61. package/src/nodes/html-iframe-element/IHTMLIFrameElement.ts +27 -0
  62. package/src/nodes/html-link-element/HTMLLinkElement.ts +2 -1
  63. package/src/nodes/html-script-element/HTMLScriptElement.ts +2 -2
  64. package/src/window/IHappyDOMOptions.ts +15 -0
  65. package/src/window/IHappyDOMSettings.ts +1 -0
  66. package/src/window/IWindow.ts +14 -0
  67. package/src/window/Window.ts +46 -7
@@ -0,0 +1,246 @@
1
+ "use strict";
2
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
+ };
7
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
8
+ if (kind === "m") throw new TypeError("Private method is not writable");
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
11
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ var _HTMLIFrameElement_contentWindow;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const url_1 = require("url");
19
+ const Event_1 = __importDefault(require("../../event/Event"));
20
+ const ErrorEvent_1 = __importDefault(require("../../event/events/ErrorEvent"));
21
+ const HTMLElement_1 = __importDefault(require("../html-element/HTMLElement"));
22
+ const IFrameCrossOriginWindow_1 = __importDefault(require("./IFrameCrossOriginWindow"));
23
+ /**
24
+ * HTML Iframe Element.
25
+ *
26
+ * Reference:
27
+ * https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.
28
+ */
29
+ class HTMLIFrameElement extends HTMLElement_1.default {
30
+ constructor() {
31
+ super(...arguments);
32
+ // Events
33
+ this.onload = null;
34
+ this.onerror = null;
35
+ // Private
36
+ _HTMLIFrameElement_contentWindow.set(this, null);
37
+ }
38
+ /**
39
+ * Returns source.
40
+ *
41
+ * @returns Source.
42
+ */
43
+ get src() {
44
+ return this.getAttribute('src') || '';
45
+ }
46
+ /**
47
+ * Sets source.
48
+ *
49
+ * @param src Source.
50
+ */
51
+ set src(src) {
52
+ this.setAttribute('src', src);
53
+ }
54
+ /**
55
+ * Returns allow.
56
+ *
57
+ * @returns Allow.
58
+ */
59
+ get allow() {
60
+ return this.getAttribute('allow') || '';
61
+ }
62
+ /**
63
+ * Sets allow.
64
+ *
65
+ * @param allow Allow.
66
+ */
67
+ set allow(allow) {
68
+ this.setAttribute('allow', allow);
69
+ }
70
+ /**
71
+ * Returns height.
72
+ *
73
+ * @returns Height.
74
+ */
75
+ get height() {
76
+ return this.getAttribute('height') || '';
77
+ }
78
+ /**
79
+ * Sets height.
80
+ *
81
+ * @param height Height.
82
+ */
83
+ set height(height) {
84
+ this.setAttribute('height', height);
85
+ }
86
+ /**
87
+ * Returns width.
88
+ *
89
+ * @returns Width.
90
+ */
91
+ get width() {
92
+ return this.getAttribute('width') || '';
93
+ }
94
+ /**
95
+ * Sets width.
96
+ *
97
+ * @param width Width.
98
+ */
99
+ set width(width) {
100
+ this.setAttribute('width', width);
101
+ }
102
+ /**
103
+ * Returns name.
104
+ *
105
+ * @returns Name.
106
+ */
107
+ get name() {
108
+ return this.getAttribute('name') || '';
109
+ }
110
+ /**
111
+ * Sets name.
112
+ *
113
+ * @param name Name.
114
+ */
115
+ set name(name) {
116
+ this.setAttribute('name', name);
117
+ }
118
+ /**
119
+ * Returns sandbox.
120
+ *
121
+ * @returns Sandbox.
122
+ */
123
+ get sandbox() {
124
+ return this.getAttribute('sandbox') || '';
125
+ }
126
+ /**
127
+ * Sets sandbox.
128
+ *
129
+ * @param sandbox Sandbox.
130
+ */
131
+ set sandbox(sandbox) {
132
+ this.setAttribute('sandbox', sandbox);
133
+ }
134
+ /**
135
+ * Returns srcdoc.
136
+ *
137
+ * @returns Srcdoc.
138
+ */
139
+ get srcdoc() {
140
+ return this.getAttribute('srcdoc') || '';
141
+ }
142
+ /**
143
+ * Sets sandbox.
144
+ *
145
+ * @param srcdoc Srcdoc.
146
+ */
147
+ set srcdoc(srcdoc) {
148
+ this.setAttribute('srcdoc', srcdoc);
149
+ }
150
+ /**
151
+ * Returns content document.
152
+ *
153
+ * @returns Content document.
154
+ */
155
+ get contentDocument() {
156
+ return __classPrivateFieldGet(this, _HTMLIFrameElement_contentWindow, "f")?.document || null;
157
+ }
158
+ /**
159
+ * Returns content window.
160
+ *
161
+ * @returns Content window.
162
+ */
163
+ get contentWindow() {
164
+ return __classPrivateFieldGet(this, _HTMLIFrameElement_contentWindow, "f") || null;
165
+ }
166
+ /**
167
+ * @override
168
+ */
169
+ _connectToNode(parentNode = null) {
170
+ const isConnected = this.isConnected;
171
+ const isParentConnected = parentNode ? parentNode.isConnected : false;
172
+ super._connectToNode(parentNode);
173
+ if (isParentConnected &&
174
+ isConnected !== isParentConnected &&
175
+ !this.ownerDocument.defaultView.happyDOM.settings.disableIframePageLoading) {
176
+ const src = this.src;
177
+ if (src !== null) {
178
+ const contentWindow = new this.ownerDocument.defaultView.constructor({
179
+ url: src,
180
+ settings: {
181
+ ...this.ownerDocument.defaultView.happyDOM.settings
182
+ }
183
+ });
184
+ contentWindow.parent = this.ownerDocument.defaultView;
185
+ contentWindow.top = this.ownerDocument.defaultView;
186
+ if (src === 'about:blank') {
187
+ __classPrivateFieldSet(this, _HTMLIFrameElement_contentWindow, contentWindow, "f");
188
+ return;
189
+ }
190
+ if (src.startsWith('javascript:')) {
191
+ __classPrivateFieldSet(this, _HTMLIFrameElement_contentWindow, contentWindow, "f");
192
+ __classPrivateFieldGet(this, _HTMLIFrameElement_contentWindow, "f").eval(src.replace('javascript:', ''));
193
+ return;
194
+ }
195
+ const originURL = this.ownerDocument.defaultView.location;
196
+ const targetURL = new url_1.URL(src, originURL);
197
+ const isCORS = (originURL.hostname !== targetURL.hostname &&
198
+ !originURL.hostname.endsWith(targetURL.hostname)) ||
199
+ originURL.protocol !== targetURL.protocol;
200
+ const onError = (error) => {
201
+ this.dispatchEvent(new ErrorEvent_1.default('error', {
202
+ message: error.message,
203
+ error
204
+ }));
205
+ this.ownerDocument.defaultView.dispatchEvent(new ErrorEvent_1.default('error', {
206
+ message: error.message,
207
+ error
208
+ }));
209
+ if (!this['_listeners']['error'] &&
210
+ !this.ownerDocument.defaultView['_listeners']['error']) {
211
+ this.ownerDocument.defaultView.console.error(error);
212
+ }
213
+ };
214
+ __classPrivateFieldSet(this, _HTMLIFrameElement_contentWindow, null, "f");
215
+ this.ownerDocument.defaultView
216
+ .fetch(src)
217
+ .then((response) => {
218
+ response
219
+ .text()
220
+ .then((text) => {
221
+ __classPrivateFieldSet(this, _HTMLIFrameElement_contentWindow, isCORS
222
+ ? new IFrameCrossOriginWindow_1.default(this.ownerDocument.defaultView, contentWindow)
223
+ : contentWindow, "f");
224
+ contentWindow.document.write(text);
225
+ this.dispatchEvent(new Event_1.default('load'));
226
+ })
227
+ .catch(onError);
228
+ })
229
+ .catch(onError);
230
+ }
231
+ }
232
+ }
233
+ /**
234
+ * Clones a node.
235
+ *
236
+ * @override
237
+ * @param [deep=false] "true" to clone deep.
238
+ * @returns Cloned node.
239
+ */
240
+ cloneNode(deep = false) {
241
+ return super.cloneNode(deep);
242
+ }
243
+ }
244
+ exports.default = HTMLIFrameElement;
245
+ _HTMLIFrameElement_contentWindow = new WeakMap();
246
+ //# sourceMappingURL=HTMLIFrameElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HTMLIFrameElement.js","sourceRoot":"","sources":["../../../src/nodes/html-iframe-element/HTMLIFrameElement.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import EventTarget from '../../event/EventTarget';
2
+ import IWindow from '../../window/IWindow';
3
+ import Location from '../../location/Location';
4
+ /**
5
+ * Browser window with limited access due to CORS restrictions in iframes.
6
+ */
7
+ export default class IFrameCrossOriginWindow extends EventTarget {
8
+ readonly self: this;
9
+ readonly window: this;
10
+ readonly parent: IWindow;
11
+ readonly top: IWindow;
12
+ readonly location: Location;
13
+ private _targetWindow;
14
+ /**
15
+ * Constructor.
16
+ *
17
+ * @param parent Parent window.
18
+ * @param target Target window.
19
+ */
20
+ constructor(parent: IWindow, target: IWindow);
21
+ /**
22
+ * 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.
23
+ *
24
+ * @param message Message.
25
+ * @param [targetOrigin=*] Target origin.
26
+ * @param transfer Transfer. Not implemented.
27
+ */
28
+ postMessage(message: unknown, targetOrigin?: string, transfer?: unknown[]): void;
29
+ }
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const EventTarget_1 = __importDefault(require("../../event/EventTarget"));
7
+ const DOMException_1 = __importDefault(require("../../exception/DOMException"));
8
+ const DOMExceptionNameEnum_1 = __importDefault(require("../../exception/DOMExceptionNameEnum"));
9
+ /**
10
+ * Browser window with limited access due to CORS restrictions in iframes.
11
+ */
12
+ class IFrameCrossOriginWindow extends EventTarget_1.default {
13
+ /**
14
+ * Constructor.
15
+ *
16
+ * @param parent Parent window.
17
+ * @param target Target window.
18
+ */
19
+ constructor(parent, target) {
20
+ super();
21
+ this.self = this;
22
+ this.window = this;
23
+ this.parent = parent;
24
+ this.top = parent;
25
+ this.location = new Proxy({}, {
26
+ get: () => {
27
+ throw new DOMException_1.default(`Blocked a frame with origin "${this.parent.location.origin}" from accessing a cross-origin frame.`, DOMExceptionNameEnum_1.default.securityError);
28
+ },
29
+ set: () => {
30
+ throw new DOMException_1.default(`Blocked a frame with origin "${this.parent.location.origin}" from accessing a cross-origin frame.`, DOMExceptionNameEnum_1.default.securityError);
31
+ }
32
+ });
33
+ this._targetWindow = target;
34
+ }
35
+ /**
36
+ * 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.
37
+ *
38
+ * @param message Message.
39
+ * @param [targetOrigin=*] Target origin.
40
+ * @param transfer Transfer. Not implemented.
41
+ */
42
+ postMessage(message, targetOrigin = '*', transfer) {
43
+ this._targetWindow.postMessage(message, targetOrigin, transfer);
44
+ }
45
+ }
46
+ exports.default = IFrameCrossOriginWindow;
47
+ //# sourceMappingURL=IFrameCrossOriginWindow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IFrameCrossOriginWindow.js","sourceRoot":"","sources":["../../../src/nodes/html-iframe-element/IFrameCrossOriginWindow.ts"],"names":[],"mappings":";;;;;AAAA,0EAAkD;AAElD,gFAAwD;AACxD,gGAAwE;AAGxE;;GAEG;AACH,MAAqB,uBAAwB,SAAQ,qBAAW;IAS/D;;;;;OAKG;IACH,YAAY,MAAe,EAAE,MAAe;QAC3C,KAAK,EAAE,CAAC;QAfO,SAAI,GAAG,IAAI,CAAC;QACZ,WAAM,GAAG,IAAI,CAAC;QAgB7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAa,IAAI,KAAK,CAClC,EAAE,EACF;YACC,GAAG,EAAE,GAAG,EAAE;gBACT,MAAM,IAAI,sBAAY,CACrB,gCAAgC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,wCAAwC,EACnG,8BAAoB,CAAC,aAAa,CAClC,CAAC;YACH,CAAC;YACD,GAAG,EAAE,GAAG,EAAE;gBACT,MAAM,IAAI,sBAAY,CACrB,gCAAgC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,wCAAwC,EACnG,8BAAoB,CAAC,aAAa,CAClC,CAAC;YACH,CAAC;SACD,CACD,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;IAC7B,CAAC;IAED;;;;;;OAMG;IACI,WAAW,CAAC,OAAgB,EAAE,YAAY,GAAG,GAAG,EAAE,QAAoB;QAC5E,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IACjE,CAAC;CACD;AAlDD,0CAkDC"}
@@ -0,0 +1,24 @@
1
+ import Event from '../../event/Event';
2
+ import IWindow from '../../window/IWindow';
3
+ import IDocument from '../document/IDocument';
4
+ import IHTMLElement from '../html-element/IHTMLElement';
5
+ import IFrameCrossOriginWindow from './IFrameCrossOriginWindow';
6
+ /**
7
+ * HTML Iframe Element.
8
+ *
9
+ * Reference:
10
+ * https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.
11
+ */
12
+ export default interface IHTMLIFrameElement extends IHTMLElement {
13
+ src: string | null;
14
+ allow: string | null;
15
+ height: string | null;
16
+ width: string | null;
17
+ name: string | null;
18
+ sandbox: string | null;
19
+ srcdoc: string | null;
20
+ readonly contentDocument: IDocument | null;
21
+ readonly contentWindow: IWindow | IFrameCrossOriginWindow | null;
22
+ onload: (event: Event) => void | null;
23
+ onerror: (event: Event) => void | null;
24
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IHTMLIFrameElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IHTMLIFrameElement.js","sourceRoot":"","sources":["../../../src/nodes/html-iframe-element/IHTMLIFrameElement.ts"],"names":[],"mappings":""}
@@ -223,7 +223,8 @@ class HTMLLinkElement extends HTMLElement_1.default {
223
223
  const isConnected = this.isConnected;
224
224
  const isParentConnected = parentNode ? parentNode.isConnected : false;
225
225
  super._connectToNode(parentNode);
226
- if (isConnected !== isParentConnected &&
226
+ if (isParentConnected &&
227
+ isConnected !== isParentConnected &&
227
228
  this._evaluateCSS &&
228
229
  !this.ownerDocument.defaultView.happyDOM.settings.disableCSSFileLoading) {
229
230
  const href = this.getAttributeNS(null, 'href');
@@ -1 +1 @@
1
- {"version":3,"file":"HTMLLinkElement.js","sourceRoot":"","sources":["../../../src/nodes/html-link-element/HTMLLinkElement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HTMLLinkElement.js","sourceRoot":"","sources":["../../../src/nodes/html-link-element/HTMLLinkElement.ts"],"names":[],"mappings":"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"}
@@ -171,7 +171,7 @@ class HTMLScriptElement extends HTMLElement_1.default {
171
171
  const isConnected = this.isConnected;
172
172
  const isParentConnected = parentNode ? parentNode.isConnected : false;
173
173
  super._connectToNode(parentNode);
174
- if (isConnected !== isParentConnected && this._evaluateScript) {
174
+ if (isParentConnected && isConnected !== isParentConnected && this._evaluateScript) {
175
175
  const src = this.getAttributeNS(null, 'src');
176
176
  if (src !== null) {
177
177
  ScriptUtility_1.default.loadExternalScript(this);
@@ -1 +1 @@
1
- {"version":3,"file":"HTMLScriptElement.js","sourceRoot":"","sources":["../../../src/nodes/html-script-element/HTMLScriptElement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HTMLScriptElement.js","sourceRoot":"","sources":["../../../src/nodes/html-script-element/HTMLScriptElement.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Happy DOM options.
3
+ */
4
+ export default interface IHappyDOMOptions {
5
+ innerWidth?: number;
6
+ innerHeight?: number;
7
+ url?: string;
8
+ settings?: {
9
+ disableJavaScriptEvaluation?: boolean;
10
+ disableJavaScriptFileLoading?: boolean;
11
+ disableCSSFileLoading?: boolean;
12
+ disableIframePageLoading?: boolean;
13
+ enableFileSystemHttpRequests?: boolean;
14
+ };
15
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IHappyDOMOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IHappyDOMOptions.js","sourceRoot":"","sources":["../../src/window/IHappyDOMOptions.ts"],"names":[],"mappings":""}
@@ -5,5 +5,6 @@ export default interface IHappyDOMSettings {
5
5
  disableJavaScriptEvaluation: boolean;
6
6
  disableJavaScriptFileLoading: boolean;
7
7
  disableCSSFileLoading: boolean;
8
+ disableIframePageLoading: boolean;
8
9
  enableFileSystemHttpRequests: boolean;
9
10
  }
@@ -29,6 +29,7 @@ import HTMLMediaElement from '../nodes/html-media-element/HTMLMediaElement';
29
29
  import HTMLAudioElement from '../nodes/html-audio-element/HTMLAudioElement';
30
30
  import HTMLVideoElement from '../nodes/html-video-element/HTMLVideoElement';
31
31
  import HTMLBaseElement from '../nodes/html-base-element/HTMLBaseElement';
32
+ import HTMLIFrameElement from '../nodes/html-iframe-element/HTMLIFrameElement';
32
33
  import SVGSVGElement from '../nodes/svg-element/SVGSVGElement';
33
34
  import SVGElement from '../nodes/svg-element/SVGElement';
34
35
  import HTMLScriptElement from '../nodes/html-script-element/HTMLScriptElement';
@@ -78,6 +79,8 @@ import InputEvent from '../event/events/InputEvent';
78
79
  import UIEvent from '../event/UIEvent';
79
80
  import ErrorEvent from '../event/events/ErrorEvent';
80
81
  import StorageEvent from '../event/events/StorageEvent';
82
+ import MessageEvent from '../event/events/MessageEvent';
83
+ import MessagePort from '../event/MessagePort';
81
84
  import Screen from '../screen/Screen';
82
85
  import AsyncTaskManager from '../async-task-manager/AsyncTaskManager';
83
86
  import Storage from '../storage/Storage';
@@ -143,6 +146,7 @@ export default interface IWindow extends IEventTarget, NodeJS.Global {
143
146
  readonly HTMLAudioElement: typeof HTMLAudioElement;
144
147
  readonly HTMLVideoElement: typeof HTMLVideoElement;
145
148
  readonly HTMLBaseElement: typeof HTMLBaseElement;
149
+ readonly HTMLIFrameElement: typeof HTMLIFrameElement;
146
150
  readonly HTMLDialogElement: typeof HTMLDialogElement;
147
151
  readonly Attr: typeof Attr;
148
152
  readonly NamedNodeMap: typeof NamedNodeMap;
@@ -176,6 +180,8 @@ export default interface IWindow extends IEventTarget, NodeJS.Global {
176
180
  readonly InputEvent: typeof InputEvent;
177
181
  readonly ErrorEvent: typeof ErrorEvent;
178
182
  readonly StorageEvent: typeof StorageEvent;
183
+ readonly MessageEvent: typeof MessageEvent;
184
+ readonly MessagePort: typeof MessagePort;
179
185
  readonly ProgressEvent: typeof ProgressEvent;
180
186
  readonly MediaQueryListEvent: typeof MediaQueryListEvent;
181
187
  readonly EventTarget: typeof EventTarget;
@@ -370,4 +376,11 @@ export default interface IWindow extends IEventTarget, NodeJS.Global {
370
376
  * @returns An ASCII string containing decoded data from encodedData.
371
377
  */
372
378
  atob(data: unknown): string;
379
+ /**
380
+ * 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.
381
+ *
382
+ * @param message Message.
383
+ * @param listener Listener.
384
+ */
385
+ postMessage(message: unknown, targetOrigin?: string, transfer?: unknown[]): void;
373
386
  }
@@ -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
  */