test_bug1739957.html (1316B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>Importing a node should respect sandbox</title> 6 <script src="/tests/SimpleTest/SimpleTest.js"></script> 7 <link rel="stylesheet" href="/tests/SimpleTest/test.css"/> 8 <script> 9 SimpleTest.waitForExplicitFinish(); 10 11 function imageHasLoaded() { 12 return fetch("bug1739957.sjs?loaded") 13 .then(response => response.text()) 14 .then(loaded => Boolean(loaded)); 15 } 16 17 async function test() { 18 let newDiv = document.createElement("div"); 19 newDiv.innerHTML = `<img src="bug1739957.sjs" onload="parent.postMessage('handlerRuns', '*')">`; 20 21 let eventHandlerCalled = false; 22 window.addEventListener("message", () => { eventHandlerCalled = true; }, { once: true }) 23 24 document.getElementById("frame").contentDocument.body.appendChild(newDiv); 25 26 await SimpleTest.promiseWaitForCondition(imageHasLoaded, "Wait for image to load"); 27 28 ok(!eventHandlerCalled, "Event handlers on imported nodes shouldn't execute if sandbox doesn't allow script"); 29 30 SimpleTest.finish(); 31 } 32 </script> 33 </head> 34 <body onload="test();"> 35 <p id="display"></p> 36 <iframe id="frame" sandbox="allow-same-origin" src="about:blank"></iframe> 37 <div id="content" style="display: none"></div> 38 <pre id="test"></pre> 39 </body> 40 </html>