tor-browser

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

browser_omta_tearoff_tab.js (1217B)


      1 /* Any copyright is dedicated to the Public Domain.
      2 * http://creativecommons.org/publicdomain/zero/1.0/ */
      3 
      4 "use strict";
      5 
      6 var testPage =
      7  "data:text/html,<head><style>body{animation: fadein 1s infinite;} @keyframes fadein{from{opacity: 0;}}</style><body>Text";
      8 
      9 add_task(async function test() {
     10  let tab = BrowserTestUtils.addTab(gBrowser, testPage, {
     11    skipAnimation: true,
     12  });
     13  await BrowserTestUtils.browserLoaded(tab.linkedBrowser);
     14  await BrowserTestUtils.switchTab(gBrowser, tab);
     15 
     16  await SpecialPowers.spawn(tab.linkedBrowser, [], async () => {
     17    const anim = content.document.getAnimations()[0];
     18    await anim.ready;
     19    ok(SpecialPowers.wrap(anim).isRunningOnCompositor);
     20  });
     21 
     22  let promiseWin = BrowserTestUtils.waitForNewWindow();
     23  let newWin = gBrowser.replaceTabWithWindow(tab);
     24  await promiseWin;
     25  Assert.ok(
     26    ChromeUtils.vsyncEnabled(),
     27    "vsync should be enabled as we have a tab with an animation"
     28  );
     29 
     30  newWin.close();
     31  await TestUtils.waitForCondition(
     32    () => !ChromeUtils.vsyncEnabled(),
     33    "wait for vsync to be disabled"
     34  );
     35  Assert.ok(
     36    !ChromeUtils.vsyncEnabled(),
     37    "vsync should be disabled after closing window that contained an animated tab"
     38  );
     39 });