michael@0: /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #include "domstubs.idl" michael@0: michael@0: interface nsIFrameRequestCallback; michael@0: interface nsIControllers; michael@0: interface nsIDOMBlob; michael@0: interface nsIDOMLocation; michael@0: interface nsIDOMOfflineResourceList; michael@0: interface nsIDOMStorage; michael@0: interface nsIPrompt; michael@0: interface nsISelection; michael@0: interface nsIVariant; michael@0: michael@0: /** michael@0: * The nsIDOMWindow interface is the primary interface for a DOM michael@0: * window object. It represents a single window object that may michael@0: * contain child windows if the document in the window contains a michael@0: * HTML frameset document or if the document contains iframe elements. michael@0: * michael@0: * @see michael@0: */ michael@0: michael@0: [scriptable, uuid(1b4a23a2-2ccf-4690-9da7-f3a7a8308381)] michael@0: interface nsIDOMWindow : nsISupports michael@0: { michael@0: // the current browsing context michael@0: readonly attribute nsIDOMWindow window; michael@0: michael@0: /* [replaceable] self */ michael@0: readonly attribute nsIDOMWindow self; michael@0: michael@0: /** michael@0: * Accessor for the document in this window. michael@0: */ michael@0: readonly attribute nsIDOMDocument document; michael@0: michael@0: /** michael@0: * Set/Get the name of this window. michael@0: * michael@0: * This attribute is "replaceable" in JavaScript michael@0: */ michael@0: attribute DOMString name; michael@0: michael@0: /* The setter that takes a string argument needs to be special cased! */ michael@0: readonly attribute nsIDOMLocation location; michael@0: michael@0: readonly attribute nsISupports history; michael@0: michael@0: michael@0: /* [replaceable] locationbar */ michael@0: /* BarProp */ michael@0: readonly attribute nsISupports locationbar; michael@0: michael@0: /* [replaceable] menubar */ michael@0: /* BarProp */ michael@0: readonly attribute nsISupports menubar; michael@0: michael@0: /* [replaceable] personalbar */ michael@0: /* BarProp */ michael@0: readonly attribute nsISupports personalbar; michael@0: michael@0: /** michael@0: * Accessor for the object that controls whether or not scrollbars michael@0: * are shown in this window. michael@0: * michael@0: * This attribute is "replaceable" in JavaScript michael@0: */ michael@0: /* BarProp */ michael@0: readonly attribute nsISupports scrollbars; michael@0: michael@0: /* [replaceable] statusbar */ michael@0: /* BarProp */ michael@0: readonly attribute nsISupports statusbar; michael@0: michael@0: /* [replaceable] toolbar */ michael@0: /* BarProp */ michael@0: readonly attribute nsISupports toolbar; michael@0: michael@0: /* [replaceable] */ michael@0: attribute DOMString status; michael@0: michael@0: void close(); michael@0: void stop(); michael@0: void focus(); michael@0: void blur(); michael@0: michael@0: michael@0: // other browsing contexts michael@0: /* [replaceable] length */ michael@0: readonly attribute unsigned long length; michael@0: michael@0: /** michael@0: * |top| gets the root of the window hierarchy. michael@0: * michael@0: * This function does not cross chrome-content boundaries, so if this michael@0: * window's parent is of a different type, |top| will return this window. michael@0: * michael@0: * When script reads the top property, we run GetScriptableTop, which michael@0: * will not cross an