browser_scriptCache_load_events.js (1384B)
1 const TEST_URL = 2 "https://example.com/browser/dom/tests/browser/page_scriptCache_load_events.html"; 3 4 async function testOrder() { 5 ChromeUtils.clearResourceCache(); 6 Services.cache2.clear(); 7 8 const tab = await BrowserTestUtils.openNewForegroundTab({ 9 gBrowser, 10 url: TEST_URL, 11 }); 12 13 // The script should be executed in between DOMContentLoaded and load events. 14 15 // Uncached cache. 16 let result = await SpecialPowers.spawn(tab.linkedBrowser, [], () => { 17 return content.document.getElementById("result").textContent; 18 }); 19 is(result, "DOMContentLoaded+script+load"); 20 21 await BrowserTestUtils.reloadTab(tab); 22 23 // Cached cache. 24 result = await SpecialPowers.spawn(tab.linkedBrowser, [], () => { 25 return content.document.getElementById("result").textContent; 26 }); 27 is(result, "DOMContentLoaded+script+load"); 28 29 BrowserTestUtils.removeTab(tab); 30 } 31 32 add_task(async function test_withoutNavigationCache() { 33 await SpecialPowers.pushPrefEnv({ 34 set: [["dom.script_loader.experimental.navigation_cache", false]], 35 }); 36 registerCleanupFunction(() => SpecialPowers.popPrefEnv()); 37 38 await testOrder(); 39 }); 40 41 add_task(async function test_withNavigationCache() { 42 await SpecialPowers.pushPrefEnv({ 43 set: [["dom.script_loader.experimental.navigation_cache", true]], 44 }); 45 registerCleanupFunction(() => SpecialPowers.popPrefEnv()); 46 47 await testOrder(); 48 });