tor-browser

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

browser_browserLoaded_content_loaded.js (1398B)


      1 /* Any copyright is dedicated to the Public Domain.
      2 * http://creativecommons.org/publicdomain/zero/1.0/ */
      3 "use strict";
      4 
      5 function isDOMLoaded(browser) {
      6  return SpecialPowers.spawn(browser, [], async function () {
      7    Assert.equal(
      8      content.document.readyState,
      9      "complete",
     10      "Browser should be loaded."
     11    );
     12  });
     13 }
     14 
     15 // It checks if calling BrowserTestUtils.browserLoaded() yields
     16 // browser object.
     17 add_task(async function () {
     18  let tab = BrowserTestUtils.addTab(gBrowser, "http://example.com");
     19  let browser = tab.linkedBrowser;
     20  await BrowserTestUtils.browserLoaded(browser);
     21  await isDOMLoaded(browser);
     22  gBrowser.removeTab(tab);
     23 });
     24 
     25 // It checks that BrowserTestUtils.browserLoaded() works well with
     26 // promise.all().
     27 add_task(async function () {
     28  let tabURLs = [
     29    `http://example.org`,
     30    `http://mochi.test:8888`,
     31    `http://test:80`,
     32  ];
     33  // Add tabs, get the respective browsers
     34  let browsers = tabURLs.map(
     35    u => BrowserTestUtils.addTab(gBrowser, u).linkedBrowser
     36  );
     37 
     38  // wait for promises to settle
     39  await Promise.all(
     40    (function* () {
     41      for (let b of browsers) {
     42        yield BrowserTestUtils.browserLoaded(b);
     43      }
     44    })()
     45  );
     46  for (const browser of browsers) {
     47    await isDOMLoaded(browser);
     48  }
     49  // cleanup
     50  browsers
     51    .map(browser => gBrowser.getTabForBrowser(browser))
     52    .forEach(tab => gBrowser.removeTab(tab));
     53 });