test_WorkerDebugger_frozen.xhtml (2433B)
1 <?xml version="1.0"?> 2 <!-- 3 Any copyright is dedicated to the Public Domain. 4 http://creativecommons.org/publicdomain/zero/1.0/ 5 --> 6 <window title="Test for WorkerDebugger with frozen workers" 7 xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> 8 9 <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/> 10 <script src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"/> 11 <script type="application/javascript" src="dom_worker_helper.js"/> 12 13 <script type="application/javascript"> 14 <![CDATA[ 15 16 const WINDOW1_URL = "WorkerDebugger_frozen_window1.html"; 17 const WINDOW2_URL = "WorkerDebugger_frozen_window2.html"; 18 19 const WORKER1_URL = "WorkerDebugger_frozen_worker1.js"; 20 const WORKER2_URL = "WorkerDebugger_frozen_worker2.js"; 21 22 add_task( 23 async function runTest() { 24 await SpecialPowers.pushPrefEnv({set: 25 [["browser.sessionhistory.max_total_viewers", 10]]}); 26 27 let promise = waitForMultiple([ 28 waitForRegister(WORKER1_URL), 29 waitForWindowMessage(window, "ready"), 30 ]); 31 let testWin = window.open(WINDOW1_URL, "testWin");; 32 let [dbg1] = await promise; 33 is(dbg1.isClosed, false, 34 "debugger for worker on page 1 should not be closed"); 35 36 promise = waitForMultiple([ 37 waitForUnregister(WORKER1_URL), 38 waitForDebuggerClose(dbg1), 39 waitForRegister(WORKER2_URL), 40 waitForWindowMessage(window, "ready"), 41 ]); 42 testWin.location = WINDOW2_URL; 43 let [,, dbg2] = await promise; 44 is(dbg1.isClosed, true, 45 "debugger for worker on page 1 should be closed"); 46 is(dbg2.isClosed, false, 47 "debugger for worker on page 2 should not be closed"); 48 49 promise = Promise.all([ 50 waitForUnregister(WORKER2_URL), 51 waitForDebuggerClose(dbg2), 52 waitForRegister(WORKER1_URL) 53 ]); 54 testWin.history.back(); 55 [,, dbg1] = await promise; 56 is(dbg1.isClosed, false, 57 "debugger for worker on page 1 should not be closed"); 58 is(dbg2.isClosed, true, 59 "debugger for worker on page 2 should be closed"); 60 } 61 ); 62 63 ]]> 64 </script> 65 66 <body xmlns="http://www.w3.org/1999/xhtml"> 67 <p id="display"></p> 68 <div id="content" style="display:none;"></div> 69 <pre id="test"></pre> 70 </body> 71 <label id="test-result"/> 72 </window>