mirror of
				https://github.com/mozilla/gecko-dev.git
				synced 2025-10-31 16:28:05 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			40 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| var testUrls = [
 | |
|   "data:text/html,<script>" +
 | |
|     "function handle(evt) {" +
 | |
|     "evt.target.removeEventListener(evt.type, handle, true);" +
 | |
|     "try { alert('This should NOT appear'); } catch(e) { }" +
 | |
|     "}" +
 | |
|     "window.addEventListener('pagehide', handle, true);" +
 | |
|     "window.addEventListener('beforeunload', handle, true);" +
 | |
|     "window.addEventListener('unload', handle, true);" +
 | |
|     "</script><body>Testing alert during pagehide/beforeunload/unload</body>",
 | |
|   "data:text/html,<script>" +
 | |
|     "function handle(evt) {" +
 | |
|     "evt.target.removeEventListener(evt.type, handle, true);" +
 | |
|     "try { prompt('This should NOT appear'); } catch(e) { }" +
 | |
|     "}" +
 | |
|     "window.addEventListener('pagehide', handle, true);" +
 | |
|     "window.addEventListener('beforeunload', handle, true);" +
 | |
|     "window.addEventListener('unload', handle, true);" +
 | |
|     "</script><body>Testing prompt during pagehide/beforeunload/unload</body>",
 | |
|   "data:text/html,<script>" +
 | |
|     "function handle(evt) {" +
 | |
|     "evt.target.removeEventListener(evt.type, handle, true);" +
 | |
|     "try { confirm('This should NOT appear'); } catch(e) { }" +
 | |
|     "}" +
 | |
|     "window.addEventListener('pagehide', handle, true);" +
 | |
|     "window.addEventListener('beforeunload', handle, true);" +
 | |
|     "window.addEventListener('unload', handle, true);" +
 | |
|     "</script><body>Testing confirm during pagehide/beforeunload/unload</body>",
 | |
| ];
 | |
| 
 | |
| add_task(async function () {
 | |
|   for (let url of testUrls) {
 | |
|     let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, url);
 | |
|     ok(true, "Loaded page " + url);
 | |
|     // Wait one turn of the event loop before closing, so everything settles.
 | |
|     await new Promise(resolve => setTimeout(resolve, 0));
 | |
|     BrowserTestUtils.removeTab(tab);
 | |
|     ok(true, "Closed page " + url + " without timeout");
 | |
|   }
 | |
| });
 | 
