/* -*- 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"
interface nsIDocShellTreeOwner;
interface nsIDocument;
interface nsPIDOMWindowOuter;
/**
* The nsIDocShellTreeItem supplies the methods that are required of any item
* that wishes to be able to live within the docshell tree either as a middle
* node or a leaf.
*/
[scriptable, uuid(9b7c586f-9214-480c-a2c4-49b526fff1a6)]
interface nsIDocShellTreeItem : nsISupports
{
/*
name of the DocShellTreeItem
*/
attribute AString name;
/**
* Compares the provided name against the item's name and
* returns the appropriate result.
*
* @return PR_TRUE
if names match;
* PR_FALSE
otherwise.
*/
boolean nameEquals(in AString name);
/*
Definitions for the item types.
*/
const long typeChrome=0; // typeChrome must equal 0
const long typeContent=1; // typeContent must equal 1
const long typeContentWrapper=2; // typeContentWrapper must equal 2
const long typeChromeWrapper=3; // typeChromeWrapper must equal 3
const long typeAll=0x7FFFFFFF;
/*
The type this item is.
*/
attribute long itemType;
[noscript,notxpcom,nostdcall] long ItemType();
/*
Parent DocShell.
*/
readonly attribute nsIDocShellTreeItem parent;
/*
This getter returns the same thing parent does however if the parent
is of a different itemType, or if the parent is an