2006-02-07 23:46:39 +03:00
|
|
|
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
2001-02-04 03:32:43 +03:00
|
|
|
*
|
2012-05-21 15:12:37 +04:00
|
|
|
* 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/. */
|
2001-02-04 03:32:43 +03:00
|
|
|
|
2001-04-17 00:35:46 +04:00
|
|
|
/* Private "control" methods on the Window Watcher. These are annoying
|
|
|
|
bookkeeping methods, not part of the public (embedding) interface.
|
|
|
|
*/
|
|
|
|
|
2001-02-04 03:32:43 +03:00
|
|
|
#include "nsISupports.idl"
|
|
|
|
|
2018-06-30 02:29:50 +03:00
|
|
|
%{ C++
|
2018-10-30 03:13:29 +03:00
|
|
|
class nsDocShellLoadState;
|
2018-06-30 02:29:50 +03:00
|
|
|
%}
|
|
|
|
|
2016-01-30 20:05:36 +03:00
|
|
|
interface mozIDOMWindowProxy;
|
2001-02-04 03:32:43 +03:00
|
|
|
interface nsIDOMWindow;
|
|
|
|
interface nsISimpleEnumerator;
|
2001-04-17 00:35:46 +04:00
|
|
|
interface nsIWebBrowserChrome;
|
2005-03-03 20:26:34 +03:00
|
|
|
interface nsIDocShellTreeItem;
|
2006-06-13 07:07:47 +04:00
|
|
|
interface nsIArray;
|
2019-04-09 23:59:37 +03:00
|
|
|
interface nsIRemoteTab;
|
2018-10-30 03:13:29 +03:00
|
|
|
native nsDocShellLoadStatePtr(nsDocShellLoadState*);
|
2001-02-04 03:32:43 +03:00
|
|
|
|
2016-01-30 20:05:36 +03:00
|
|
|
[uuid(d162f9c4-19d5-4723-931f-f1e51bfa9f68)]
|
2001-02-04 03:32:43 +03:00
|
|
|
interface nsPIWindowWatcher : nsISupports
|
|
|
|
{
|
|
|
|
/** A window has been created. Add it to our list.
|
|
|
|
@param aWindow the window to add
|
2001-04-17 00:35:46 +04:00
|
|
|
@param aChrome the corresponding chrome window. The DOM window
|
|
|
|
and chrome will be mapped together, and the corresponding
|
|
|
|
chrome can be retrieved using the (not private)
|
|
|
|
method getChromeForWindow. If null, any extant mapping
|
|
|
|
will be cleared.
|
2001-02-04 03:32:43 +03:00
|
|
|
*/
|
2016-01-30 20:05:36 +03:00
|
|
|
void addWindow(in mozIDOMWindowProxy aWindow,
|
|
|
|
in nsIWebBrowserChrome aChrome);
|
2001-02-04 03:32:43 +03:00
|
|
|
|
|
|
|
/** A window has been closed. Remove it from our list.
|
|
|
|
@param aWindow the window to remove
|
|
|
|
*/
|
2016-01-30 20:05:36 +03:00
|
|
|
void removeWindow(in mozIDOMWindowProxy aWindow);
|
2001-02-04 03:32:43 +03:00
|
|
|
|
2012-08-14 18:58:00 +04:00
|
|
|
/** Like the public interface's open(), but can handle openDialog-style
|
|
|
|
arguments and calls which shouldn't result in us navigating the window.
|
|
|
|
|
2005-09-10 08:16:59 +04:00
|
|
|
@param aParent parent window, if any. Null if no parent. If it is
|
|
|
|
impossible to get to an nsIWebBrowserChrome from aParent, this
|
|
|
|
method will effectively act as if aParent were null.
|
2001-03-23 06:14:55 +03:00
|
|
|
@param aURL url to which to open the new window. Must already be
|
|
|
|
escaped, if applicable. can be null.
|
2006-02-07 23:46:39 +03:00
|
|
|
@param aName window name from JS window.open. can be null. If a window
|
|
|
|
with this name already exists, the openWindow call may just load
|
|
|
|
aUrl in it (if aUrl is not null) and return it.
|
2001-03-23 06:14:55 +03:00
|
|
|
@param aFeatures window features from JS window.open. can be null.
|
2012-08-14 18:58:00 +04:00
|
|
|
@param aCalledFromScript true if we were called from script.
|
2011-07-15 14:31:34 +04:00
|
|
|
@param aDialog use dialog defaults (see nsIDOMWindow::openDialog)
|
2012-08-14 18:58:00 +04:00
|
|
|
@param aNavigate true if we should navigate the new window to the
|
|
|
|
specified URL.
|
2006-06-13 07:07:47 +04:00
|
|
|
@param aArgs Window argument
|
2016-10-20 23:52:38 +03:00
|
|
|
@param aIsPopupSpam true if the window is a popup spam window; used for
|
|
|
|
popup blocker internals.
|
2016-10-20 23:52:38 +03:00
|
|
|
@param aForceNoOpener If true, force noopener behavior. This means not
|
|
|
|
looking for existing windows with the given name,
|
|
|
|
not setting an opener on the newly opened window,
|
|
|
|
and returning null from this method.
|
2018-10-30 03:13:29 +03:00
|
|
|
@param aLoadState if aNavigate is true, this allows the caller to pass in
|
|
|
|
an nsIDocShellLoadState to use for the navigation.
|
2016-10-20 23:52:38 +03:00
|
|
|
Callers can pass in null if they want the windowwatcher
|
|
|
|
to just construct a loadinfo itself. If aNavigate is
|
|
|
|
false, this argument is ignored.
|
2016-10-20 23:52:38 +03:00
|
|
|
|
2001-02-17 05:45:42 +03:00
|
|
|
@return the new window
|
2006-02-07 23:46:39 +03:00
|
|
|
|
|
|
|
@note This method may examine the JS context stack for purposes of
|
|
|
|
determining the security context to use for the search for a given
|
|
|
|
window named aName.
|
|
|
|
@note This method should try to set the default charset for the new
|
|
|
|
window to the default charset of the document in the calling window
|
|
|
|
(which is determined based on the JS stack and the value of
|
|
|
|
aParent). This is not guaranteed, however.
|
2001-02-17 05:45:42 +03:00
|
|
|
*/
|
2016-01-30 20:05:36 +03:00
|
|
|
mozIDOMWindowProxy openWindow2(in mozIDOMWindowProxy aParent, in string aUrl,
|
|
|
|
in string aName, in string aFeatures,
|
|
|
|
in boolean aCalledFromScript,
|
|
|
|
in boolean aDialog,
|
|
|
|
in boolean aNavigate,
|
2016-10-20 23:52:38 +03:00
|
|
|
in nsISupports aArgs,
|
2016-10-20 23:52:38 +03:00
|
|
|
in boolean aIsPopupSpam,
|
2016-10-20 23:52:38 +03:00
|
|
|
in boolean aForceNoOpener,
|
2019-04-25 02:50:40 +03:00
|
|
|
in boolean aForceNoReferrer,
|
2018-10-30 03:13:29 +03:00
|
|
|
in nsDocShellLoadStatePtr aLoadState);
|
2001-02-17 05:45:42 +03:00
|
|
|
|
2016-07-05 19:00:07 +03:00
|
|
|
/**
|
|
|
|
* Opens a new window so that the window that aOpeningTab belongs to
|
|
|
|
* is set as the parent window. The newly opened window will also
|
|
|
|
* inherit load context information from aOpeningTab.
|
|
|
|
*
|
|
|
|
* @param aOpeningTab
|
2019-04-09 23:59:37 +03:00
|
|
|
* The nsIRemoteTab that is requesting the new window be opened.
|
2016-07-05 19:00:07 +03:00
|
|
|
* @param aFeatures
|
|
|
|
* Window features if called with window.open or similar.
|
|
|
|
* @param aCalledFromJS
|
|
|
|
* True if called via window.open or similar.
|
|
|
|
* @param aOpenerFullZoom
|
|
|
|
* The current zoom multiplier for the opener tab. This is then
|
|
|
|
* applied to the newly opened window.
|
2019-04-09 23:59:37 +03:00
|
|
|
* @param aNextRemoteTabId
|
|
|
|
* The integer ID for the next remote tab actor.
|
|
|
|
* 0 means there is no next remote tab actor to use.
|
2017-06-06 21:22:17 +03:00
|
|
|
* @param aForceNoOpener
|
|
|
|
* If true, then aOpeningTab will not be used to set the opener
|
|
|
|
* for the newly created window.
|
2016-07-05 19:00:07 +03:00
|
|
|
*
|
2019-04-09 23:59:37 +03:00
|
|
|
* @return the nsIRemoteTab of the initial browser for the newly opened
|
2016-07-05 19:00:07 +03:00
|
|
|
* window.
|
|
|
|
*/
|
2019-04-09 23:59:37 +03:00
|
|
|
nsIRemoteTab openWindowWithRemoteTab(in nsIRemoteTab aOpeningTab,
|
2016-07-14 23:31:41 +03:00
|
|
|
in ACString aFeatures,
|
2016-07-05 19:00:07 +03:00
|
|
|
in boolean aCalledFromJS,
|
2017-04-17 01:52:02 +03:00
|
|
|
in float aOpenerFullZoom,
|
2019-04-09 23:59:37 +03:00
|
|
|
in unsigned long long aNextRemoteTabId,
|
2017-06-06 21:22:17 +03:00
|
|
|
in boolean aForceNoOpener);
|
2016-07-05 19:00:07 +03:00
|
|
|
|
2005-03-03 20:26:34 +03:00
|
|
|
/**
|
|
|
|
* Find a named docshell tree item amongst all windows registered
|
|
|
|
* with the window watcher. This may be a subframe in some window,
|
|
|
|
* for example.
|
|
|
|
*
|
|
|
|
* @param aName the name of the window. Must not be null.
|
|
|
|
* @param aRequestor the tree item immediately making the request.
|
|
|
|
* We should make sure to not recurse down into its findItemWithName
|
|
|
|
* method.
|
|
|
|
* @param aOriginalRequestor the original treeitem that made the request.
|
|
|
|
* Used for security checks.
|
|
|
|
* @return the tree item with aName as the name, or null if there
|
|
|
|
* isn't one. "Special" names, like _self, _top, etc, will be
|
|
|
|
* treated specially only if aRequestor is null; in that case they
|
|
|
|
* will be resolved relative to the first window the windowwatcher
|
|
|
|
* knows about.
|
|
|
|
* @see findItemWithName methods on nsIDocShellTreeItem and
|
|
|
|
* nsIDocShellTreeOwner
|
|
|
|
*/
|
2016-10-15 01:00:47 +03:00
|
|
|
nsIDocShellTreeItem findItemWithName(in AString aName,
|
2005-03-03 20:26:34 +03:00
|
|
|
in nsIDocShellTreeItem aRequestor,
|
|
|
|
in nsIDocShellTreeItem aOriginalRequestor);
|
2001-02-04 03:32:43 +03:00
|
|
|
};
|
|
|
|
|