1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #include
"nsIProtocolHandler.idl"
10 interface nsIProxyInfo
;
11 interface nsILoadInfo
;
13 [scriptable
, builtinclass
, uuid(3756047a
-fa2b
-4b45
-9948-3b5f8fc375e7
)]
14 interface nsIProxiedProtocolHandler
: nsIProtocolHandler
16 /** Create a new channel with the given proxyInfo
18 * @param uri the channel uri
19 * @param proxyInfo any proxy information that has already been determined,
20 * or null if channel should later determine the proxy on its own using
21 * proxyResolveFlags/proxyURI
22 * @param proxyResolveFlags used if the proxy is later determined
23 * from nsIProtocolProxyService::asyncResolve
24 * @param proxyURI used if the proxy is later determined from
25 * nsIProtocolProxyService::asyncResolve with this as the proxyURI name.
26 * Generally this is the same as uri (or null which has the same
27 * effect), except in the case of websockets which wants to bootstrap
28 * to an http:// channel but make its proxy determination based on
30 * @param aLoadInfo used to evaluate who initated the resource request.
32 nsIChannel newProxiedChannel
(in nsIURI uri
, in nsIProxyInfo proxyInfo
,
33 in unsigned long proxyResolveFlags
,
35 in nsILoadInfo aLoadInfo
);