netwerk/base/nsIProxiedProtocolHandler.idl
author James Kitchener <jkitch.bug@internode.on.net>
Tue, 20 Jan 2015 03:58:00 -0500
changeset 253625 4ec37503ea6a752baf92e053ede5f0ff7750ff36
parent 246955 netwerk/base/public/nsIProxiedProtocolHandler.idl@f3e8f9d63c960040a9812037570a41b6e4e3903c
child 521127 2a216ce2dce09f21d7d51a1178b4bd77b6725e80
permissions -rw-r--r--
Bug 1100184 - Flatten netwerk/base/{public,src}/ directories. r=mcmanus, r=poiru

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* 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 "nsIProtocolHandler.idl"

interface nsIChannel;
interface nsIURI;
interface nsIProxyInfo;
interface nsILoadInfo;

[scriptable, uuid(3756047a-fa2b-4b45-9948-3b5f8fc375e7)]
interface nsIProxiedProtocolHandler : nsIProtocolHandler
{
    /** Create a new channel with the given proxyInfo
     *
     * @param uri the channel uri
     * @param proxyInfo any proxy information that has already been determined,
     *        or null if channel should later determine the proxy on its own using
     *        proxyResolveFlags/proxyURI
     * @param proxyResolveFlags used if the proxy is later determined
     *        from nsIProtocolProxyService::asyncResolve
     * @param proxyURI used if the proxy is later determined from
     *        nsIProtocolProxyService::asyncResolve with this as the proxyURI name.
     *        Generally this is the same as uri (or null which has the same
     *        effect), except in the case of websockets which wants to bootstrap
     *        to an http:// channel but make its proxy determination based on
     *        a ws:// uri.
     * @param aLoadInfo used to evaluate who initated the resource request.
     */
    nsIChannel newProxiedChannel2(in nsIURI uri, in nsIProxyInfo proxyInfo,
                                  in unsigned long proxyResolveFlags,
                                  in nsIURI proxyURI,
                                  in nsILoadInfo aLoadInfo);

    /** Create a new channel with the given proxyInfo
     *
     * @param uri the channel uri
     * @param proxyInfo any proxy information that has already been determined,
     *        or null if channel should later determine the proxy on its own using
     *        proxyResolveFlags/proxyURI
     * @param proxyResolveFlags used if the proxy is later determined
     *        from nsIProtocolProxyService::asyncResolve
     * @param proxyURI used if the proxy is later determined from
     *        nsIProtocolProxyService::asyncResolve with this as the proxyURI name.
     *        Generally this is the same as uri (or null which has the same
     *        effect), except in the case of websockets which wants to bootstrap
     *        to an http:// channel but make its proxy determination based on
     *        a ws:// uri.
     */
    nsIChannel newProxiedChannel(in nsIURI uri, in nsIProxyInfo proxyInfo,
                                 in unsigned long proxyResolveFlags,
                                 in nsIURI proxyURI);
};