test_javascript_sandboxed_popup.html (881B)
1 <!DOCTYPE html> 2 <head> 3 <meta charset="utf-8"> 4 <script src="/tests/SimpleTest/SimpleTest.js"></script> 5 <link rel="stylesheet" href="/tests/SimpleTest/test.css" /> 6 </head> 7 8 <body> 9 <iframe srcdoc="<a href='javascript:opener.parent.ok(false, `The JS ran!`)' target=_blank rel=opener>click</a>" 10 sandbox="allow-popups allow-same-origin"></iframe> 11 12 <script> 13 add_task(async function() { 14 let promise = new Promise(resolve =>{ 15 SpecialPowers.addObserver(function obs(subject) { 16 is(subject.opener, window[0], 17 "blocked javascript URI should have been targeting the pop-up document"); 18 subject.close(); 19 SpecialPowers.removeObserver(obs, "javascript-uri-blocked-by-sandbox"); 20 resolve(); 21 }, "javascript-uri-blocked-by-sandbox"); 22 }); 23 document.querySelector("iframe").contentDocument.querySelector("a").click(); 24 await promise; 25 }); 26 </script> 27 </body>