1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
|
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* 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/. */
#include "nsILoadInfo.idl"
#include "nsISupports.idl"
webidl BrowsingContext;
interface nsIPrincipal;
interface nsIPolicyContainer;
interface nsIURI;
%{ C++
namespace mozilla {
class OriginAttributes;
namespace dom {
class BrowserParent;
} // namespace dom
} // namespace mozilla
%}
[ref] native const_OriginAttributes(const mozilla::OriginAttributes);
[ptr] native BrowserParent(mozilla::dom::BrowserParent);
[ref] native MaybeCOEPRef(const mozilla::Maybe<nsILoadInfo::CrossOriginEmbedderPolicy>);
/*
* nsIBrowsingContextReadyCallback.browsingContextReady() is called within
* nsFrameLoader to indicate that the browsing context for a newly opened
* window/tab is ready.
*/
[uuid(0524ee06-7f4c-4cd3-ab80-084562745cad)]
interface nsIBrowsingContextReadyCallback : nsISupports
{
void browsingContextReady(in BrowsingContext bc);
};
/**
* nsIOpenWindowInfo is a helper type which contains details used when opening
* new content windows. This object is used to correctly create new initial
* content documents when creating a new window.
*/
[scriptable, builtinclass, uuid(30359edb-126c-4f65-ae80-07fb158697f9)]
interface nsIOpenWindowInfo : nsISupports {
/** BrowsingContext which requested the creation of this new window */
[infallible]
readonly attribute BrowsingContext parent;
/** If `true`, the content document should be created initially-remote */
[infallible]
readonly attribute boolean isRemote;
/** Should |opener| be set on the newly-created content window? */
[infallible]
readonly attribute boolean forceNoOpener;
/** Whether this is a window opened for printing */
[infallible]
readonly attribute boolean isForPrinting;
/**
* Whether this is a window opened for window.print().
* When this is true, isForPrinting is necessarily true as well.
*/
[infallible]
readonly attribute boolean isForWindowDotPrint;
/** Whether this new window creation was prompted by web content */
[infallible]
readonly attribute boolean isTopLevelCreatedByWebContent;
/**
* Whether there is a user gesture activation for the document
* opened in the window.
*/
[infallible]
readonly attribute boolean hasValidUserGestureActivation;
/**
* Whether there is a text directive user activation for the document
* opened in the window. If true, the first text directive may be scrolled
* into view.
*/
[infallible]
readonly attribute boolean textDirectiveUserActivation;
/**
* The principal to inherit into the initial about:blank.
*/
[notxpcom, nostdcall, binaryname(PrincipalToInheritForAboutBlank)]
nsIPrincipal binaryGetPrincipalToInheritForAboutBlank();
/**
* The partitioned principal to inherit into the initial about:blank.
*/
[notxpcom, nostdcall, binaryname(PartitionedPrincipalToInheritForAboutBlank)]
nsIPrincipal binaryGetPartitionedPrincipalToInheritForAboutBlank();
/**
* The base URI to inherit into the initial about:blank.
*/
[notxpcom, nostdcall, binaryname(BaseUriToInheritForAboutBlank)]
nsIURI binaryGetBaseUriToInheritForAboutBlank();
/**
* The CSP to inherit into the initial about:blank.
*/
[notxpcom, nostdcall, binaryname(PolicyContainerToInheritForAboutBlank)]
nsIPolicyContainer binaryGetPolicyContainerToInheritForAboutBlank();
/**
* The COEP to inherit into the initial about:blank.
*/
[notxpcom, nostdcall, binaryname(CoepToInheritForAboutBlank)]
MaybeCOEPRef binaryGetCoepToInheritForAboutBlank();
/** BrowserParent instance to use in the new window */
[notxpcom, nostdcall]
BrowserParent getNextRemoteBrowser();
/** Origin Attributes for the to-be-created toplevel BrowsingContext */
[implicit_jscontext, binaryname(ScriptableOriginAttributes)]
readonly attribute jsval originAttributes;
[notxpcom, nostdcall, binaryname(GetOriginAttributes)]
const_OriginAttributes binaryGetOriginAttributes();
/* Callback to invoke when the browsing context for a new window is ready. */
[notxpcom, nostdcall]
nsIBrowsingContextReadyCallback browsingContextReadyCallback();
/**
* When creating a window fails, we will be called to notify an error via
* callback. If no callback, do nothing.
*/
void cancel();
/**
* Clone this open window info and update the princpals to be inherited by the
* initial about:blank document.
*/
nsIOpenWindowInfo cloneWithPrincipals(in nsIPrincipal aPrincipal, in nsIPrincipal aPartitionedPrincipal);
};
|