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
|
/* -*- Mode: IDL; tab-width: 4; 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/. */
#include "nsISupports.idl"
#include "nsIBaseWindow.idl"
interface nsIWebBrowser;
interface nsIDocShellTreeItem;
/**
* nsIWebBrowserChrome corresponds to the top-level, outermost window
* containing an embedded Gecko web browser.
*/
[scriptable, builtinclass, uuid(E8C414C4-DC38-4BA3-AB4E-EC4CBBE22907)]
interface nsIWebBrowserChrome : nsISupports
{
/**
* Called when the link hover status is being changed.
* @param status status string. empty string is an acceptable value
* meaning no link is hovered.
*/
void setLinkStatus(in AString status);
/**
* Definitions for the chrome flags
*/
const unsigned long CHROME_DEFAULT = 1 << 0;
const unsigned long CHROME_WINDOW_BORDERS = 1 << 1;
const unsigned long CHROME_WINDOW_CLOSE = 1 << 2;
const unsigned long CHROME_WINDOW_RESIZE = 1 << 3;
const unsigned long CHROME_MENUBAR = 1 << 4;
const unsigned long CHROME_TOOLBAR = 1 << 5;
const unsigned long CHROME_LOCATIONBAR = 1 << 6;
const unsigned long CHROME_STATUSBAR = 1 << 7;
const unsigned long CHROME_PERSONAL_TOOLBAR = 1 << 8;
const unsigned long CHROME_SCROLLBARS = 1 << 9;
const unsigned long CHROME_TITLEBAR = 1 << 10;
const unsigned long CHROME_EXTRA = 1 << 11;
// Free bits here.
const unsigned long CHROME_ALL =
CHROME_WINDOW_BORDERS | CHROME_WINDOW_CLOSE | CHROME_WINDOW_RESIZE |
CHROME_MENUBAR | CHROME_TOOLBAR | CHROME_LOCATIONBAR |
CHROME_STATUSBAR | CHROME_PERSONAL_TOOLBAR | CHROME_SCROLLBARS |
CHROME_TITLEBAR | CHROME_EXTRA;
const unsigned long CHROME_WINDOW_MINIMIZE = 1 << 14;
const unsigned long CHROME_ALERT = 1 << 15;
// whether to open a new private window. CHROME_NON_PRIVATE_WINDOW
// forces the opened window to be non-private, and overrides
// CHROME_PRIVATE_WINDOW if it's set. CHROME_PRIVATE_WINDOW
// forces the opened window to be private. If neither of these
// flags are specified, the opened window will inherit the privacy
// status of its opener. If there is no opener window, the new
// window will be non-private.
//
// CHROME_PRIVATE_LIFETIME causes the docshell to affect private-browsing
// session lifetime. This flag is currently respected only for remote
// docshells.
const unsigned long CHROME_PRIVATE_WINDOW = 1 << 16;
const unsigned long CHROME_NON_PRIVATE_WINDOW = 1 << 17;
const unsigned long CHROME_PRIVATE_LIFETIME = 1 << 18;
const unsigned long CHROME_ALWAYS_ON_TOP = 1 << 19;
// Whether this window should use remote (out-of-process) tabs.
const unsigned long CHROME_REMOTE_WINDOW = 1 << 20;
// Whether this window should use out-of-process cross-origin subframes.
const unsigned long CHROME_FISSION_WINDOW = 1 << 21;
// Prevents new window animations on MacOS and Windows. Currently
// ignored for Linux.
const unsigned long CHROME_SUPPRESS_ANIMATION = 1 << 24;
const unsigned long CHROME_WINDOW_RAISED = 1 << 25;
const unsigned long CHROME_WINDOW_LOWERED = 1 << 26;
const unsigned long CHROME_CENTER_SCREEN = 1 << 27;
// Make the new window dependent on the parent. This flag is only
// meaningful if CHROME_OPENAS_CHROME is set; content windows should not be
// dependent.
const unsigned long CHROME_DEPENDENT = 1 << 28;
// Note: The modal style bit just affects the way the window looks and does
// mean it's actually modal.
const unsigned long CHROME_MODAL = 1 << 29;
const unsigned long CHROME_OPENAS_DIALOG = 1 << 30;
const unsigned long CHROME_OPENAS_CHROME = 1 << 31;
const unsigned long CHROME_MINIMAL_POPUP =
CHROME_WINDOW_BORDERS | CHROME_WINDOW_CLOSE | CHROME_WINDOW_RESIZE |
CHROME_WINDOW_MINIMIZE | CHROME_LOCATIONBAR | CHROME_STATUSBAR |
CHROME_SCROLLBARS | CHROME_TITLEBAR;
/**
* The chrome flags for this browser chrome. The implementation should
* reflect the value of this attribute by hiding or showing its chrome
* appropriately.
*/
attribute unsigned long chromeFlags;
/**
* Shows the window as a modal window.
*/
void showAsModal();
/**
* Is the window modal (that is, currently executing a modal loop)?
* @return true if it's a modal window
*/
boolean isWindowModal();
/**
* Allows to request the change of individual dimensions of a window
* without specifying all dimensions.
*
* Gets called as fallback when no nsIBaseWindow is available.
*
* @see nsIBaseWindow
*/
[noscript] void setDimensions(in DimensionRequest aRequest);
/**
* Gets the dimensions of the window. The caller may pass
* <CODE>nullptr</CODE> for any value it is uninterested in receiving.
*
* Gets called as fallback when no nsIBaseWindow is available.
*
* @see nsIBaseWindow
*/
[noscript] void getDimensions(in DimensionKind aDimensionKind, out long aX, out long aY, out long aCX, out long aCY);
/**
* Blur the window. This should unfocus the window and send an onblur event.
*/
void blur();
};
|