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 });