gecko-dev/netwerk/base/public/nsIParentRedirectingChannel...

47 строки
1.7 KiB
Plaintext

/* 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 "nsIParentChannel.idl"
interface nsITabParent;
interface nsIChannel;
interface nsIAsyncVerifyRedirectCallback;
/**
* Implemented by chrome side of IPC protocols that support redirect responses.
*/
[scriptable, uuid(cb7edc1c-096f-44de-957c-cb93de1545f6)]
interface nsIParentRedirectingChannel : nsIParentChannel
{
/**
* Called when the channel got a response that redirects it to a different
* URI. The implementation is responsible for calling the redirect observers
* on the child process and provide the decision result to the callback.
*
* @param newChannelId
* id of the redirect channel obtained from nsIRedirectChannelRegistrar.
* @param newURI
* the URI we redirect to
* @param callback
* redirect result callback, usage is compatible with how
* nsIChannelEventSink defines it
*/
void startRedirect(in PRUint32 newChannelId,
in nsIChannel newChannel,
in PRUint32 redirectFlags,
in nsIAsyncVerifyRedirectCallback callback);
/**
* Called after we are done with redirecting process and we know if to
* redirect or not. Forward the redirect result to the child process. From
* that moment the nsIParentChannel implementation expects it will be
* forwarded all notifications from the 'real' channel.
*
* Primarilly used by HttpChannelParentListener::OnRedirectResult and kept
* as mActiveChannel and mRedirectChannel in that class.
*/
void completeRedirect(in boolean succeeded);
};