test_window_open_popupBlockerEnabled.html (1370B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>Bug 1901139 - Test Sec-Fetch-User for window.open when popup blocker is enabled</title> 5 <script src="/tests/SimpleTest/SimpleTest.js"></script> 6 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 7 </head> 8 9 <body> 10 <script> 11 12 add_setup(async function () { 13 await SpecialPowers.pushPrefEnv({ 14 set: [ 15 // Enable popup blocker 16 ["dom.disable_open_during_load", true], 17 ], 18 }); 19 }); 20 21 add_task(async function() { 22 var script = SpecialPowers.loadChromeScript(() => { 23 /* eslint-env mozilla/chrome-script */ 24 Services.obs.addObserver(function onExamResp(subject) { 25 let channel = subject.QueryInterface(Ci.nsIHttpChannel); 26 info("request observed: " + channel.URI.spec); 27 if (!channel.URI.spec.startsWith("https://example.org")) { 28 return; 29 } 30 31 try { 32 is(channel.getRequestHeader("Sec-Fetch-User"), "?1", "testing sec-fetch-user"); 33 } catch (e) { 34 ok(false, "sec-fetch-user should be set"); 35 } 36 37 sendAsyncMessage("test-pass"); 38 }, "http-on-stop-request"); 39 }); 40 41 let promise = new Promise(resolve => script.addMessageListener("test-pass", resolve)); 42 43 SpecialPowers.wrap(document).notifyUserGestureActivation(); 44 let win = window.open("https://example.org"); 45 46 await promise; 47 48 win.close(); 49 }); 50 51 </script> 52 </body> 53 </html>