forked from mirrors/gecko-dev
		
	 6399dc4d9a
			
		
	
	
		6399dc4d9a
		
	
	
	
	
		
			
			This patch replaces the usage of sNextTabParent pointer to store the next
PBrowser parent actor to be used by the next frame loader with the
following information:
  * In the case where the content JS has requested a new tab, the ID of the
    next TabParent will be stored on the <xul:browser> element.
  * In the case where the content JS has requested a new window, the ID of
    the next TabParent will be stored on the created nsXULWindow.
		
	
			
		
			
				
	
	
		
			64 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
 | |
|  *
 | |
|  * 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/. */
 | |
| 
 | |
| /**
 | |
|  * nsIWindowCreator2 is an extension of nsIWindowCreator which allows
 | |
|  * additional information about the context of the window creation to
 | |
|  * be passed.
 | |
|  *
 | |
|  * @see nsIWindowCreator
 | |
|  * @see nsIWindowWatcher
 | |
|  *
 | |
|  * @status
 | |
|  */
 | |
| 
 | |
| #include "nsIWindowCreator.idl"
 | |
| 
 | |
| interface nsITabParent;
 | |
| interface nsIURI;
 | |
| interface nsIWebBrowserChrome;
 | |
| interface mozIDOMWindowProxy;
 | |
| 
 | |
| [scriptable, uuid(b6c44689-f97e-4f32-a723-29eeddfbdc53)]
 | |
| 
 | |
| interface nsIWindowCreator2 : nsIWindowCreator {
 | |
| 
 | |
|   /** Create a new window. Gecko will/may call this method, if made
 | |
|       available to it, to create new windows.
 | |
|       @param parent Parent window, if any. Null if not. The newly created
 | |
|                     window should be made a child/dependent window of
 | |
|                     the parent, if any (and if the concept applies
 | |
|                     to the underlying OS).
 | |
|       @param chromeFlags Chrome features from nsIWebBrowserChrome
 | |
|       @param aOpeningTab The TabParent that is trying to open this new chrome
 | |
|                          window. Can be nullptr.
 | |
|       @param aOpener The window which is trying to open this new chrome window.
 | |
|                      Can be nullptr
 | |
|       @param aNextTabParentId The integer ID of the next tab parent actor to use.
 | |
|                               0 means there is no next tab parent ID to use.
 | |
|       @param cancel Return |true| to reject window creation. If true the
 | |
|                     implementation has determined the window should not
 | |
|                     be created at all. The caller should not default
 | |
|                     to any possible backup scheme for creating the window.
 | |
|       @return the new window. Will be null if canceled or an error occurred.
 | |
|   */
 | |
|   nsIWebBrowserChrome createChromeWindow2(in nsIWebBrowserChrome parent,
 | |
|                                           in uint32_t chromeFlags,
 | |
|                                           in nsITabParent aOpeningTab,
 | |
|                                           in mozIDOMWindowProxy aOpener,
 | |
|                                           in unsigned long long aNextTabParentId,
 | |
|                                           out boolean cancel);
 | |
| 
 | |
|   /**
 | |
|    * B2G multi-screen support. When open another top-level window on b2g,
 | |
|    * a screen ID is needed for identifying which screen this window is
 | |
|    * opened to.
 | |
|    * @param aScreenId Differentiate screens of windows. It is platform-
 | |
|    *                  specific due to the hardware limitation for now.
 | |
|    */
 | |
|   [noscript]
 | |
|   void setScreenId(in uint32_t aScreenId);
 | |
| };
 |