mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-14 15:37:55 +00:00
185 lines
5.8 KiB
Plaintext
185 lines
5.8 KiB
Plaintext
/* -*- 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>
|
|
* Steve Clark <buster@netscape.com>
|
|
*/
|
|
|
|
#include "nsISupports.idl"
|
|
#include "domstubs.idl"
|
|
#include "nsIURIContentListener.idl"
|
|
#include "nsIURI.idl"
|
|
#include "nsIContentViewer.idl"
|
|
|
|
%{ C++
|
|
#include "nsIPresContext.h"
|
|
#include "nsIDocumentLoaderObserver.h"
|
|
%}
|
|
|
|
/**
|
|
* The nsIDocShell
|
|
*/
|
|
|
|
[ptr] native nsIPresContext(nsIPresContext);
|
|
[ptr] native nsIPresShell(nsIPresShell);
|
|
|
|
interface nsIChromeEventHandler;
|
|
interface nsIDocumentLoaderObserver;
|
|
interface nsIDocShellLoadInfo;
|
|
interface nsIDocumentCharsetInfo;
|
|
interface nsIWebNavigation;
|
|
|
|
[scriptable, uuid(69E5DE00-7B8B-11d3-AF61-00A024FFC08C)]
|
|
interface nsIDocShell : nsISupports
|
|
{
|
|
/*
|
|
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, in unsigned long aLoadFlags);
|
|
|
|
/*
|
|
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.
|
|
|
|
@param aStream - The input stream that provides access to the data to be loaded.
|
|
@param aURI - The URI representing the stream, or null.
|
|
@param aContentType - The type (MIME) of data being loaded.
|
|
@param aContentLen - The length (in bytes) of the stream. If you don't know
|
|
the length of the stream this can be -1.
|
|
@param aLoadInfo - This is the extended load info for this load. This most
|
|
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.
|
|
*/
|
|
[noscript]void loadStream(in nsIInputStream aStream, in nsIURI aURI,
|
|
in string aContentType, in long aContentLen,
|
|
in nsIDocShellLoadInfo aLoadInfo);
|
|
|
|
/*
|
|
Creates a DocShellLoadInfo object that you can manipulate and then pass to
|
|
loadURI.
|
|
*/
|
|
void createLoadInfo(out nsIDocShellLoadInfo loadInfo);
|
|
|
|
/*
|
|
Stops a current load. This simply stops the network portion of the load.
|
|
If you wish to do a complete stop, then you should us the
|
|
nsIWebNavigation::Stop() method.
|
|
*/
|
|
void stopLoad();
|
|
|
|
/* clients may get and set an nsIDocumentLoaderObserver, which will be notified
|
|
* during loadURI, loadURIVia, and setDocument
|
|
*/
|
|
attribute nsIDocumentLoaderObserver docLoaderObserver;
|
|
|
|
/*
|
|
Presentation context for the currently loaded document. This may be null.
|
|
*/
|
|
[noscript] readonly attribute nsIPresContext presContext;
|
|
|
|
/*
|
|
Presentation context for the currently loaded document. This may be null.
|
|
*/
|
|
[noscript] readonly attribute nsIPresShell presShell;
|
|
|
|
/*
|
|
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;
|
|
|
|
/*
|
|
Attribute stating if it should allow plugins or not.
|
|
*/
|
|
attribute boolean allowPlugins;
|
|
|
|
/*
|
|
Definitions for the viewModes the docShell can be in.
|
|
*/
|
|
const long viewNormal=0;
|
|
const long viewSource=1;
|
|
|
|
/*
|
|
This is the mode that the docShell is in for viewing when a load occurs.
|
|
*/
|
|
attribute long viewMode;
|
|
|
|
/**
|
|
* 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;
|
|
|
|
/* 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;
|
|
|
|
readonly attribute unsigned long busyFlags;
|
|
};
|
|
|