file_worker_src.js (1558B)
1 var mySharedWorker = new SharedWorker("file_spawn_shared_worker.js"); 2 mySharedWorker.port.onmessage = function (ev) { 3 parent.postMessage( 4 { 5 result: "shared-worker-allowed", 6 href: document.location.href, 7 }, 8 "*" 9 ); 10 mySharedWorker.port.close(); 11 }; 12 mySharedWorker.onerror = function (evt) { 13 evt.preventDefault(); 14 parent.postMessage( 15 { 16 result: "shared-worker-blocked", 17 href: document.location.href, 18 }, 19 "*" 20 ); 21 mySharedWorker.port.close(); 22 }; 23 mySharedWorker.port.start(); 24 mySharedWorker.port.postMessage("foo"); 25 26 // -------------------------------------------- 27 28 let myWorker = new Worker("file_spawn_worker.js"); 29 myWorker.onmessage = function (event) { 30 parent.postMessage( 31 { 32 result: "worker-allowed", 33 href: document.location.href, 34 }, 35 "*" 36 ); 37 }; 38 myWorker.onerror = function (event) { 39 parent.postMessage( 40 { 41 result: "worker-blocked", 42 href: document.location.href, 43 }, 44 "*" 45 ); 46 }; 47 48 // -------------------------------------------- 49 50 navigator.serviceWorker 51 .register("file_spawn_service_worker.js") 52 .then(function (reg) { 53 // registration worked 54 reg.unregister().then(function () { 55 parent.postMessage( 56 { 57 result: "service-worker-allowed", 58 href: document.location.href, 59 }, 60 "*" 61 ); 62 }); 63 }) 64 .catch(function (error) { 65 // registration failed 66 parent.postMessage( 67 { 68 result: "service-worker-blocked", 69 href: document.location.href, 70 }, 71 "*" 72 ); 73 });