tor-browser

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

explicitly-closed.tentative.window.js (1800B)


      1 // META: title=Close event test when an entangled port is explicitly closed.
      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 async_test(t => {
      9  const channel = new MessageChannel();
     10  channel.port1.start();
     11  channel.port2.start();
     12  channel.port2.onclose = t.step_func_done();
     13  channel.port1.close();
     14 }, 'Close event on port2 is fired when port1 is explicitly closed');
     15 
     16 async_test(t => {
     17  const channel = new MessageChannel();
     18  channel.port1.start();
     19  channel.port2.start();
     20  channel.port1.onclose =
     21      t.unreached_func('Should not fire a close event on port1');
     22  channel.port1.close();
     23  t.step_timeout(t.step_func_done(), 1000);
     24 }, 'Close event on port1 is not fired when port1 is explicitly closed');
     25 
     26 promise_test(async t => {
     27  const rc = await addWindow();
     28  const waitForPort = expectMessagePortFromWindow(window);
     29  await createMessageChannelAndSendPort(rc);
     30  const closeEventPromise = createCloseEventPromise(await waitForPort);
     31  rc.executeScript(() => {
     32    window.closePort();
     33  });
     34  await closeEventPromise;
     35 }, 'Close event on port2 is fired when port1, which is in a different window, is explicitly closed.')
     36 
     37 promise_test(async t => {
     38  const rc = await addWindow();
     39  const waitForPort = expectMessagePortFromWindowWithoutStartingIt(window);
     40  await createMessageChannelAndSendPortFollowedByClose(rc);
     41  const port = await waitForPort;
     42  const closeEventPromise = createCloseEventPromise(port);
     43  port.start();
     44  await closeEventPromise;
     45 }, 'Close event on port2 is fired when port1, in a different window, is closed during the transfer of port2.')