tor-browser

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

browser_visual_viewport_iframe.js (1595B)


      1 "use strict";
      2 
      3 add_task(async () => {
      4  function httpURL(filename, host = "https://example.com/") {
      5    let root = getRootDirectory(gTestPath).replace(
      6      "chrome://mochitests/content/",
      7      host
      8    );
      9    return root + filename;
     10  }
     11 
     12  await SpecialPowers.pushPrefEnv({
     13    set: [["dom.meta-viewport.enabled", true]],
     14  });
     15 
     16  const fissionWindow = await BrowserTestUtils.openNewBrowserWindow({
     17    fission: true,
     18  });
     19  const url = httpURL(
     20    "test_visual_viewport_in_oopif.html",
     21    "http://mochi.test:8888/"
     22  );
     23  const crossOriginIframeUrl = httpURL("visual_viewport_in_child.html");
     24 
     25  try {
     26    await BrowserTestUtils.withNewTab(
     27      { gBrowser: fissionWindow.gBrowser, url },
     28      async browser => {
     29        await SpecialPowers.spawn(
     30          browser,
     31          [crossOriginIframeUrl],
     32          async iframeUrl => {
     33            const iframe = content.document.getElementById("iframe");
     34            iframe.setAttribute("src", iframeUrl);
     35 
     36            let { width, height } = await new Promise(resolve => {
     37              content.window.addEventListener("message", msg => {
     38                resolve(msg.data);
     39              });
     40            });
     41 
     42            is(
     43              width,
     44              300,
     45              "visualViewport.width shouldn't be affected in out-of-process iframes"
     46            );
     47            is(
     48              height,
     49              300,
     50              "visualViewport.height shouldn't be affected in out-of-process iframes"
     51            );
     52          }
     53        );
     54      }
     55    );
     56  } finally {
     57    await BrowserTestUtils.closeWindow(fissionWindow);
     58  }
     59 });