forked from mirrors/gecko-dev
		
	 9853440599
			
		
	
	
		9853440599
		
	
	
	
	
		
			
			Differential Revision: https://phabricator.services.mozilla.com/D53741 --HG-- extra : moz-landing-system : lando
		
			
				
	
	
		
			83 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /* Any copyright is dedicated to the Public Domain.
 | |
|    http://creativecommons.org/publicdomain/zero/1.0/ */
 | |
| 
 | |
| "use strict";
 | |
| 
 | |
| /* Test for bug 1578379. */
 | |
| 
 | |
| add_task(async function test_window_open_about_blank() {
 | |
|   const URL =
 | |
|     "http://mochi.test:8888/browser/docshell/test/browser/file_open_about_blank.html";
 | |
|   let firstTab = await BrowserTestUtils.openNewForegroundTab(gBrowser, URL);
 | |
|   let promiseTabOpened = BrowserTestUtils.waitForNewTab(
 | |
|     gBrowser,
 | |
|     "about:blank"
 | |
|   );
 | |
| 
 | |
|   info("Opening about:blank using a click");
 | |
|   await SpecialPowers.spawn(firstTab.linkedBrowser, [""], async function() {
 | |
|     content.document.querySelector("#open").click();
 | |
|   });
 | |
| 
 | |
|   info("Waiting for the second tab to be opened");
 | |
|   let secondTab = await promiseTabOpened;
 | |
| 
 | |
|   info("Detaching tab");
 | |
|   let windowOpenedPromise = BrowserTestUtils.waitForNewWindow();
 | |
|   gBrowser.replaceTabWithWindow(secondTab);
 | |
|   let win = await windowOpenedPromise;
 | |
| 
 | |
|   info("Asserting document is visible");
 | |
|   let tab = win.gBrowser.selectedTab;
 | |
|   await SpecialPowers.spawn(tab.linkedBrowser, [""], async function() {
 | |
|     is(
 | |
|       content.document.visibilityState,
 | |
|       "visible",
 | |
|       "Document should be visible"
 | |
|     );
 | |
|   });
 | |
| 
 | |
|   await BrowserTestUtils.closeWindow(win);
 | |
|   await BrowserTestUtils.removeTab(firstTab);
 | |
| });
 | |
| 
 | |
| add_task(async function test_detach_loading_page() {
 | |
|   const URL =
 | |
|     "http://mochi.test:8888/browser/docshell/test/browser/file_slow_load.sjs";
 | |
|   // Open a dummy tab so that detaching the second tab works.
 | |
|   let dummyTab = await BrowserTestUtils.openNewForegroundTab(
 | |
|     gBrowser,
 | |
|     "about:blank"
 | |
|   );
 | |
|   let slowLoadingTab = await BrowserTestUtils.openNewForegroundTab(
 | |
|     gBrowser,
 | |
|     URL,
 | |
|     /* waitForLoad = */ false
 | |
|   );
 | |
| 
 | |
|   info("Wait for content document to be created");
 | |
|   await BrowserTestUtils.waitForCondition(async function() {
 | |
|     return SpecialPowers.spawn(
 | |
|       slowLoadingTab.linkedBrowser,
 | |
|       [URL],
 | |
|       async function(url) {
 | |
|         return content.document.documentURI == url;
 | |
|       }
 | |
|     );
 | |
|   });
 | |
| 
 | |
|   info("Detaching tab");
 | |
|   let windowOpenedPromise = BrowserTestUtils.waitForNewWindow();
 | |
|   gBrowser.replaceTabWithWindow(slowLoadingTab);
 | |
|   let win = await windowOpenedPromise;
 | |
| 
 | |
|   info("Asserting document is visible");
 | |
|   let tab = win.gBrowser.selectedTab;
 | |
|   await SpecialPowers.spawn(tab.linkedBrowser, [""], async function() {
 | |
|     is(content.document.readyState, "loading");
 | |
|     is(content.document.visibilityState, "visible");
 | |
|   });
 | |
| 
 | |
|   await BrowserTestUtils.closeWindow(win);
 | |
|   await BrowserTestUtils.removeTab(dummyTab);
 | |
| });
 |