happy-dom 8.6.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/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/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
@@ -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 @@
|
|
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 (
|
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":";;;;;AACA,4EAAoD;AACpD,4FAAoE;AACpE,8EAAsD;AAGtD,8DAAsC;AACtC,+EAAuD;AAEvD,qFAA6D;AAG7D;;;;;GAKG;AACH,MAAqB,eAAgB,SAAQ,qBAAW;IAAxD;;QACQ,YAAO,GAAgC,IAAI,CAAC;QAC5C,WAAM,GAA2B,IAAI,CAAC;QAC7B,UAAK,GAAkB,IAAI,CAAC;QACrC,iBAAY,GAAG,IAAI,CAAC;QACnB,aAAQ,GAAiB,IAAI,CAAC;
|
1
|
+
{"version":3,"file":"HTMLLinkElement.js","sourceRoot":"","sources":["../../../src/nodes/html-link-element/HTMLLinkElement.ts"],"names":[],"mappings":";;;;;AACA,4EAAoD;AACpD,4FAAoE;AACpE,8EAAsD;AAGtD,8DAAsC;AACtC,+EAAuD;AAEvD,qFAA6D;AAG7D;;;;;GAKG;AACH,MAAqB,eAAgB,SAAQ,qBAAW;IAAxD;;QACQ,YAAO,GAAgC,IAAI,CAAC;QAC5C,WAAM,GAA2B,IAAI,CAAC;QAC7B,UAAK,GAAkB,IAAI,CAAC;QACrC,iBAAY,GAAG,IAAI,CAAC;QACnB,aAAQ,GAAiB,IAAI,CAAC;IAsRvC,CAAC;IApRA;;;;OAIG;IACH,IAAW,OAAO;QACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,sBAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SAC9C;QACD,OAAsB,IAAI,CAAC,QAAQ,CAAC;IACrC,CAAC;IAED;;;;OAIG;IACH,IAAW,EAAE;QACZ,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACH,IAAW,EAAE,CAAC,EAAU;QACvB,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IAED;;;;OAIG;IACH,IAAW,WAAW;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACH,IAAW,WAAW,CAAC,WAAmB;QACzC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACH,IAAW,IAAI;QACd,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IAChD,CAAC;IAED;;;;OAIG;IACH,IAAW,IAAI,CAAC,IAAY;QAC3B,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACH,IAAW,QAAQ;QAClB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACH,IAAW,QAAQ,CAAC,QAAgB;QACnC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED;;;;OAIG;IACH,IAAW,KAAK;QACf,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;IACjD,CAAC;IAED;;;;OAIG;IACH,IAAW,KAAK,CAAC,KAAa;QAC7B,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACH,IAAW,cAAc;QACxB,OAAO,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;IAClD,CAAC;IAED;;;;OAIG;IACH,IAAW,cAAc,CAAC,cAAsB;QAC/C,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACH,IAAW,GAAG;QACb,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACH,IAAW,GAAG,CAAC,GAAW;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACH,IAAW,IAAI;QACd,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IAChD,CAAC;IAED;;;;OAIG;IACH,IAAW,IAAI,CAAC,IAAY;QAC3B,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACa,gBAAgB,CAAC,SAAgB;QAChD,MAAM,iBAAiB,GAAG,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAE/C,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC9C,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;SAC/B;QAED,IACC,CAAC,SAAS,CAAC,IAAI,KAAK,KAAK,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,CAAC;YACvD,IAAI,KAAK,IAAI;YACb,GAAG;YACH,GAAG,CAAC,WAAW,EAAE,KAAK,YAAY;YAClC,IAAI,CAAC,WAAW;YAChB,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,EACtE;YACU,IAAI,CAAC,aAAc,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC;YAC9D,8BAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;iBAClD,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBACd,MAAM,UAAU,GAAG,IAAI,uBAAa,EAAE,CAAC;gBACvC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACb,IAAI,CAAC,KAAM,GAAG,UAAU,CAAC;gBACzC,IAAI,CAAC,aAAa,CAAC,IAAI,eAAK,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC3B,IAAI,CAAC,aAAc,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;YAC7D,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBAChB,IAAI,CAAC,aAAa,CACjB,IAAI,oBAAU,CAAC,OAAO,EAAE;oBACvB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,KAAK;iBACL,CAAC,CACF,CAAC;gBACF,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,aAAa,CAC3C,IAAI,oBAAU,CAAC,OAAO,EAAE;oBACvB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,KAAK;iBACL,CAAC,CACF,CAAC;gBACS,IAAI,CAAC,aAAc,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;gBAC5D,IACC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC;oBAC5B,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,EACrD;oBACD,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;iBACpD;YACF,CAAC,CAAC,CAAC;SACJ;QAED,OAAO,iBAAiB,CAAC;IAC1B,CAAC;IAED;;OAEG;IACa,mBAAmB,CAAC,SAAgB;QACnD,KAAK,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAErC,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC9C,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;SAC/B;QAED,OAAO,SAAS,CAAC;IAClB,CAAC;IAED;;OAEG;IACa,cAAc,CAAC,aAAoB,IAAI;QACtD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,MAAM,iBAAiB,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;QAEtE,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAEjC,IACC,iBAAiB;YACjB,WAAW,KAAK,iBAAiB;YACjC,IAAI,CAAC,YAAY;YACjB,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,EACtE;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAE7C,IAAI,IAAI,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,YAAY,EAAE;gBACpD,IAAI,CAAC,aAAc,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC;gBAC9D,8BAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;qBAClD,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;oBACd,MAAM,UAAU,GAAG,IAAI,uBAAa,EAAE,CAAC;oBACvC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBACb,IAAI,CAAC,KAAM,GAAG,UAAU,CAAC;oBACzC,IAAI,CAAC,aAAa,CAAC,IAAI,eAAK,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC3B,IAAI,CAAC,aAAc,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;gBAC7D,CAAC,CAAC;qBACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBAChB,IAAI,CAAC,aAAa,CACjB,IAAI,oBAAU,CAAC,OAAO,EAAE;wBACvB,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,KAAK;qBACL,CAAC,CACF,CAAC;oBACF,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,aAAa,CAC3C,IAAI,oBAAU,CAAC,OAAO,EAAE;wBACvB,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,KAAK;qBACL,CAAC,CACF,CAAC;oBACS,IAAI,CAAC,aAAc,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;oBAC5D,IACC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC;wBAC5B,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,EACrD;wBACD,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;qBACpD;gBACF,CAAC,CAAC,CAAC;aACJ;SACD;IACF,CAAC;CACD;AA3RD,kCA2RC"}
|
@@ -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 @@
|
|
1
|
+
{"version":3,"file":"IHappyDOMOptions.js","sourceRoot":"","sources":["../../src/window/IHappyDOMOptions.ts"],"names":[],"mappings":""}
|
package/lib/window/IWindow.d.ts
CHANGED
@@ -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
|
}
|
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
|
*/
|