1/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2/* vim:set ts=2 sw=2 sts=2 et cindent: */
3/* This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6
7#include "nsIProtocolProxyService.idl"
8
9/**
10 * An extension of nsIProtocolProxyService
11 */
12[scriptable, builtinclass, uuid(b2e5b2c0-e21e-4845-b336-be6d60a38951)]
13interface nsIProtocolProxyService2 : nsIProtocolProxyService
14{
15  /**
16   * Call this method to cause the PAC file (if any is configured) to be
17   * reloaded.  The PAC file is loaded asynchronously.
18   */
19  void reloadPAC();
20
21    /**
22     * This method is identical to asyncResolve() except:
23     *  - it only accepts an nsIChannel, not an nsIURI;
24     *  - it may execute the callback function immediately (i.e from the stack
25     *    of asyncResolve2()) if it is immediately ready to run.
26     *    The nsICancelable return value will be null in that case.
27     */
28  nsICancelable asyncResolve2(
29      in nsIChannel aChannel, in unsigned long aFlags,
30      in nsIProtocolProxyCallback aCallback,
31      [optional] in nsISerialEventTarget aMainThreadTarget);
32};
33