diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:47:29 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:47:29 +0000 |
commit | 0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d (patch) | |
tree | a31f07c9bcca9d56ce61e9a1ffd30ef350d513aa /dom/base/test/test_bug1739957.html | |
parent | Initial commit. (diff) | |
download | firefox-esr-upstream/115.8.0esr.tar.xz firefox-esr-upstream/115.8.0esr.zip |
Adding upstream version 115.8.0esr.upstream/115.8.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | dom/base/test/test_bug1739957.html | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/dom/base/test/test_bug1739957.html b/dom/base/test/test_bug1739957.html new file mode 100644 index 0000000000..fdfe1e3861 --- /dev/null +++ b/dom/base/test/test_bug1739957.html @@ -0,0 +1,40 @@ +<!DOCTYPE HTML> +<html> +<head> + <meta charset="utf-8"> + <title>Importing a node should respect sandbox</title> + <script src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" href="/tests/SimpleTest/test.css"/> + <script> + SimpleTest.waitForExplicitFinish(); + + function imageHasLoaded() { + return fetch("bug1739957.sjs?loaded") + .then(response => response.text()) + .then(loaded => Boolean(loaded)); + } + + async function test() { + let newDiv = document.createElement("div"); + newDiv.innerHTML = `<img src="bug1739957.sjs" onload="parent.postMessage('handlerRuns', '*')">`; + + let eventHandlerCalled = false; + window.addEventListener("message", () => { eventHandlerCalled = true; }, { once: true }) + + document.getElementById("frame").contentDocument.body.appendChild(newDiv); + + await SimpleTest.promiseWaitForCondition(imageHasLoaded, "Wait for image to load"); + + ok(!eventHandlerCalled, "Event handlers on imported nodes shouldn't execute if sandbox doesn't allow script"); + + SimpleTest.finish(); + } + </script> +</head> +<body onload="test();"> +<p id="display"></p> +<iframe id="frame" sandbox="allow-same-origin" src="about:blank"></iframe> +<div id="content" style="display: none"></div> +<pre id="test"></pre> +</body> +</html> |