happy-dom 19.0.2 → 20.0.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/lib/PropertySymbol.d.ts +2 -0
- package/lib/PropertySymbol.d.ts.map +1 -1
- package/lib/PropertySymbol.js +2 -0
- package/lib/PropertySymbol.js.map +1 -1
- package/lib/browser/DefaultBrowserSettings.d.ts.map +1 -1
- package/lib/browser/DefaultBrowserSettings.js +3 -0
- package/lib/browser/DefaultBrowserSettings.js.map +1 -1
- package/lib/browser/types/IBrowserSettings.d.ts +22 -1
- package/lib/browser/types/IBrowserSettings.d.ts.map +1 -1
- package/lib/browser/types/IOptionalBrowserSettings.d.ts +22 -1
- package/lib/browser/types/IOptionalBrowserSettings.d.ts.map +1 -1
- package/lib/browser/utilities/BrowserFrameNavigator.js +3 -3
- package/lib/browser/utilities/BrowserFrameNavigator.js.map +1 -1
- package/lib/html-parser/HTMLParser.d.ts.map +1 -1
- package/lib/html-parser/HTMLParser.js +3 -2
- package/lib/html-parser/HTMLParser.js.map +1 -1
- package/lib/module/ECMAScriptModuleCompiler.d.ts.map +1 -1
- package/lib/module/ECMAScriptModuleCompiler.js +6 -2
- package/lib/module/ECMAScriptModuleCompiler.js.map +1 -1
- package/lib/nodes/element/ElementEventAttributeUtility.d.ts.map +1 -1
- package/lib/nodes/element/ElementEventAttributeUtility.js +5 -4
- package/lib/nodes/element/ElementEventAttributeUtility.js.map +1 -1
- package/lib/nodes/html-link-element/HTMLLinkElement.d.ts +1 -1
- package/lib/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
- package/lib/nodes/html-link-element/HTMLLinkElement.js +4 -4
- package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
- package/lib/nodes/html-media-element/TextTrackList.d.ts +1 -0
- package/lib/nodes/html-media-element/TextTrackList.d.ts.map +1 -1
- package/lib/nodes/html-media-element/TextTrackList.js.map +1 -1
- package/lib/nodes/html-script-element/HTMLScriptElement.d.ts +1 -1
- package/lib/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
- package/lib/nodes/html-script-element/HTMLScriptElement.js +47 -37
- package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
- package/lib/nodes/html-select-element/HTMLSelectElement.d.ts +1 -0
- package/lib/nodes/html-select-element/HTMLSelectElement.d.ts.map +1 -1
- package/lib/nodes/html-select-element/HTMLSelectElement.js.map +1 -1
- package/lib/version.js +1 -1
- package/lib/window/BrowserWindow.d.ts +15 -0
- package/lib/window/BrowserWindow.d.ts.map +1 -1
- package/lib/window/BrowserWindow.js +49 -0
- package/lib/window/BrowserWindow.js.map +1 -1
- package/lib/window/GlobalWindow.d.ts +7 -1
- package/lib/window/GlobalWindow.d.ts.map +1 -1
- package/lib/window/GlobalWindow.js +10 -1
- package/lib/window/GlobalWindow.js.map +1 -1
- package/lib/xml-parser/XMLParser.d.ts +0 -3
- package/lib/xml-parser/XMLParser.d.ts.map +1 -1
- package/lib/xml-parser/XMLParser.js +0 -3
- package/lib/xml-parser/XMLParser.js.map +1 -1
- package/package.json +1 -1
- package/src/PropertySymbol.ts +4 -0
- package/src/browser/DefaultBrowserSettings.ts +3 -0
- package/src/browser/types/IBrowserSettings.ts +25 -1
- package/src/browser/types/IOptionalBrowserSettings.ts +25 -1
- package/src/browser/utilities/BrowserFrameNavigator.ts +3 -3
- package/src/html-parser/HTMLParser.ts +3 -2
- package/src/module/ECMAScriptModuleCompiler.ts +6 -2
- package/src/nodes/element/ElementEventAttributeUtility.ts +5 -4
- package/src/nodes/html-link-element/HTMLLinkElement.ts +4 -4
- package/src/nodes/html-media-element/TextTrackList.ts +3 -0
- package/src/nodes/html-script-element/HTMLScriptElement.ts +51 -42
- package/src/nodes/html-select-element/HTMLSelectElement.ts +3 -0
- package/src/window/BrowserWindow.ts +57 -0
- package/src/window/GlobalWindow.ts +14 -1
- package/src/xml-parser/XMLParser.ts +0 -3
|
@@ -86,9 +86,6 @@ export default class XMLParser {
|
|
|
86
86
|
* Constructor.
|
|
87
87
|
*
|
|
88
88
|
* @param window Window.
|
|
89
|
-
* @param [options] Options.
|
|
90
|
-
* @param [options.mode] Mode. Defaults to "htmlFragment".
|
|
91
|
-
* @param [options.evaluateScripts] Set to "true" to enable script execution
|
|
92
89
|
*/
|
|
93
90
|
constructor(window) {
|
|
94
91
|
this.window = window;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XMLParser.js","sourceRoot":"","sources":["../../src/xml-parser/XMLParser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"XMLParser.js","sourceRoot":"","sources":["../../src/xml-parser/XMLParser.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/PropertySymbol.ts
CHANGED
|
@@ -404,3 +404,7 @@ export const cssRule = Symbol('cssRule');
|
|
|
404
404
|
export const rulePrefix = Symbol('rulePrefix');
|
|
405
405
|
export const virtualServerFile = Symbol('virtualServerFile');
|
|
406
406
|
export const frames = Symbol('frames');
|
|
407
|
+
export const disableEvaluation = Symbol('disableEvaluation');
|
|
408
|
+
export const validateJavaScriptExecutionEnvironment = Symbol(
|
|
409
|
+
'validateJavaScriptExecutionEnvironment'
|
|
410
|
+
);
|
|
@@ -5,6 +5,7 @@ import IBrowserSettings from './types/IBrowserSettings.js';
|
|
|
5
5
|
|
|
6
6
|
export default <IBrowserSettings>{
|
|
7
7
|
disableJavaScriptEvaluation: false,
|
|
8
|
+
enableJavaScriptEvaluation: false,
|
|
8
9
|
disableJavaScriptFileLoading: false,
|
|
9
10
|
disableCSSFileLoading: false,
|
|
10
11
|
disableIframePageLoading: false,
|
|
@@ -13,6 +14,8 @@ export default <IBrowserSettings>{
|
|
|
13
14
|
disableErrorCapturing: false,
|
|
14
15
|
errorCapture: BrowserErrorCaptureEnum.tryAndCatch,
|
|
15
16
|
enableFileSystemHttpRequests: false,
|
|
17
|
+
suppressCodeGenerationFromStringsWarning: false,
|
|
18
|
+
suppressInsecureJavaScriptEnvironmentWarning: false,
|
|
16
19
|
timer: {
|
|
17
20
|
maxTimeout: -1,
|
|
18
21
|
maxIntervalTime: -1,
|
|
@@ -11,9 +11,23 @@ import BrowserWindow from '../../window/BrowserWindow.js';
|
|
|
11
11
|
* Browser settings.
|
|
12
12
|
*/
|
|
13
13
|
export default interface IBrowserSettings {
|
|
14
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* Disables JavaScript evaluation.
|
|
16
|
+
*
|
|
17
|
+
* @deprecated Javascript evaluation is now disabled by default. Use "enableJavaScriptEvaluation" if you want to enable it.
|
|
18
|
+
*/
|
|
15
19
|
disableJavaScriptEvaluation: boolean;
|
|
16
20
|
|
|
21
|
+
/**
|
|
22
|
+
* Enables JavaScript evaluation.
|
|
23
|
+
*
|
|
24
|
+
* A VM Context is not an isolated environment, and if you run untrusted code you are at risk of RCE (Remote Code Execution) attacks.
|
|
25
|
+
* It is recommended to disable code generation at process level by running node with the "--disallow-code-generation-from-strings" flag enabled to protect against these types of attacks.
|
|
26
|
+
*
|
|
27
|
+
* @see https://github.com/capricorn86/happy-dom/wiki/Code-Generation-From-Strings-Warning
|
|
28
|
+
*/
|
|
29
|
+
enableJavaScriptEvaluation: boolean;
|
|
30
|
+
|
|
17
31
|
/** Disables JavaScript file loading. */
|
|
18
32
|
disableJavaScriptFileLoading: boolean;
|
|
19
33
|
|
|
@@ -26,6 +40,16 @@ export default interface IBrowserSettings {
|
|
|
26
40
|
/** Handle disabled resource loading as success */
|
|
27
41
|
handleDisabledFileLoadingAsSuccess: boolean;
|
|
28
42
|
|
|
43
|
+
/**
|
|
44
|
+
* Suppresses the warning that is printed when code generation from strings is enabled at process level.
|
|
45
|
+
*
|
|
46
|
+
* @deprecated Use "suppressInsecureJavaScriptEnvironmentWarning" instead.
|
|
47
|
+
*/
|
|
48
|
+
suppressCodeGenerationFromStringsWarning: boolean;
|
|
49
|
+
|
|
50
|
+
/** Suppresses the warning that is printed when the JavaScript execution environment is insecure. */
|
|
51
|
+
suppressInsecureJavaScriptEnvironmentWarning: boolean;
|
|
52
|
+
|
|
29
53
|
/**
|
|
30
54
|
* Settings for timers
|
|
31
55
|
*/
|
|
@@ -8,9 +8,23 @@ import IOptionalTimerLoopsLimit from '../../window/IOptionalTimerLoopsLimit.js';
|
|
|
8
8
|
import BrowserWindow from '../../window/BrowserWindow.js';
|
|
9
9
|
|
|
10
10
|
export default interface IOptionalBrowserSettings {
|
|
11
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* Disables JavaScript evaluation.
|
|
13
|
+
*
|
|
14
|
+
* @deprecated Javascript evaluation is now disabled by default. Use "enableJavaScriptEvaluation" if you want to enable it.
|
|
15
|
+
*/
|
|
12
16
|
disableJavaScriptEvaluation?: boolean;
|
|
13
17
|
|
|
18
|
+
/**
|
|
19
|
+
* Enables JavaScript evaluation.
|
|
20
|
+
*
|
|
21
|
+
* A VM Context is not an isolated environment, and if you run untrusted code you are at risk of RCE (Remote Code Execution) attacks.
|
|
22
|
+
* It is recommended to disable code generation at process level by running node with the "--disallow-code-generation-from-strings" flag enabled to protect against these types of attacks.
|
|
23
|
+
*
|
|
24
|
+
* @see https://github.com/capricorn86/happy-dom/wiki/Code-Generation-From-Strings-Warning
|
|
25
|
+
*/
|
|
26
|
+
enableJavaScriptEvaluation?: boolean;
|
|
27
|
+
|
|
14
28
|
/** Disables JavaScript file loading. */
|
|
15
29
|
disableJavaScriptFileLoading?: boolean;
|
|
16
30
|
|
|
@@ -23,6 +37,16 @@ export default interface IOptionalBrowserSettings {
|
|
|
23
37
|
/** Handle disabled file loading as success */
|
|
24
38
|
handleDisabledFileLoadingAsSuccess?: boolean;
|
|
25
39
|
|
|
40
|
+
/**
|
|
41
|
+
* Suppresses the warning that is printed when code generation from strings is enabled at process level.
|
|
42
|
+
*
|
|
43
|
+
* @deprecated Use "suppressInsecureJavaScriptEnvironmentWarning" instead.
|
|
44
|
+
*/
|
|
45
|
+
suppressCodeGenerationFromStringsWarning?: boolean;
|
|
46
|
+
|
|
47
|
+
/** Suppresses the warning that is printed when the JavaScript execution environment is insecure. */
|
|
48
|
+
suppressInsecureJavaScriptEnvironmentWarning?: boolean;
|
|
49
|
+
|
|
26
50
|
/** Settings for timers */
|
|
27
51
|
timer?: {
|
|
28
52
|
maxTimeout?: number;
|
|
@@ -89,12 +89,12 @@ export default class BrowserFrameNavigator {
|
|
|
89
89
|
|
|
90
90
|
// Javascript protocol
|
|
91
91
|
if (targetURL.protocol === 'javascript:') {
|
|
92
|
-
if (frame &&
|
|
92
|
+
if (frame && frame.page.context.browser.settings.enableJavaScriptEvaluation) {
|
|
93
93
|
const readyStateManager = frame.window[PropertySymbol.readyStateManager];
|
|
94
94
|
const asyncTaskManager = frame[PropertySymbol.asyncTaskManager];
|
|
95
95
|
|
|
96
96
|
const taskID = readyStateManager.startTask();
|
|
97
|
-
const code =
|
|
97
|
+
const code = targetURL.href.replace('javascript:', '');
|
|
98
98
|
|
|
99
99
|
// The browser will wait for the next tick before executing the script.
|
|
100
100
|
// Fixes issue where evaluating the response can throw an error.
|
|
@@ -110,7 +110,7 @@ export default class BrowserFrameNavigator {
|
|
|
110
110
|
clearImmediate(immediate);
|
|
111
111
|
resolve(null);
|
|
112
112
|
});
|
|
113
|
-
frame.window.
|
|
113
|
+
frame.window[PropertySymbol.evaluateScript](code, { filename: frame.url });
|
|
114
114
|
});
|
|
115
115
|
});
|
|
116
116
|
|
|
@@ -776,10 +776,11 @@ export default class HTMLParser {
|
|
|
776
776
|
// However, they are allowed to be executed when document.write() is used.
|
|
777
777
|
// See: https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement
|
|
778
778
|
if (upperTagName === 'SCRIPT') {
|
|
779
|
-
(<HTMLScriptElement>this.currentNode)[PropertySymbol.
|
|
779
|
+
(<HTMLScriptElement>this.currentNode)[PropertySymbol.disableEvaluation] =
|
|
780
|
+
!this.evaluateScripts;
|
|
780
781
|
} else if (upperTagName === 'LINK') {
|
|
781
782
|
// An assumption that the same rule should be applied for the HTMLLinkElement is made here.
|
|
782
|
-
(<HTMLLinkElement>this.currentNode)[PropertySymbol.
|
|
783
|
+
(<HTMLLinkElement>this.currentNode)[PropertySymbol.disableEvaluation] = !this.evaluateScripts;
|
|
783
784
|
}
|
|
784
785
|
|
|
785
786
|
// Plain text elements such as <script> and <style> should only contain text.
|
|
@@ -401,10 +401,14 @@ export default class ECMAScriptModuleCompiler {
|
|
|
401
401
|
}
|
|
402
402
|
|
|
403
403
|
newCode += '})';
|
|
404
|
-
newCode += `\n//# sourceURL=${sourceURL || moduleURL}`;
|
|
405
404
|
|
|
406
405
|
try {
|
|
407
|
-
return {
|
|
406
|
+
return {
|
|
407
|
+
imports,
|
|
408
|
+
execute: this.window[PropertySymbol.evaluateScript](newCode, {
|
|
409
|
+
filename: sourceURL || moduleURL
|
|
410
|
+
})
|
|
411
|
+
};
|
|
408
412
|
} catch (e) {
|
|
409
413
|
const errorMessage = this.getError(moduleURL, code, sourceURL) || (<Error>e).message;
|
|
410
414
|
const error = new this.window.SyntaxError(
|
|
@@ -32,7 +32,7 @@ export default class ElementEventAttributeUtility {
|
|
|
32
32
|
|
|
33
33
|
const browserSettings = new WindowBrowserContext(window).getSettings();
|
|
34
34
|
|
|
35
|
-
if (!browserSettings) {
|
|
35
|
+
if (!browserSettings || !browserSettings.enableJavaScriptEvaluation) {
|
|
36
36
|
return null;
|
|
37
37
|
}
|
|
38
38
|
|
|
@@ -63,13 +63,14 @@ export default class ElementEventAttributeUtility {
|
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
newCode += '})';
|
|
66
|
-
newCode += `\n//# sourceURL=${window.location.href}`;
|
|
67
66
|
|
|
68
67
|
let listener: ((event: Event) => void) | null = null;
|
|
69
68
|
|
|
70
69
|
try {
|
|
71
|
-
listener = window.
|
|
72
|
-
|
|
70
|
+
listener = window[PropertySymbol.evaluateScript](newCode, {
|
|
71
|
+
filename: window.location.href
|
|
72
|
+
}).bind(element, {
|
|
73
|
+
dispatchError: window[PropertySymbol.dispatchError].bind(window)
|
|
73
74
|
});
|
|
74
75
|
} catch (e) {
|
|
75
76
|
const error = new window.SyntaxError(
|
|
@@ -24,7 +24,7 @@ import IResourceFetchResponse from '../../fetch/types/IResourceFetchResponse.js'
|
|
|
24
24
|
export default class HTMLLinkElement extends HTMLElement {
|
|
25
25
|
// Internal properties
|
|
26
26
|
public [PropertySymbol.sheet]: CSSStyleSheet | null = null;
|
|
27
|
-
public [PropertySymbol.
|
|
27
|
+
public [PropertySymbol.disableEvaluation] = false;
|
|
28
28
|
public [PropertySymbol.relList]: DOMTokenList | null = null;
|
|
29
29
|
#loadedStyleSheetURL: string | null = null;
|
|
30
30
|
|
|
@@ -305,7 +305,7 @@ export default class HTMLLinkElement extends HTMLElement {
|
|
|
305
305
|
!browserSettings ||
|
|
306
306
|
!this[PropertySymbol.isConnected] ||
|
|
307
307
|
browserSettings.disableJavaScriptFileLoading ||
|
|
308
|
-
browserSettings.
|
|
308
|
+
!browserSettings.enableJavaScriptEvaluation
|
|
309
309
|
) {
|
|
310
310
|
return;
|
|
311
311
|
}
|
|
@@ -351,7 +351,7 @@ export default class HTMLLinkElement extends HTMLElement {
|
|
|
351
351
|
|
|
352
352
|
if (
|
|
353
353
|
as === 'script' &&
|
|
354
|
-
(browserSettings.disableJavaScriptFileLoading || browserSettings.
|
|
354
|
+
(browserSettings.disableJavaScriptFileLoading || !browserSettings.enableJavaScriptEvaluation)
|
|
355
355
|
) {
|
|
356
356
|
return;
|
|
357
357
|
}
|
|
@@ -422,7 +422,7 @@ export default class HTMLLinkElement extends HTMLElement {
|
|
|
422
422
|
|
|
423
423
|
const browserSettings = browserFrame.page.context.browser.settings;
|
|
424
424
|
|
|
425
|
-
if (
|
|
425
|
+
if (this[PropertySymbol.disableEvaluation] || !this[PropertySymbol.isConnected]) {
|
|
426
426
|
return;
|
|
427
427
|
}
|
|
428
428
|
|
|
@@ -9,6 +9,9 @@ import ClassMethodBinder from '../../utilities/ClassMethodBinder.js';
|
|
|
9
9
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList
|
|
10
10
|
*/
|
|
11
11
|
export default class TextTrackList extends EventTarget {
|
|
12
|
+
// Index signature
|
|
13
|
+
[index: number]: TextTrack | undefined;
|
|
14
|
+
|
|
12
15
|
// Internal properties
|
|
13
16
|
public [PropertySymbol.items]: TextTrack[] = [];
|
|
14
17
|
|
|
@@ -25,7 +25,7 @@ export default class HTMLScriptElement extends HTMLElement {
|
|
|
25
25
|
public declare cloneNode: (deep?: boolean) => HTMLScriptElement;
|
|
26
26
|
|
|
27
27
|
// Internal properties
|
|
28
|
-
public [PropertySymbol.
|
|
28
|
+
public [PropertySymbol.disableEvaluation] = false;
|
|
29
29
|
public [PropertySymbol.blocking]: DOMTokenList | null = null;
|
|
30
30
|
|
|
31
31
|
// Private properties
|
|
@@ -349,32 +349,34 @@ export default class HTMLScriptElement extends HTMLElement {
|
|
|
349
349
|
|
|
350
350
|
super[PropertySymbol.connectedToDocument]();
|
|
351
351
|
|
|
352
|
-
if (this[PropertySymbol.
|
|
353
|
-
|
|
352
|
+
if (this[PropertySymbol.disableEvaluation]) {
|
|
353
|
+
return;
|
|
354
|
+
}
|
|
354
355
|
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
356
|
+
const src = this.getAttribute('src');
|
|
357
|
+
|
|
358
|
+
if (src !== null) {
|
|
359
|
+
if (this.getAttribute('type') === 'module') {
|
|
360
|
+
this.#loadModule(src);
|
|
361
|
+
} else {
|
|
362
|
+
this.#loadScript(src);
|
|
363
|
+
}
|
|
364
|
+
} else if (browserSettings && browserSettings.enableJavaScriptEvaluation) {
|
|
365
|
+
const source = this.textContent;
|
|
366
|
+
const type = this.getAttribute('type');
|
|
367
|
+
|
|
368
|
+
if (source) {
|
|
369
|
+
if (type === 'module') {
|
|
370
|
+
this.#evaluateModule(source);
|
|
371
|
+
} else if (type === 'importmap') {
|
|
372
|
+
this.#evaluateImportMap(source);
|
|
373
|
+
} else if (
|
|
374
|
+
type === null ||
|
|
375
|
+
type === 'application/x-ecmascript' ||
|
|
376
|
+
type === 'application/x-javascript' ||
|
|
377
|
+
type.startsWith('text/javascript')
|
|
378
|
+
) {
|
|
379
|
+
this.#evaluateScript(source);
|
|
378
380
|
}
|
|
379
381
|
}
|
|
380
382
|
}
|
|
@@ -413,7 +415,7 @@ export default class HTMLScriptElement extends HTMLElement {
|
|
|
413
415
|
const browserSettings = new WindowBrowserContext(window).getSettings();
|
|
414
416
|
const browserFrame = new WindowBrowserContext(window).getBrowserFrame();
|
|
415
417
|
|
|
416
|
-
if (!browserFrame || !browserSettings) {
|
|
418
|
+
if (!browserFrame || !browserSettings || !browserSettings.enableJavaScriptEvaluation) {
|
|
417
419
|
return;
|
|
418
420
|
}
|
|
419
421
|
|
|
@@ -446,7 +448,12 @@ export default class HTMLScriptElement extends HTMLElement {
|
|
|
446
448
|
const browserSettings = new WindowBrowserContext(window).getSettings();
|
|
447
449
|
const browserFrame = new WindowBrowserContext(window).getBrowserFrame();
|
|
448
450
|
|
|
449
|
-
if (
|
|
451
|
+
if (
|
|
452
|
+
!browserFrame ||
|
|
453
|
+
!browserSettings ||
|
|
454
|
+
window[PropertySymbol.moduleImportMap] ||
|
|
455
|
+
!browserSettings.enableJavaScriptEvaluation
|
|
456
|
+
) {
|
|
450
457
|
return;
|
|
451
458
|
}
|
|
452
459
|
|
|
@@ -510,9 +517,9 @@ export default class HTMLScriptElement extends HTMLElement {
|
|
|
510
517
|
/**
|
|
511
518
|
* Evaluates a script.
|
|
512
519
|
*
|
|
513
|
-
* @param
|
|
520
|
+
* @param code Code.
|
|
514
521
|
*/
|
|
515
|
-
#evaluateScript(
|
|
522
|
+
#evaluateScript(code: string): void {
|
|
516
523
|
const window = this[PropertySymbol.window];
|
|
517
524
|
const browserSettings = new WindowBrowserContext(window).getSettings();
|
|
518
525
|
|
|
@@ -522,16 +529,18 @@ export default class HTMLScriptElement extends HTMLElement {
|
|
|
522
529
|
|
|
523
530
|
this[PropertySymbol.ownerDocument][PropertySymbol.currentScript] = this;
|
|
524
531
|
|
|
525
|
-
const code = `${source}\n//# sourceURL=${this[PropertySymbol.ownerDocument].location.href}`;
|
|
526
|
-
|
|
527
532
|
if (
|
|
528
533
|
browserSettings.disableErrorCapturing ||
|
|
529
534
|
browserSettings.errorCapture !== BrowserErrorCaptureEnum.tryAndCatch
|
|
530
535
|
) {
|
|
531
|
-
window.
|
|
536
|
+
window[PropertySymbol.evaluateScript](code, {
|
|
537
|
+
filename: this[PropertySymbol.ownerDocument].location.href
|
|
538
|
+
});
|
|
532
539
|
} else {
|
|
533
540
|
try {
|
|
534
|
-
window.
|
|
541
|
+
window[PropertySymbol.evaluateScript](code, {
|
|
542
|
+
filename: this[PropertySymbol.ownerDocument].location.href
|
|
543
|
+
});
|
|
535
544
|
} catch (error) {
|
|
536
545
|
window[PropertySymbol.dispatchError](<Error>error);
|
|
537
546
|
}
|
|
@@ -560,7 +569,7 @@ export default class HTMLScriptElement extends HTMLElement {
|
|
|
560
569
|
|
|
561
570
|
if (
|
|
562
571
|
browserSettings &&
|
|
563
|
-
(browserSettings.disableJavaScriptFileLoading || browserSettings.
|
|
572
|
+
(browserSettings.disableJavaScriptFileLoading || !browserSettings.enableJavaScriptEvaluation)
|
|
564
573
|
) {
|
|
565
574
|
if (browserSettings.handleDisabledFileLoadingAsSuccess) {
|
|
566
575
|
this.dispatchEvent(new Event('load'));
|
|
@@ -639,7 +648,7 @@ export default class HTMLScriptElement extends HTMLElement {
|
|
|
639
648
|
|
|
640
649
|
if (
|
|
641
650
|
browserSettings &&
|
|
642
|
-
(browserSettings.disableJavaScriptFileLoading || browserSettings.
|
|
651
|
+
(browserSettings.disableJavaScriptFileLoading || !browserSettings.enableJavaScriptEvaluation)
|
|
643
652
|
) {
|
|
644
653
|
if (browserSettings.handleDisabledFileLoadingAsSuccess) {
|
|
645
654
|
this.dispatchEvent(new Event('load'));
|
|
@@ -693,18 +702,18 @@ export default class HTMLScriptElement extends HTMLElement {
|
|
|
693
702
|
|
|
694
703
|
this[PropertySymbol.ownerDocument][PropertySymbol.currentScript] = this;
|
|
695
704
|
|
|
696
|
-
const code = `${response.content}\n//# sourceURL=${
|
|
697
|
-
response.virtualServerFile || absoluteURLString
|
|
698
|
-
}`;
|
|
699
|
-
|
|
700
705
|
if (
|
|
701
706
|
browserSettings.disableErrorCapturing ||
|
|
702
707
|
browserSettings.errorCapture !== BrowserErrorCaptureEnum.tryAndCatch
|
|
703
708
|
) {
|
|
704
|
-
this[PropertySymbol.window].
|
|
709
|
+
this[PropertySymbol.window][PropertySymbol.evaluateScript](response.content, {
|
|
710
|
+
filename: response.virtualServerFile || absoluteURLString
|
|
711
|
+
});
|
|
705
712
|
} else {
|
|
706
713
|
try {
|
|
707
|
-
this[PropertySymbol.window].
|
|
714
|
+
this[PropertySymbol.window][PropertySymbol.evaluateScript](response.content, {
|
|
715
|
+
filename: response.virtualServerFile || absoluteURLString
|
|
716
|
+
});
|
|
708
717
|
} catch (error) {
|
|
709
718
|
this[PropertySymbol.ownerDocument][PropertySymbol.currentScript] = null;
|
|
710
719
|
window[PropertySymbol.dispatchError](<Error>error);
|
|
@@ -25,6 +25,9 @@ import BrowserWindow from '../../window/BrowserWindow.js';
|
|
|
25
25
|
* https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.
|
|
26
26
|
*/
|
|
27
27
|
export default class HTMLSelectElement extends HTMLElement {
|
|
28
|
+
// Index signature
|
|
29
|
+
[index: number]: HTMLOptionElement | undefined;
|
|
30
|
+
|
|
28
31
|
// Injected by WindowContextClassExtender
|
|
29
32
|
protected declare [PropertySymbol.window]: BrowserWindow;
|
|
30
33
|
|
|
@@ -331,6 +331,26 @@ const TIMER = {
|
|
|
331
331
|
|
|
332
332
|
const IS_NODE_JS_TIMEOUT_ENVIRONMENT = setTimeout.toString().includes('new Timeout');
|
|
333
333
|
|
|
334
|
+
const IS_CODE_GENERATION_FROM_STRINGS_ENVIRONMENT = (() => {
|
|
335
|
+
try {
|
|
336
|
+
// eslint-disable-next-line no-new-func
|
|
337
|
+
new Function('return true;')();
|
|
338
|
+
return true;
|
|
339
|
+
} catch {
|
|
340
|
+
return false;
|
|
341
|
+
}
|
|
342
|
+
})();
|
|
343
|
+
|
|
344
|
+
const IS_UNFROZEN_INTRINSICS_ENVIRONMENT = (() => {
|
|
345
|
+
try {
|
|
346
|
+
(<any>globalThis.Function)['$UNFROZEN$'] = true;
|
|
347
|
+
delete (<any>globalThis.Function)['$UNFROZEN$'];
|
|
348
|
+
return true;
|
|
349
|
+
} catch {
|
|
350
|
+
return false;
|
|
351
|
+
}
|
|
352
|
+
})();
|
|
353
|
+
|
|
334
354
|
/**
|
|
335
355
|
* Class for PerformanceObserverEntryList as it is only available as an interface from Node.js.
|
|
336
356
|
*/
|
|
@@ -779,6 +799,7 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
|
779
799
|
public declare encodeURI: typeof encodeURI;
|
|
780
800
|
public declare encodeURIComponent: typeof encodeURIComponent;
|
|
781
801
|
public declare eval: typeof eval;
|
|
802
|
+
|
|
782
803
|
/**
|
|
783
804
|
* @deprecated
|
|
784
805
|
*/
|
|
@@ -849,6 +870,8 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
|
849
870
|
|
|
850
871
|
this.#browserFrame = browserFrame;
|
|
851
872
|
|
|
873
|
+
this[PropertySymbol.validateJavaScriptExecutionEnvironment]();
|
|
874
|
+
|
|
852
875
|
this.console = browserFrame.page.console;
|
|
853
876
|
|
|
854
877
|
this[PropertySymbol.readyStateManager] = new DocumentReadyStateManager(browserFrame);
|
|
@@ -1806,6 +1829,18 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
|
1806
1829
|
this.dispatchEvent(new ErrorEvent('error', { message: error.message, error }));
|
|
1807
1830
|
}
|
|
1808
1831
|
|
|
1832
|
+
/**
|
|
1833
|
+
* Evaluates code in a VM context.
|
|
1834
|
+
*
|
|
1835
|
+
* @param code Code.
|
|
1836
|
+
* @param [options] Options.
|
|
1837
|
+
* @param [options.filename] Filename.
|
|
1838
|
+
* @returns any.
|
|
1839
|
+
*/
|
|
1840
|
+
public [PropertySymbol.evaluateScript](code: string, options?: { filename?: string }): any {
|
|
1841
|
+
return new VM.Script(code, options).runInContext(this);
|
|
1842
|
+
}
|
|
1843
|
+
|
|
1809
1844
|
/**
|
|
1810
1845
|
* Setup of VM context.
|
|
1811
1846
|
*/
|
|
@@ -1819,6 +1854,28 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
|
1819
1854
|
}
|
|
1820
1855
|
}
|
|
1821
1856
|
|
|
1857
|
+
/**
|
|
1858
|
+
* Checks if the JavaScript execution environment is secure and outputs a warning if not.
|
|
1859
|
+
*/
|
|
1860
|
+
protected [PropertySymbol.validateJavaScriptExecutionEnvironment](): void {
|
|
1861
|
+
const browserFrame = this.#browserFrame;
|
|
1862
|
+
if (
|
|
1863
|
+
(IS_CODE_GENERATION_FROM_STRINGS_ENVIRONMENT || IS_UNFROZEN_INTRINSICS_ENVIRONMENT) &&
|
|
1864
|
+
browserFrame.page.context.browser.settings.enableJavaScriptEvaluation &&
|
|
1865
|
+
!browserFrame.page.context.browser.settings.suppressInsecureJavaScriptEnvironmentWarning &&
|
|
1866
|
+
!browserFrame.page.context.browser.settings.suppressCodeGenerationFromStringsWarning
|
|
1867
|
+
) {
|
|
1868
|
+
// eslint-disable-next-line no-console
|
|
1869
|
+
console.warn(
|
|
1870
|
+
'\nWarning! Happy DOM has JavaScript evaluation enabled and is running in an insecure environment.' +
|
|
1871
|
+
'\n\nA VM Context is not an isolated environment, and if you run untrusted code you are at risk of RCE (Remote Code Execution) attacks. The attacker can escape the VM and run code at process level.' +
|
|
1872
|
+
'\n\nIt is recommended to disable code generation and freeze all builtins at process level by running node with the flags "--disallow-code-generation-from-strings" and "--frozen-intrinsics".' +
|
|
1873
|
+
' You can suppress this warning by setting "suppressInsecureJavaScriptEnvironmentWarning" to "true" at your own risk.' +
|
|
1874
|
+
'\n\nFor more information, see https://github.com/capricorn86/happy-dom/wiki/JavaScript-Evaluation-Warning\n\n'
|
|
1875
|
+
);
|
|
1876
|
+
}
|
|
1877
|
+
}
|
|
1878
|
+
|
|
1822
1879
|
/**
|
|
1823
1880
|
* Destroys the window.
|
|
1824
1881
|
*/
|