michael@0: var testUrls = michael@0: [ michael@0: "data:text/html,
Testing alert during pagehide/beforeunload/unload", michael@0: "data:text/html,Testing prompt during pagehide/beforeunload/unload", michael@0: "data:text/html,Testing confirm during pagehide/beforeunload/unload", michael@0: ]; michael@0: var testsDone = 0; michael@0: michael@0: function test() michael@0: { michael@0: waitForExplicitFinish(); michael@0: runTest(); michael@0: } michael@0: michael@0: function runTest() michael@0: { michael@0: whenNewTabLoaded(window, function() { michael@0: gBrowser.selectedBrowser.addEventListener("load", onLoad, true); michael@0: executeSoon(function() { michael@0: info("Loading page with pagehide, beforeunload, and unload handlers that attempt to create dialogs"); michael@0: gBrowser.selectedBrowser.loadURI(testUrls[testsDone]); michael@0: }); michael@0: }); michael@0: } michael@0: michael@0: function onLoad(event) michael@0: { michael@0: info("Page loaded"); michael@0: michael@0: event.target.removeEventListener("load", onLoad, true); michael@0: gBrowser.selectedBrowser.addEventListener("unload", done, true); michael@0: michael@0: executeSoon(function () { michael@0: info("Closing page"); michael@0: gBrowser.removeCurrentTab(); michael@0: }); michael@0: } michael@0: michael@0: function done() { michael@0: ok(true, "Page closed (hopefully) without timeout"); michael@0: michael@0: testsDone++; michael@0: if (testsDone == testUrls.length) { michael@0: finish(); michael@0: return; michael@0: } michael@0: michael@0: executeSoon(runTest); michael@0: }