michael@0: /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #include "nsIProtocolHandler.idl" michael@0: michael@0: interface nsIChannel; michael@0: interface nsIURI; michael@0: interface nsIProxyInfo; michael@0: michael@0: [scriptable, uuid(2b63fe69-b0fc-48f2-a2df-adb795a4ce5c)] michael@0: interface nsIProxiedProtocolHandler : nsIProtocolHandler michael@0: { michael@0: /** Create a new channel with the given proxyInfo michael@0: * michael@0: * @param uri the channel uri michael@0: * @param proxyInfo any proxy information that has already been determined, michael@0: * or null if channel should later determine the proxy on its own using michael@0: * proxyResolveFlags/proxyURI michael@0: * @param proxyResolveFlags used if the proxy is later determined michael@0: * from nsIProtocolProxyService::asyncResolve michael@0: * @param proxyURI used if the proxy is later determined from michael@0: * nsIProtocolProxyService::asyncResolve with this as the proxyURI name. michael@0: * Generally this is the same as uri (or null which has the same michael@0: * effect), except in the case of websockets which wants to bootstrap michael@0: * to an http:// channel but make its proxy determination based on michael@0: * a ws:// uri. michael@0: */ michael@0: nsIChannel newProxiedChannel(in nsIURI uri, in nsIProxyInfo proxyInfo, michael@0: in unsigned long proxyResolveFlags, michael@0: in nsIURI proxyURI); michael@0: }; michael@0: