tor-browser

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

postMessage_crosssite.sub.htm (1011B)


      1 <!DOCTYPE html>
      2 <script src="/resources/testharness.js"></script>
      3 <script src="/resources/testharnessreport.js"></script>
      4 <body>
      5 <script>
      6 async function addIframeAndReceiveMessage(path) {
      7  let url = new URL('resources/transfer-arraybuffer-to-parent.html', location);
      8  url.hostname = '{{hosts[alt][]}}';
      9 
     10  let frame = document.createElement('iframe');
     11  try {
     12    frame.src = url;
     13    document.body.appendChild(frame);
     14    return await new Promise((resolve, reject) => {
     15      window.addEventListener('message', e => resolve(e));
     16      window.addEventListener('messageerror', e => reject(new Error('received messageerror')));
     17    });
     18  } finally {
     19    frame.remove();
     20  }
     21 }
     22 
     23 promise_test(async () => {
     24  let messageEvent = await addIframeAndReceiveMessage('resources/transfer-arraybuffer-to-parent.html');
     25  assert_class_string(messageEvent.data, 'ArrayBuffer');
     26  assert_array_equals(new Uint8Array(messageEvent.data), [42, 222]);
     27 }, "cross-site windows can send transferred ArrayBuffer");
     28 </script>
     29 </body>