broadcastchannel-success-and-failure.https.html (1070B)
1 <!doctype html> 2 <title>SharedArrayBuffer cannot cross agent clusters, BroadcastChannel edition</title> 3 <script src=/resources/testharness.js></script> 4 <script src=/resources/testharnessreport.js></script> 5 <script> 6 async_test(t => { 7 const channel = new BroadcastChannel("anne was here"), 8 dw = new Worker("resources/broadcastchannel-worker.js"), 9 sw = new SharedWorker("resources/broadcastchannel-sharedworker.js"); 10 let startCounter = 0, 11 dwStatus = "unknown", 12 swStatus = "unknown"; 13 14 channel.onmessage = t.step_func(({ data }) => { 15 if(data === "hi") { 16 startCounter++; 17 if(startCounter === 2) { 18 const sab = new SharedArrayBuffer(); 19 channel.postMessage(sab); 20 } else if(startCounter > 2) { 21 assert_unreached(); 22 } 23 } else if(data === "dw-success") { 24 dwStatus = "success"; 25 } else if(data === "sw-success") { 26 swStatus = "success"; 27 } else { 28 assert_unreached(); 29 } 30 if(dwStatus === "success" && swStatus === "success") { 31 t.done(); 32 } 33 }); 34 }); 35 </script>