| 12
 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
 
 | /* -*- 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 "nsISupports.idl"
webidl BrowsingContext;
%{ 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);
/*
 * 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;
  /** 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();
};
 |