summaryrefslogtreecommitdiffstats
path: root/embedding/components/windowwatcher/nsPIWindowWatcher.idl
diff options
context:
space:
mode:
Diffstat (limited to 'embedding/components/windowwatcher/nsPIWindowWatcher.idl')
-rw-r--r--embedding/components/windowwatcher/nsPIWindowWatcher.idl146
1 files changed, 146 insertions, 0 deletions
diff --git a/embedding/components/windowwatcher/nsPIWindowWatcher.idl b/embedding/components/windowwatcher/nsPIWindowWatcher.idl
new file mode 100644
index 000000000..47b243364
--- /dev/null
+++ b/embedding/components/windowwatcher/nsPIWindowWatcher.idl
@@ -0,0 +1,146 @@
+/* -*- 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/. */
+
+/* Private "control" methods on the Window Watcher. These are annoying
+ bookkeeping methods, not part of the public (embedding) interface.
+*/
+
+#include "nsISupports.idl"
+
+interface mozIDOMWindowProxy;
+interface nsIDOMWindow;
+interface nsISimpleEnumerator;
+interface nsIWebBrowserChrome;
+interface nsIDocShellTreeItem;
+interface nsIArray;
+interface nsITabParent;
+interface nsIDocShellLoadInfo;
+
+[uuid(d162f9c4-19d5-4723-931f-f1e51bfa9f68)]
+
+interface nsPIWindowWatcher : nsISupports
+{
+ /** A window has been created. Add it to our list.
+ @param aWindow the window to add
+ @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.
+ */
+ void addWindow(in mozIDOMWindowProxy aWindow,
+ in nsIWebBrowserChrome aChrome);
+
+ /** A window has been closed. Remove it from our list.
+ @param aWindow the window to remove
+ */
+ void removeWindow(in mozIDOMWindowProxy aWindow);
+
+ /** Like the public interface's open(), but can handle openDialog-style
+ arguments and calls which shouldn't result in us navigating the window.
+
+ @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.
+ @param aURL url to which to open the new window. Must already be
+ escaped, if applicable. can be null.
+ @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.
+ @param aFeatures window features from JS window.open. can be null.
+ @param aCalledFromScript true if we were called from script.
+ @param aDialog use dialog defaults (see nsIDOMWindow::openDialog)
+ @param aNavigate true if we should navigate the new window to the
+ specified URL.
+ @param aArgs Window argument
+ @param aIsPopupSpam true if the window is a popup spam window; used for
+ popup blocker internals.
+ @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.
+ @param aLoadInfo if aNavigate is true, this allows the caller to pass in
+ an nsIDocShellLoadInfo to use for the navigation.
+ Callers can pass in null if they want the windowwatcher
+ to just construct a loadinfo itself. If aNavigate is
+ false, this argument is ignored.
+
+ @return the new window
+
+ @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.
+ */
+ mozIDOMWindowProxy openWindow2(in mozIDOMWindowProxy aParent, in string aUrl,
+ in string aName, in string aFeatures,
+ in boolean aCalledFromScript,
+ in boolean aDialog,
+ in boolean aNavigate,
+ in nsISupports aArgs,
+ in boolean aIsPopupSpam,
+ in boolean aForceNoOpener,
+ in nsIDocShellLoadInfo aLoadInfo);
+
+ /**
+ * Opens a new window using the most recent non-private browser
+ * window as its parent.
+ *
+ * @return the nsITabParent of the initial browser for the newly opened
+ * window.
+ */
+ nsITabParent openWindowWithoutParent();
+
+ /**
+ * 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
+ * The nsITabParent that is requesting the new window be opened.
+ * @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.
+ *
+ * @return the nsITabParent of the initial browser for the newly opened
+ * window.
+ */
+ nsITabParent openWindowWithTabParent(in nsITabParent aOpeningTab,
+ in ACString aFeatures,
+ in boolean aCalledFromJS,
+ in float aOpenerFullZoom);
+
+ /**
+ * 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
+ */
+ nsIDocShellTreeItem findItemWithName(in AString aName,
+ in nsIDocShellTreeItem aRequestor,
+ in nsIDocShellTreeItem aOriginalRequestor);
+};
+