tor-browser

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

browser_pageinfo_previewBrowser.js (2029B)


      1 const Cm = Components.manager;
      2 
      3 async function testPreviewBrowser(pageInfo) {
      4  await BrowserTestUtils.waitForEvent(pageInfo, "page-info-init");
      5  info("pageInfo initialized");
      6  let tree = pageInfo.document.getElementById("imagetree");
      7  Assert.ok(!!tree, "should have imagetree element");
      8 
      9  // i=0: <img>
     10  // i=1: <video>
     11  // i=2: <audio>
     12  for (let i = 0; i < 3; i++) {
     13    info("imagetree select " + i);
     14    tree.view.selection.select(i);
     15    tree.ensureRowIsVisible(i);
     16    tree.focus();
     17 
     18    info("Waiting for the page-info-mediapreview-load event");
     19    await BrowserTestUtils.waitForEvent(
     20      pageInfo,
     21      "page-info-mediapreview-load"
     22    );
     23 
     24    info("preview load " + i);
     25 
     26    let mediaBrowser = pageInfo.document.getElementById("mediaBrowser");
     27 
     28    Assert.equal(
     29      mediaBrowser.browsingContext.currentRemoteType,
     30      "webIsolated=https://example.com",
     31      "Preview mediaBrowser is running in a webIsolated process"
     32    );
     33 
     34    Assert.equal(
     35      gBrowser.selectedBrowser.browsingContext.group,
     36      mediaBrowser.browsingContext.group,
     37      "Preview browser is in the same group as the original page"
     38    );
     39  }
     40 }
     41 
     42 async function test() {
     43  waitForExplicitFinish();
     44 
     45  let url =
     46    "https://example.com/browser/browser/base/content/test/pageinfo/image.html";
     47  gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
     48  let loadPromise = BrowserTestUtils.browserLoaded(
     49    gBrowser.selectedBrowser,
     50    false,
     51    url
     52  );
     53  BrowserTestUtils.startLoadingURIString(gBrowser.selectedBrowser, url);
     54  await loadPromise;
     55 
     56  // Pass a dummy imageElement, if there isn't an imageElement, pageInfo.js
     57  // will do a preview, however this sometimes will cause intermittent failures,
     58  // see bug 1403365.
     59  let pageInfo = BrowserCommands.pageInfo(url, "mediaTab", {});
     60  info("waitForEvent pageInfo");
     61  await BrowserTestUtils.waitForEvent(pageInfo, "load");
     62 
     63  info("calling testPreviewBrowser");
     64  await testPreviewBrowser(pageInfo);
     65 
     66  pageInfo.close();
     67  gBrowser.removeCurrentTab();
     68  finish();
     69 }