test_enabled_pref.html (1434B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>Bug 1645054 - test dom.serviceWorkers.enabled preference</title> 5 </head> 6 <script src="/tests/SimpleTest/SimpleTest.js"></script> 7 <script src="utils.js"></script> 8 <script> 9 10 function create_iframe(url) { 11 return new Promise(function(res) { 12 iframe = document.createElement('iframe'); 13 iframe.src = url; 14 iframe.onload = function() { res(iframe) } 15 document.body.appendChild(iframe); 16 }); 17 } 18 19 async function do_fetch(pref) { 20 await SpecialPowers.pushPrefEnv({ set: [pref] }); 21 22 let iframe = await create_iframe("./pref/fetch_nonexistent_file.html"); 23 let status = await iframe.contentWindow.fetch_status(); 24 25 await SpecialPowers.popPrefEnv(); 26 return status; 27 } 28 29 add_task(async () => { 30 await SpecialPowers.pushPrefEnv({ 31 set: [['dom.serviceWorkers.testing.enabled', true]] 32 }); 33 34 let reg = await navigator.serviceWorker.register( 35 'pref/intercept_nonexistent_file_sw.js'); 36 await waitForState(reg.installing, 'activated'); 37 38 let status; 39 40 status = await do_fetch(['dom.serviceWorkers.enabled', true]); 41 is(status, 200, 'SW enabled'); 42 43 status = await do_fetch(['dom.serviceWorkers.enabled', false]); 44 is(status, 404, 'SW disabled'); 45 46 status = await do_fetch(['dom.serviceWorkers.enabled', true]); 47 is(status, 200, 'SW enabled again'); 48 49 await reg.unregister(); 50 }); 51 52 </script> 53 <body> 54 </body> 55 </html>