1999-10-15 11:23:53 +04:00
|
|
|
/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
|
|
|
*
|
|
|
|
* The contents of this file are subject to the Mozilla Public
|
|
|
|
* License Version 1.1 (the "License"); you may not use this file
|
|
|
|
* except in compliance with the License. You may obtain a copy of
|
|
|
|
* the License at http://www.mozilla.org/MPL/
|
|
|
|
*
|
|
|
|
* Software distributed under the License is distributed on an "AS
|
|
|
|
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
|
|
* implied. See the License for the specific language governing
|
|
|
|
* rights and limitations under the License.
|
|
|
|
*
|
|
|
|
* The Original Code is the Mozilla browser.
|
|
|
|
*
|
|
|
|
* The Initial Developer of the Original Code is Netscape
|
|
|
|
* Communications, Inc. Portions created by Netscape are
|
|
|
|
* Copyright (C) 1999, Mozilla. All Rights Reserved.
|
|
|
|
*
|
|
|
|
* Contributor(s):
|
|
|
|
* Travis Bogard <travis@netscape.com>
|
1999-10-21 07:01:33 +04:00
|
|
|
* Steve Clark <buster@netscape.com>
|
1999-10-15 11:23:53 +04:00
|
|
|
*/
|
|
|
|
|
|
|
|
#include "nsISupports.idl"
|
|
|
|
|
1999-10-22 06:26:35 +04:00
|
|
|
%{ C++
|
2001-07-16 06:40:48 +04:00
|
|
|
class nsIPresContext;
|
|
|
|
class nsIPresShell;
|
1999-10-22 06:26:35 +04:00
|
|
|
%}
|
|
|
|
|
1999-10-15 11:23:53 +04:00
|
|
|
/**
|
2001-05-14 06:16:27 +04:00
|
|
|
* The nsIDocShell interface.
|
1999-10-15 11:23:53 +04:00
|
|
|
*/
|
|
|
|
|
1999-10-21 07:01:33 +04:00
|
|
|
[ptr] native nsIPresContext(nsIPresContext);
|
1999-11-29 21:40:06 +03:00
|
|
|
[ptr] native nsIPresShell(nsIPresShell);
|
1999-10-21 07:01:33 +04:00
|
|
|
|
2001-07-16 06:40:48 +04:00
|
|
|
interface nsIURI;
|
|
|
|
interface nsIContentViewer;
|
|
|
|
interface nsIURIContentListener;
|
1999-12-18 05:20:35 +03:00
|
|
|
interface nsIChromeEventHandler;
|
2000-03-30 16:52:02 +04:00
|
|
|
interface nsIDocShellLoadInfo;
|
2000-04-12 04:07:04 +04:00
|
|
|
interface nsIDocumentCharsetInfo;
|
2000-09-20 16:23:53 +04:00
|
|
|
interface nsIWebNavigation;
|
2001-04-28 01:11:03 +04:00
|
|
|
interface nsISimpleEnumerator;
|
2001-07-16 06:40:48 +04:00
|
|
|
interface nsIInputStream;
|
2002-03-13 09:08:56 +03:00
|
|
|
interface nsIRequest;
|
2001-05-14 06:16:27 +04:00
|
|
|
interface nsISHEntry;
|
2003-05-30 04:21:01 +04:00
|
|
|
interface nsILayoutHistoryState;
|
1999-12-18 05:20:35 +03:00
|
|
|
|
1999-10-15 11:23:53 +04:00
|
|
|
[scriptable, uuid(69E5DE00-7B8B-11d3-AF61-00A024FFC08C)]
|
|
|
|
interface nsIDocShell : nsISupports
|
|
|
|
{
|
2001-05-14 06:16:27 +04:00
|
|
|
/**
|
|
|
|
* Loads a given URI. This will give priority to loading the requested URI
|
|
|
|
* in the object implementing this interface. If it can't be loaded here
|
|
|
|
* however, the URL dispatcher will go through its normal process of content
|
|
|
|
* loading.
|
|
|
|
*
|
|
|
|
* @param uri - The URI to load.
|
|
|
|
* @param loadInfo - This is the extended load info for this load. This
|
|
|
|
* most often will be null, but if you need to do
|
|
|
|
* additional setup for this load you can get a loadInfo
|
|
|
|
* object by calling createLoadInfo. Once you have this
|
|
|
|
* object you can set the needed properties on it and
|
|
|
|
* then pass it to loadURI.
|
|
|
|
* @param aLoadFlags - Flags to modify load behaviour. Flags are defined
|
|
|
|
* in nsIWebNavigation.
|
|
|
|
*/
|
|
|
|
[noscript]void loadURI(in nsIURI uri,
|
|
|
|
in nsIDocShellLoadInfo loadInfo,
|
2002-03-02 04:26:49 +03:00
|
|
|
in unsigned long aLoadFlags,
|
|
|
|
in boolean firstParty);
|
2001-05-14 06:16:27 +04:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Loads a given stream. This will give priority to loading the requested
|
|
|
|
* stream in the object implementing this interface. If it can't be loaded
|
|
|
|
* here however, the URL dispatched will go through its normal process of
|
|
|
|
* content loading.
|
|
|
|
*
|
2003-01-18 05:15:14 +03:00
|
|
|
* @param aStream - The input stream that provides access to the data
|
|
|
|
* to be loaded. This must be a blocking, threadsafe
|
|
|
|
* stream implementation.
|
|
|
|
* @param aURI - The URI representing the stream, or null.
|
|
|
|
* @param aContentType - The type (MIME) of data being loaded (empty if unknown).
|
|
|
|
* @param aContentCharset - The charset of the data being loaded (empty if unknown).
|
|
|
|
* @param aLoadInfo - This is the extended load info for this load. This
|
|
|
|
* most often will be null, but if you need to do
|
|
|
|
* additional setup for this load you can get a
|
|
|
|
* loadInfo object by calling createLoadInfo. Once
|
|
|
|
* you have this object you can set the needed
|
|
|
|
* properties on it and then pass it to loadStream.
|
2001-05-14 06:16:27 +04:00
|
|
|
*/
|
|
|
|
[noscript]void loadStream(in nsIInputStream aStream,
|
|
|
|
in nsIURI aURI,
|
2003-01-18 05:15:14 +03:00
|
|
|
in ACString aContentType,
|
|
|
|
in ACString aContentCharset,
|
2001-05-14 06:16:27 +04:00
|
|
|
in nsIDocShellLoadInfo aLoadInfo);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Loads the given URI. This method is identical to loadURI(...) except
|
|
|
|
* that its parameter list is broken out instead of being packaged inside
|
|
|
|
* of an nsIDocShellLoadInfo object...
|
|
|
|
*
|
|
|
|
* @param aURI - The URI to load.
|
|
|
|
* @param aReferrer - Refering URI
|
|
|
|
* @param aOwner - Owner (security principal)
|
|
|
|
* @param aInheritOwner - Flag indicating whether the owner of the current
|
|
|
|
* document should be inherited if aOwner is null.
|
|
|
|
* @param aStopActiveDoc - Flag indicating whether loading the current
|
|
|
|
* document should be stopped.
|
|
|
|
* @param aWindowTarget - Window target for the load.
|
|
|
|
* @param aPostDataStream - Post data stream (if POSTing)
|
|
|
|
* @param aHeadersStream - Stream containing "extra" request headers...
|
|
|
|
* @param aLoadFlags - Flags to modify load behaviour. Flags are defined
|
|
|
|
* in nsIWebNavigation.
|
|
|
|
* @param aSHEntry - Active Session History entry (if loading from SH)
|
|
|
|
*/
|
2002-01-08 16:01:38 +03:00
|
|
|
[noscript]void internalLoad(in nsIURI aURI,
|
2001-05-14 06:16:27 +04:00
|
|
|
in nsIURI aReferrer,
|
|
|
|
in nsISupports aOwner,
|
|
|
|
in boolean aInheritOwner,
|
|
|
|
in wstring aWindowTarget,
|
|
|
|
in nsIInputStream aPostDataStream,
|
|
|
|
in nsIInputStream aHeadersStream,
|
|
|
|
in unsigned long aLoadFlags,
|
2002-03-02 04:26:49 +03:00
|
|
|
in nsISHEntry aSHEntry,
|
2002-03-13 09:08:56 +03:00
|
|
|
in boolean firstParty,
|
|
|
|
out nsIDocShell aDocShell,
|
|
|
|
out nsIRequest aRequest);
|
2001-05-14 06:16:27 +04:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Creates a DocShellLoadInfo object that you can manipulate and then pass
|
|
|
|
* to loadURI.
|
|
|
|
*/
|
|
|
|
void createLoadInfo(out nsIDocShellLoadInfo loadInfo);
|
|
|
|
|
2001-05-25 12:49:03 +04:00
|
|
|
/**
|
|
|
|
* Reset state to a new content model within the current document and the document
|
|
|
|
* viewer. Called by the document before initiating an out of band document.write().
|
|
|
|
*/
|
|
|
|
void prepareForNewContentModel();
|
|
|
|
|
2002-01-08 16:01:38 +03:00
|
|
|
/**
|
|
|
|
* For editors and suchlike who wish to change the URI associated with the
|
|
|
|
* document. Note if you want to get the current URI, use the read-only
|
|
|
|
* property on nsIWebNavigation.
|
|
|
|
*/
|
2002-06-28 04:57:03 +04:00
|
|
|
void setCurrentURI(in nsIURI aURI);
|
2002-01-08 16:01:38 +03:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Notify the associated content viewer and all child docshells that they are
|
|
|
|
* about to be unloaded.
|
|
|
|
*/
|
|
|
|
[noscript] void fireUnloadNotification();
|
2001-07-18 00:17:38 +04:00
|
|
|
|
2001-05-14 06:16:27 +04:00
|
|
|
/**
|
|
|
|
* Presentation context for the currently loaded document. This may be null.
|
|
|
|
*/
|
|
|
|
[noscript] readonly attribute nsIPresContext presContext;
|
|
|
|
|
|
|
|
/**
|
2001-08-22 01:18:45 +04:00
|
|
|
* Presentation shell for the currently loaded document. This may be null.
|
2001-05-14 06:16:27 +04:00
|
|
|
*/
|
|
|
|
[noscript] readonly attribute nsIPresShell presShell;
|
|
|
|
|
2001-08-22 01:18:45 +04:00
|
|
|
/**
|
|
|
|
* Presentation shell for the oldest document, if this docshell is
|
|
|
|
* currently transitioning between documents.
|
|
|
|
*/
|
|
|
|
[noscript] readonly attribute nsIPresShell eldestPresShell;
|
|
|
|
|
2001-05-14 06:16:27 +04:00
|
|
|
/**
|
|
|
|
* Content Viewer that is currently loaded for this DocShell. This may
|
|
|
|
* change as the underlying content changes.
|
|
|
|
*/
|
|
|
|
readonly attribute nsIContentViewer contentViewer;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* This attribute allows chrome to tie in to handle DOM events that may
|
|
|
|
* be of interest to chrome.
|
|
|
|
*/
|
|
|
|
attribute nsIChromeEventHandler chromeEventHandler;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* URI content listener parent. This is not refcounted and is assumed to be
|
|
|
|
* nulled out by the parent when the parent is going away.
|
|
|
|
*/
|
|
|
|
attribute nsIURIContentListener parentURIContentListener;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* The document charset info. This is used by a load to determine priorities
|
|
|
|
* for charset detection etc.
|
|
|
|
*/
|
|
|
|
attribute nsIDocumentCharsetInfo documentCharsetInfo;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Whether to allow plugin execution
|
|
|
|
*/
|
|
|
|
attribute boolean allowPlugins;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Whether to allow Javascript execution
|
|
|
|
*/
|
|
|
|
attribute boolean allowJavascript;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Attribute stating if refresh based redirects can be allowed
|
|
|
|
*/
|
|
|
|
attribute boolean allowMetaRedirects;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Attribute stating if it should allow subframes (framesets/iframes) or not
|
|
|
|
*/
|
|
|
|
attribute boolean allowSubframes;
|
|
|
|
|
2001-05-22 02:42:46 +04:00
|
|
|
/**
|
|
|
|
* Attribute stating whether or not images should be loaded.
|
|
|
|
*/
|
|
|
|
attribute boolean allowImages;
|
|
|
|
|
2001-05-14 06:16:27 +04:00
|
|
|
/**
|
|
|
|
* Get an enumerator over this docShell and its children.
|
|
|
|
*
|
|
|
|
* @param aItemType - Only include docShells of this type, or if typeAll,
|
|
|
|
* include all child shells.
|
|
|
|
* Uses types from nsIDocShellTreeItem.
|
|
|
|
* @param aDirection - Whether to enumerate forwards or backwards.
|
|
|
|
*/
|
|
|
|
|
|
|
|
const long ENUMERATE_FORWARDS = 0;
|
|
|
|
const long ENUMERATE_BACKWARDS = 1;
|
|
|
|
|
|
|
|
nsISimpleEnumerator getDocShellEnumerator(in long aItemType,
|
|
|
|
in long aDirection);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* The type of application that created this window
|
|
|
|
*/
|
|
|
|
const unsigned long APP_TYPE_UNKNOWN = 0;
|
|
|
|
const unsigned long APP_TYPE_MAIL = 1;
|
|
|
|
|
|
|
|
attribute unsigned long appType;
|
|
|
|
|
2003-04-26 03:29:17 +04:00
|
|
|
/**
|
|
|
|
* certain dochshells (like the message pane)
|
|
|
|
* should not throw up auth dialogs
|
|
|
|
* because it can act as a password trojan
|
|
|
|
*/
|
|
|
|
attribute boolean allowAuth;
|
|
|
|
|
2001-05-14 06:16:27 +04:00
|
|
|
/**
|
|
|
|
* Set/Get the document scale factor. When setting this attribute, a
|
|
|
|
* NS_ERROR_NOT_IMPLEMENTED error may be returned by implementations
|
|
|
|
* not supporting zoom. Implementations not supporting zoom should return
|
|
|
|
* 1.0 all the time for the Get operation. 1.0 by the way is the default
|
|
|
|
* of zoom. This means 100% of normal scaling or in other words normal size
|
|
|
|
* no zoom.
|
|
|
|
*/
|
|
|
|
attribute float zoom;
|
|
|
|
|
|
|
|
/*
|
|
|
|
* XXX Comment here!
|
|
|
|
*/
|
|
|
|
attribute long marginWidth;
|
|
|
|
|
|
|
|
/*
|
|
|
|
* XXX Comment here!
|
|
|
|
*/
|
|
|
|
attribute long marginHeight;
|
|
|
|
|
2002-01-08 16:01:38 +03:00
|
|
|
/*
|
|
|
|
* Tells the DocShell that it now has focus or has lost focus
|
|
|
|
*/
|
|
|
|
attribute boolean hasFocus;
|
2001-05-23 03:52:17 +04:00
|
|
|
|
2002-01-08 16:01:38 +03:00
|
|
|
/*
|
|
|
|
* Tells the docshell whether the canvas should have focus
|
|
|
|
*/
|
|
|
|
attribute boolean canvasHasFocus;
|
2001-05-23 03:52:17 +04:00
|
|
|
|
2001-10-23 02:43:52 +04:00
|
|
|
/*
|
|
|
|
* Tells the docshell to offer focus to its tree owner.
|
|
|
|
* This is currently only necessary for embedding chrome.
|
|
|
|
*/
|
|
|
|
void tabToTreeOwner(in boolean forward,
|
|
|
|
out boolean tookFocus);
|
|
|
|
|
2001-05-14 06:16:27 +04:00
|
|
|
/**
|
|
|
|
* Current busy state for DocShell
|
|
|
|
*/
|
|
|
|
const unsigned long BUSY_FLAGS_NONE = 0;
|
|
|
|
const unsigned long BUSY_FLAGS_BUSY = 1;
|
|
|
|
const unsigned long BUSY_FLAGS_BEFORE_PAGE_LOAD = 2;
|
|
|
|
const unsigned long BUSY_FLAGS_PAGE_LOADING = 4;
|
|
|
|
|
2002-04-05 02:10:10 +04:00
|
|
|
/**
|
|
|
|
* Load commands for the document
|
|
|
|
*/
|
|
|
|
const unsigned long LOAD_CMD_NORMAL = 0x1; // Normal load
|
|
|
|
const unsigned long LOAD_CMD_RELOAD = 0x2; // Reload
|
|
|
|
const unsigned long LOAD_CMD_HISTORY = 0x4; // Load from history
|
|
|
|
|
2001-05-14 06:16:27 +04:00
|
|
|
readonly attribute unsigned long busyFlags;
|
2001-10-26 23:04:11 +04:00
|
|
|
|
|
|
|
/*
|
|
|
|
* attribute to access the loadtype for the document
|
|
|
|
*/
|
|
|
|
attribute unsigned long loadType;
|
2001-12-07 03:02:03 +03:00
|
|
|
|
|
|
|
/*
|
|
|
|
* returns true if the docshell is being destroyed, false otherwise
|
|
|
|
*/
|
2002-01-08 16:01:38 +03:00
|
|
|
boolean isBeingDestroyed();
|
2003-03-13 22:58:23 +03:00
|
|
|
|
|
|
|
/*
|
|
|
|
* Returns true if the docshell is currently executing the onLoad Handler
|
|
|
|
*/
|
|
|
|
readonly attribute boolean isExecutingOnLoadHandler;
|
2003-05-30 04:21:01 +04:00
|
|
|
|
|
|
|
attribute nsILayoutHistoryState layoutHistoryState;
|
|
|
|
|
|
|
|
readonly attribute boolean shouldSaveLayoutState;
|
1999-11-12 10:28:25 +03:00
|
|
|
};
|
1999-11-19 10:35:27 +03:00
|
|
|
|