tor-browser

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

document-destroyed.tentative.window.js (1668B)


      1 // META: title=Close event test when the document is destroyed.
      2 // META: script=/common/dispatcher/dispatcher.js
      3 // META: script=/common/get-host-info.sub.js
      4 // META: script=/common/utils.js
      5 // META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
      6 // META: script=resources/helper.js
      7 
      8 promise_test(async t => {
      9  const rc = await addWindow();
     10  const waitForPort = expectMessagePortFromWindow(window);
     11  await createMessageChannelAndSendPort(rc);
     12  const closeEventPromise = createCloseEventPromise(await waitForPort);
     13  rc.navigateToNew();
     14  await closeEventPromise;
     15 }, 'The context is navigated to a new document and a close event is fired.')
     16 
     17 promise_test(async t => {
     18  const rc = await addWindow();
     19  const waitForPort = expectMessagePortFromWindow(window);
     20  await createMessageChannelAndSendPort(rc);
     21  const closeEventPromise = createCloseEventPromise(await waitForPort);
     22  rc.executeScript(() => window.close());
     23  await closeEventPromise;
     24 }, 'The window is closed and a close event is fired.')
     25 
     26 promise_test(async t => {
     27  let iframe;
     28  const waitForLoad = new Promise(resolve => {
     29    iframe = document.createElement('iframe');
     30    iframe.onload = resolve;
     31    document.documentElement.appendChild(iframe);
     32  });
     33  await waitForLoad;
     34 
     35  const waitForPort = expectMessagePortFromWindow(iframe.contentWindow);
     36  const {port1, port2} = new MessageChannel();
     37  port1.start();
     38  iframe.contentWindow.postMessage('', '*', [port2]);
     39  await waitForPort;
     40  const closeEventPromise = createCloseEventPromise(port1);
     41  iframe.remove();
     42  await closeEventPromise;
     43 }, 'The iframe is deleted and a close event is fired.')