From 36d22d82aa202bb199967e9512281e9a53db42c9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 21:33:14 +0200 Subject: Adding upstream version 115.7.0esr. Signed-off-by: Daniel Baumann --- .../components/windowwatcher/nsPIWindowWatcher.idl | 134 +++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 toolkit/components/windowwatcher/nsPIWindowWatcher.idl (limited to 'toolkit/components/windowwatcher/nsPIWindowWatcher.idl') diff --git a/toolkit/components/windowwatcher/nsPIWindowWatcher.idl b/toolkit/components/windowwatcher/nsPIWindowWatcher.idl new file mode 100644 index 0000000000..ff827895ed --- /dev/null +++ b/toolkit/components/windowwatcher/nsPIWindowWatcher.idl @@ -0,0 +1,134 @@ +/* -*- 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" + +%{ C++ +class nsDocShellLoadState; +namespace mozilla::dom { +class WindowFeatures; +} +%} + +webidl BrowsingContext; +interface mozIDOMWindowProxy; +interface nsISimpleEnumerator; +interface nsIWebBrowserChrome; +interface nsIDocShellTreeItem; +interface nsIArray; +interface nsIRemoteTab; +interface nsIOpenWindowInfo; +native nsDocShellLoadStatePtr(nsDocShellLoadState*); +[ref] native WindowFeaturesRef(const mozilla::dom::WindowFeatures); + +[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); + + cenum PrintKind : 8 { + PRINT_NONE, + PRINT_INTERNAL, + PRINT_WINDOW_DOT_PRINT, + }; + + /** 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 nsGlobalWindowOuter::OpenInternal) + @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 aLoadState if aNavigate is true, this allows the caller to pass in + an nsIDocShellLoadState 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. + */ + [noscript] + BrowsingContext openWindow2(in mozIDOMWindowProxy aParent, in ACString aUrl, + in ACString aName, in ACString aFeatures, + in boolean aCalledFromScript, + in boolean aDialog, + in boolean aNavigate, + in nsISupports aArgs, + in boolean aIsPopupSpam, + in boolean aForceNoOpener, + in boolean aForceNoReferrer, + in nsPIWindowWatcher_PrintKind aPrintKind, + in nsDocShellLoadStatePtr aLoadState); + + /** + * 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 nsIRemoteTab 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. + * @param aOpenWindowInfo + * Information used to create the initial content browser in the new + * window. + * + * @return the nsIRemoteTab of the initial browser for the newly opened + * window. + */ + nsIRemoteTab openWindowWithRemoteTab(in nsIRemoteTab aOpeningTab, + in WindowFeaturesRef aFeatures, + in boolean aCalledFromJS, + in float aOpenerFullZoom, + in nsIOpenWindowInfo aOpenWindowInfo); +}; -- cgit v1.2.3