test_nofetch_handler.html (1976B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>Test for Bugs 1181127 and 1325101</title> 5 <script src="/tests/SimpleTest/SimpleTest.js"></script> 6 <script src="error_reporting_helpers.js"></script> 7 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 8 <meta http-equiv="Content-type" content="text/html;charset=UTF-8"> 9 </head> 10 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1181127">Mozilla Bug 1181127</a> 11 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1181127">Mozilla Bug 1325101</a> 12 <p id="display"></p> 13 <div id="content" style="display: none"> 14 15 </div> 16 <pre id="test"> 17 </pre> 18 19 <script src="utils.js"></script> 20 <script class="testbody" type="text/javascript"> 21 22 add_task(function setupPrefs() { 23 return SpecialPowers.pushPrefEnv({"set": [ 24 ["dom.serviceWorkers.enabled", true], 25 ["dom.serviceWorkers.testing.enabled", true], 26 // Make sure the event handler during the install event persists. This ensures 27 // the reason for which the interception doesn't occur is because of the 28 // handlesFetch=false flag from ServiceWorkerInfo. 29 ["dom.serviceWorkers.idle_timeout", 299999], 30 ]}); 31 }); 32 33 var iframeg; 34 function create_iframe(url) { 35 return new Promise(function(res) { 36 iframe = document.createElement('iframe'); 37 iframe.src = url; 38 iframe.onload = function() { res(iframe) } 39 document.body.appendChild(iframe); 40 iframeg = iframe; 41 }) 42 } 43 44 add_task(async function test_nofetch_worker() { 45 let registration = await navigator.serviceWorker.register( 46 "nofetch_handler_worker.js", { scope: "./nofetch_handler_worker/"} ) 47 .then(swr => waitForState(swr.installing, 'activated', swr)); 48 49 let iframe = await create_iframe("./nofetch_handler_worker/doesnt_exist.html"); 50 ok(!iframe.contentDocument.body.innerHTML.includes("intercepted"), "Request was not intercepted."); 51 52 await SpecialPowers.popPrefEnv(); 53 await registration.unregister(); 54 }); 55 </script> 56 </body> 57 </html>