123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- /* -*- 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);
- };
|