/* 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 nsIChannel;
interface nsIAsyncVerifyRedirectCallback;
/**
* Implement this interface to receive control over various channel events .
* Channels will try to get this interface from a channel ' s
* notificationCallbacks or , if not available there , from the loadGroup ' s
* notificationCallbacks .
*
* These methods are called before onStartRequest .
*/
[scriptable, uuid(
0197720 d-
37 ed-
4 e75-
8956 -d0d296e4d8a6)]
interface nsIChannelEventSink : nsISupports
{
/**
* This is a temporary redirect . New requests for this resource should
* continue to use the URI of the old channel .
*
* The new URI may be identical to the old one .
*/
const unsigned long REDIRECT_TEMPORARY =
1 <<
0 ;
/**
* This is a permanent redirect . New requests for this resource should use
* the URI of the new channel ( This might be an HTTP 301 reponse ) .
* If this flag is not set , this is a temporary redirect .
*
* The new URI may be identical to the old one .
*/
const unsigned long REDIRECT_PERMANENT =
1 <<
1 ;
/**
* This is an internal redirect , i . e . it was not initiated by the remote
* server , but is specific to the channel implementation .
*
* The new URI may be identical to the old one .
*/
const unsigned long REDIRECT_INTERNAL =
1 <<
2 ;
/**
* This is a special - cased redirect coming from hitting HSTS upgrade
* redirect from http to https only . In some cases this type of redirect
* may be considered as safe despite not being the - same - origin redirect .
*/
const unsigned long REDIRECT_STS_UPGRADE =
1 <<
3 ;
/**
* This is a internal redirect used to handle http authentication retries .
* Upon receiving a 401 or 407 the channel gets redirected to a new channel
* ( same URL ) that performs the request with the appropriate credentials .
* Auth retry to the server must be made after redirecting to a new channel
*/
const unsigned long REDIRECT_AUTH_RETRY =
1 <<
4 ;
/**
* This is a special - case internal redirect triggered by
* transparentRedirectTo . The URL bar and window . location . href
* must remain unchanged , preserving the original request URI ,
* while the content is served from the redirected URI .
*/
const unsigned long REDIRECT_TRANSPARENT =
1 <<
5 ;
/**
* Called when a redirect occurs . This may happen due to an HTTP 3 xx status
* code . The purpose of this method is to notify the sink that a redirect
* is about to happen , but also to give the sink the right to veto the
* redirect by throwing or passing a failure - code in the callback .
*
* Note that vetoing the redirect simply means that | newChannel | will not
* be opened . It is important to understand that | oldChannel | will continue
* loading as if it received a HTTP 200 , which includes notifying observers
* and possibly display or process content attached to the HTTP response .
* If the sink wants to prevent this loading it must explicitly deal with
* it , e . g . by calling | oldChannel - > Cancel ( ) |
*
* There is a certain freedom in implementing this method :
*
* If the return - value indicates success , a callback on | callback | is
* required . This callback can be done from within asyncOnChannelRedirect
* ( effectively making the call synchronous ) or at some point later
* ( making the call asynchronous ) . Repeat : A callback must be done
* if this method returns successfully .
*
* If the return value indicates error ( method throws an exception )
* the redirect is vetoed and no callback must be done . Repeat : No
* callback must be done if this method throws !
*
* NOTE : originalURI isn ' t yet set on the new channel when
* asyncOnChannelRedirect is called .
*
* @ see nsIAsyncVerifyRedirectCallback : : onRedirectVerifyCallback ( )
*
* @ param oldChannel
* The channel that ' s being redirected .
* @ param newChannel
* The new channel . This channel is not opened yet .
* @ param flags
* Flags indicating the type of redirect . A bitmask consisting
* of flags from above .
* One of REDIRECT_TEMPORARY and REDIRECT_PERMANENT will always be
* set .
* @ param callback
* Object to inform about the async result of this method
*
* @ throw < any > Throwing an exception will cause the redirect to be
* cancelled
*/
void asyncOnChannelRedirect(in nsIChannel oldChannel,
in nsIChannel newChannel,
in
unsigned long flags,
in nsIAsyncVerifyRedirectCallback callback);
};
Messung V0.5 in Prozent C=93 H=100 G=96
¤ Dauer der Verarbeitung: 0.14 Sekunden
(vorverarbeitet am 2026-08-25)
¤
*© Formatika GbR, Deutschland