2000-03-02 05:24:57 +03:00
|
|
|
/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
|
|
|
*
|
2004-04-17 20:52:41 +04:00
|
|
|
* ***** 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.
|
|
|
|
*
|
2000-03-02 05:24:57 +03:00
|
|
|
* The Original Code is the Mozilla browser.
|
2004-04-17 20:52:41 +04:00
|
|
|
*
|
|
|
|
* 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.
|
|
|
|
*
|
2000-03-02 05:24:57 +03:00
|
|
|
* Contributor(s):
|
|
|
|
* Travis Bogard <travis@netscape.com>
|
2004-09-29 10:33:54 +04:00
|
|
|
* Darin Fisher <darin@meer.net>
|
2004-04-17 20:52:41 +04:00
|
|
|
*
|
|
|
|
* 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 ***** */
|
2000-03-02 05:24:57 +03:00
|
|
|
|
|
|
|
#include "nsISupports.idl"
|
|
|
|
|
2004-09-29 10:33:54 +04:00
|
|
|
interface nsIWebProgress;
|
|
|
|
interface nsIRequest;
|
|
|
|
interface nsIURI;
|
|
|
|
|
2000-03-02 05:24:57 +03:00
|
|
|
/**
|
2004-09-29 10:33:54 +04:00
|
|
|
* The nsIWebProgressListener interface is implemented by clients wishing to
|
2000-06-19 09:54:37 +04:00
|
|
|
* listen in on the progress associated with the loading of documents.
|
2001-03-24 03:22:18 +03:00
|
|
|
*
|
|
|
|
* @status UNDER_REVIEW
|
2000-03-02 05:24:57 +03:00
|
|
|
*/
|
|
|
|
[scriptable, uuid(570F39D1-EFD0-11d3-B093-00A024FFC08C)]
|
|
|
|
interface nsIWebProgressListener : nsISupports
|
|
|
|
{
|
2004-09-29 10:33:54 +04:00
|
|
|
/**
|
|
|
|
* 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.
|
|
|
|
*/
|
2002-05-17 00:57:37 +04:00
|
|
|
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;
|
|
|
|
|
2004-09-29 10:33:54 +04:00
|
|
|
|
|
|
|
/**
|
|
|
|
* 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.
|
|
|
|
*/
|
2002-05-17 00:57:37 +04:00
|
|
|
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;
|
|
|
|
|
2004-09-29 10:33:54 +04:00
|
|
|
|
|
|
|
/**
|
|
|
|
* 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.
|
|
|
|
*/
|
2002-05-17 00:57:37 +04:00
|
|
|
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;
|
|
|
|
|
|
|
|
|
2004-09-29 10:33:54 +04:00
|
|
|
/**
|
|
|
|
* 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.
|
|
|
|
*/
|
2002-05-17 00:57:37 +04:00
|
|
|
void onStateChange(in nsIWebProgress aWebProgress,
|
|
|
|
in nsIRequest aRequest,
|
|
|
|
in unsigned long aStateFlags,
|
|
|
|
in nsresult aStatus);
|
|
|
|
|
2004-09-29 10:33:54 +04:00
|
|
|
/**
|
|
|
|
* 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.
|
|
|
|
*/
|
2002-05-17 00:57:37 +04:00
|
|
|
void onProgressChange(in nsIWebProgress aWebProgress,
|
2000-07-25 09:45:56 +04:00
|
|
|
in nsIRequest aRequest,
|
2002-05-17 00:57:37 +04:00
|
|
|
in long aCurSelfProgress,
|
|
|
|
in long aMaxSelfProgress,
|
|
|
|
in long aCurTotalProgress,
|
|
|
|
in long aMaxTotalProgress);
|
2004-09-29 10:33:54 +04:00
|
|
|
|
|
|
|
/**
|
|
|
|
* 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.
|
|
|
|
*/
|
2002-05-17 00:57:37 +04:00
|
|
|
void onLocationChange(in nsIWebProgress aWebProgress,
|
|
|
|
in nsIRequest aRequest,
|
2004-09-29 10:33:54 +04:00
|
|
|
in nsIURI aLocation);
|
2002-05-17 00:57:37 +04:00
|
|
|
|
2004-09-29 10:33:54 +04:00
|
|
|
/**
|
|
|
|
* 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.
|
|
|
|
*/
|
2002-05-17 00:57:37 +04:00
|
|
|
void onStatusChange(in nsIWebProgress aWebProgress,
|
|
|
|
in nsIRequest aRequest,
|
|
|
|
in nsresult aStatus,
|
|
|
|
in wstring aMessage);
|
2000-09-15 02:56:56 +04:00
|
|
|
|
2004-09-29 10:33:54 +04:00
|
|
|
/**
|
|
|
|
* 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.
|
|
|
|
*/
|
2002-05-17 00:57:37 +04:00
|
|
|
void onSecurityChange(in nsIWebProgress aWebProgress,
|
|
|
|
in nsIRequest aRequest,
|
2004-09-29 10:33:54 +04:00
|
|
|
in unsigned long aState);
|
2000-07-25 09:45:56 +04:00
|
|
|
};
|