gecko-dev/uriloader/base/nsIWebProgressListener.idl

263 строки
10 KiB
Plaintext
Исходник Обычный вид История

/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* 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 the Initial Developer are Copyright (C) 1999
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* Travis Bogard <travis@netscape.com>
* Darin Fisher <darin@meer.net>
*
* Alternatively, the contents of this file may be used under the terms of
* either of the GNU General Public License Version 2 or later (the "GPL"),
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
#include "nsISupports.idl"
interface nsIWebProgress;
interface nsIRequest;
interface nsIURI;
/**
* The nsIWebProgressListener interface is implemented by clients wishing to
* listen in on the progress associated with the loading of documents.
*
* @status UNDER_REVIEW
*/
[scriptable, uuid(570F39D1-EFD0-11d3-B093-00A024FFC08C)]
interface nsIWebProgressListener : nsISupports
{
/**
* State Transition Flags
*
* These flags indicate the various states that documents and requests may
* transition through as they are being loaded. These flags are mutually
* exclusive.
*
* STATE_START
* This flag indicates the start of a request.
*
* STATE_REDIRECTING
* This flag indicates that a request is being redirected. When a redirect
* occurs, a new request is generated automatically to process the new
* request. Expect a corresponding STATE_START event for the new request,
* and a STATE_STOP for the redirected request.
*
* STATE_TRANSFERRING
* This flag indicates that data for a request is being transferred to an
* end consumer. This flag indicates that the request has been targeted,
* and that the user may start seeing content corresponding to the request.
*
* STATE_NEGOTIATING
* This flag is not used.
*
* STATE_STOP
* This flag indicates the completion of a request.
*/
const unsigned long STATE_START = 0x00000001;
const unsigned long STATE_REDIRECTING = 0x00000002;
const unsigned long STATE_TRANSFERRING = 0x00000004;
const unsigned long STATE_NEGOTIATING = 0x00000008;
const unsigned long STATE_STOP = 0x00000010;
/**
* State Type Flags
*
* These flags further describe the entity for which the state transition is
* occuring. These flags are NOT mutually exclusive (i.e., an onStateChange
* event may indicate some combination of these flags).
*
* STATE_IS_REQUEST
* This flag indicates that the state transition is for a non-document
* request (e.g., an inline image request).
*
* STATE_IS_DOCUMENT
* This flag indicates that the state transition is for a document request,
* which includes documents in sub-frames.
*
* STATE_IS_NETWORK
* This flag indicates that the state transition corresponds to a network
* level event. A nsIWebProgressListener attached to a nsIWebProgress will
* not see this flag for onStateChange events corresponding to a
* subdocument.
*
* STATE_IS_WINDOW
* This flag indicates that the state transition corresponds to the DOM
* window associated with the nsIWebProgress instance.
*/
const unsigned long STATE_IS_REQUEST = 0x00010000;
const unsigned long STATE_IS_DOCUMENT = 0x00020000;
const unsigned long STATE_IS_NETWORK = 0x00040000;
const unsigned long STATE_IS_WINDOW = 0x00080000;
/**
* State Security Flags
*
* A combination of these flags comprises the aState parameter to the
* onSecurityChange method. These flags are mutually exclusive.
*
* STATE_IS_INSECURE
* This flag indicates that the data corresponding to the request
* was received over an insecure channel.
*
* STATE_IS_BROKEN
* This flag indicates an unknown security state. This may mean that the
* request is being loaded as part of a page in which some content was
* received over an insecure channel.
*
* STATE_IS_SECURE
* This flag indicates that the data corresponding to the request was
* received over a secure channel. The degree of security is expressed by
* STATE_SECURE_HIGH, STATE_SECURE_MED, or STATE_SECURE_LOW.
*/
const unsigned long STATE_IS_INSECURE = 0x00000004;
const unsigned long STATE_IS_BROKEN = 0x00000001;
const unsigned long STATE_IS_SECURE = 0x00000002;
const unsigned long STATE_SECURE_HIGH = 0x00040000;
const unsigned long STATE_SECURE_MED = 0x00010000;
const unsigned long STATE_SECURE_LOW = 0x00020000;
/**
* Notification indicating the state has changed for one of the requests
* associated with the document being loaded.
*
* @param aWebProgress
* The nsIWebProgress instance that fired the notification
* @param aRequest
* The nsIRequest that has changed state.
* @param aStateFlags
* Flags indicating the new state. This value is a combination
* of one of the State Transition Flags and one or more of the
* State Type Flags defined above.
* @param aStatus
* Error status code associated with the state change. This parameter
* should be ignored unless aStateFlags includes the STATE_STOP bit.
* The status code will indicate success / failure of the request
* associated with the state change.
*/
void onStateChange(in nsIWebProgress aWebProgress,
in nsIRequest aRequest,
in unsigned long aStateFlags,
in nsresult aStatus);
/**
* Notification that the progress has changed for one of the requests being
* monitored.
*
* @param aWebProgress
* The nsIWebProgress instance that fired the notification.
* @param aRequest
* The nsIRequest that has new progress.
* @param aCurSelfProgress
* The current progress for aRequest.
* @param aMaxSelfProgress
* The maximum progress for aRequest. If this value is not known then
* -1 is passed.
* @param aCurTotalProgress
* The current progress for all the requests being monitored.
* @param aMaxTotalProgress
* The total progress for all the requests being monitored. If this
* value is not known then -1 is passed.
*
* NOTE: For download sizes that exceed the maximum value representable by
* type long, -1 will be used.
*/
void onProgressChange(in nsIWebProgress aWebProgress,
in nsIRequest aRequest,
in long aCurSelfProgress,
in long aMaxSelfProgress,
in long aCurTotalProgress,
in long aMaxTotalProgress);
/**
* Called when the location of the window being watched changes. This is not
* when a load is requested, but rather once it is verified that the load is
* going to occur in the given window. For instance, a load that starts in a
* window might send progress and status messages for the new site, but it
* will not send the onLocationChange until we are sure that we are loading
* this new page here.
*
* @param aWebProgress
* The nsIWebProgress instance that fired the notification.
* @param aRequest
* The associated nsIRequest. This may be null in some cases.
* @param aLocation
* The URI of the location that is being loaded.
*/
void onLocationChange(in nsIWebProgress aWebProgress,
in nsIRequest aRequest,
in nsIURI aLocation);
/**
* Notification that the status of a request has changed. The status message
* is intended to be displayed to the user (e.g., in the status bar of the
* browser).
*
* @param aWebProgress
* The nsIWebProgress instance that fired the notification.
* @param aRequest
* The nsIRequest that has new status.
* @param aStatus
* This value is not an error code. Instead, it is a numeric value
* that indicates the current status of the request. This interface
* does not define the set of possible status codes. NOTE: Some
* status values are defined by nsITransport and nsISocketTransport.
* @param aMessage
* Localized text corresponding to aStatus.
*/
void onStatusChange(in nsIWebProgress aWebProgress,
in nsIRequest aRequest,
in nsresult aStatus,
in wstring aMessage);
/**
* Notification called for security progress. This method will be called on
* security transitions (eg HTTP -> HTTPS, HTTPS -> HTTP, FOO -> HTTPS) and
* after document load completion. It might also be called if an error
* occurs during network loading.
*
* NOTE: These notification will only occur if a security package is
* installed.
*
* @param aWebProgress
* The nsIWebProgress instance that fired the notification.
* @param aRequest
* The nsIRequest that has new security state.
* @param aState
* A value composed of the Security State Flags listed above.
*/
void onSecurityChange(in nsIWebProgress aWebProgress,
in nsIRequest aRequest,
in unsigned long aState);
};