tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

broadcast-channel.html (1089B)


      1 <!DOCTYPE html>
      2 <script src="/resources/testharness.js"></script>
      3 <script src="/resources/testharnessreport.js"></script>
      4 <script src="utils.js"></script>
      5 <script src="deferred-promise-utils.js"></script>
      6 <script>
      7 
      8 const params = new URLSearchParams(location.search);
      9 
     10 // The main test page (restriction-broadcast-channel.html) loads the initiator
     11 // page, then the initiator page will prerender itself with the `prerendering`
     12 // parameter.
     13 const isPrerendering = params.has('prerendering');
     14 
     15 if (!isPrerendering) {
     16  loadInitiatorPage();
     17 } else {
     18  const prerenderEventCollector = new PrerenderEventCollector();
     19 
     20  // Create separate channels as a sender channel cannot receive a message sent
     21  // by itself.
     22  const sender = new BroadcastChannel('test');
     23  const receiver = new BroadcastChannel('test');
     24 
     25  const promise = new Promise(resolve => {
     26    receiver.onmessage = e => {
     27      prerenderEventCollector.addEvent(`received message: ${e.data}`);
     28      resolve();
     29    };
     30  });
     31  sender.postMessage('hello');
     32 
     33  prerenderEventCollector.start(promise, 'BroadcastChannel');
     34 }
     35 </script>