forked from mirrors/gecko-dev
		
	 f99f6d8c29
			
		
	
	
		f99f6d8c29
		
	
	
	
	
		
			
			When swapping docshells we also have to swap any properties on remote-browsers that are cached from the content process. This includes things like the remoteWebNavigation etc. which in turn cache content information. Some of these also maintain message listeners that we have to switch to the new browser and message manager. --HG-- extra : rebase_source : 5ed5dd9b754612f86f5c44fde7a0610abfe976f8
		
			
				
	
	
		
			24 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /* This Source Code Form is subject to the terms of the Mozilla Public
 | |
|  * License, v. 2.0. If a copy of the MPL was not distributed with this
 | |
|  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 | |
| 
 | |
| // That's a gecko!
 | |
| const iconURLSpec = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==";
 | |
| var testPage="data:text/plain,test bug 477014";
 | |
| 
 | |
| add_task(function*() {
 | |
|   let tabToDetach = gBrowser.addTab(testPage);
 | |
|   yield waitForDocLoadComplete(tabToDetach.linkedBrowser);
 | |
| 
 | |
|   gBrowser.setIcon(tabToDetach, iconURLSpec);
 | |
|   tabToDetach.setAttribute("busy", "true");
 | |
| 
 | |
|   // detach and set the listener on the new window
 | |
|   let newWindow = gBrowser.replaceTabWithWindow(tabToDetach);
 | |
|   yield promiseWaitForEvent(tabToDetach.linkedBrowser, "SwapDocShells");
 | |
| 
 | |
|   is(newWindow.gBrowser.selectedTab.hasAttribute("busy"), true, "Busy attribute should be correct");
 | |
|   is(newWindow.gBrowser.getIcon(), iconURLSpec, "Icon should be correct");
 | |
| 
 | |
|   newWindow.close();
 | |
| });
 |