browser_layers_unloaded_while_interruptingJS.js (1005B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 add_task(async function test_check_layers_cleared() { 7 let initialTab = gBrowser.selectedTab; 8 await BrowserTestUtils.withNewTab("about:blank", async browser => { 9 await ContentTask.spawn(browser, null, () => { 10 return new Promise(resolve => { 11 content.requestAnimationFrame(() => { 12 content.setTimeout( 13 "let start = performance.now(); while (performance.now() < start + 5000);" 14 ); 15 resolve(); 16 }); 17 }); 18 }); 19 let layersCleared = BrowserTestUtils.waitForEvent( 20 window, 21 "MozLayerTreeCleared" 22 ); 23 let startWaiting = performance.now(); 24 await BrowserTestUtils.switchTab(gBrowser, initialTab); 25 await layersCleared; 26 Assert.less( 27 performance.now(), 28 startWaiting + 2000, 29 "MozLayerTreeCleared should be dispatched while the script is still running" 30 ); 31 }); 32 });