<!DOCTYPE html><!-- This page is a placeholder for generated extensions api doc. Note:
    1) The <head> information in this page is significant, should be uniform
       across api docs and should be edited only with knowledge of the
       templating mechanism.
    3) All <body>.innerHTML is genereated as an rendering step. If viewed in a
       browser, it will be re-generated from the template, json schema and
       authored overview content.
    4) The <body>.innerHTML is also generated by an offline step so that this
       page may easily be indexed by search engines.
--><html xmlns="http://www.w3.org/1999/xhtml"><head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link href="css/ApiRefStyles.css" rel="stylesheet" type="text/css">
    <link href="css/print.css" rel="stylesheet" type="text/css" media="print">
    <script type="text/javascript" src="../../../third_party/jstemplate/jstemplate_compiled.js">
    </script>
    <script type="text/javascript" src="js/api_page_generator.js"></script>
    <script type="text/javascript" src="js/bootstrap.js"></script>
    <script type="text/javascript" src="js/sidebar.js"></script>
  <title>Proxy Settings - Google Chrome Extensions - Google Code</title></head>
  <body>  <div id="gc-container" class="labs">
      <div id="devModeWarning">
        You are viewing extension docs in chrome via the 'file:' scheme: are you expecting to see local changes when you refresh? You'll need run chrome with --allow-file-access-from-files.
      </div>
      <!-- SUBTEMPLATES: DO NOT MOVE FROM THIS LOCATION -->
      <!-- In particular, sub-templates that recurse, must be used by allowing
           jstemplate to make a copy of the template in this section which
           are not operated on by way of the jsskip="true" -->
      <div style="display:none">

        <!-- VALUE -->
        <div id="valueTemplate">
          <dt>
            <var>paramName</var>
              <em>

                <!-- TYPE -->
                <div style="display:inline">
                  (
                    <span class="optional">optional</span>
                    <span class="enum">enumerated</span>
                    <span id="typeTemplate">
                      <span>
                        <a> Type</a>
                      </span>
                      <span>
                        <span>
                          array of <span><span></span></span>
                        </span>
                        <span>paramType</span>
                        <span></span>
                      </span>
                    </span>
                  )
                </div>

              </em>
          </dt>
          <dd class="todo">
            Undocumented.
          </dd>
          <dd>
            Description of this parameter from the json schema.
          </dd>
          <dd>
            This parameter was added in version
            <b><span></span></b>.
            You must omit this parameter in earlier versions,
            and you may omit it in any version.  If you require this
            parameter, the manifest key
            <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a>
            can ensure that your extension won't be run in an earlier browser version.
          </dd>

          <!-- OBJECT PROPERTIES -->
          <dd>
            <dl>
              <div>
                <div>
                </div>
              </div>
            </dl>
          </dd>

          <!-- OBJECT METHODS -->
          <dd>
            <div></div>
          </dd>

          <!-- OBJECT EVENT FIELDS -->
          <dd>
            <div></div>
          </dd>

          <!-- FUNCTION PARAMETERS -->
          <dd>
            <div></div>
          </dd>

        </div> <!-- /VALUE -->

        <div id="functionParametersTemplate">
          <h5>Parameters</h5>
          <dl>
            <div>
              <div>
              </div>
            </div>
          </dl>
        </div>
      </div> <!-- /SUBTEMPLATES -->

  <a id="top"></a>
    <div id="skipto">
      <a href="#gc-pagecontent">Skip to page content</a>
      <a href="#gc-toc">Skip to main navigation</a>
    </div>
    <!-- API HEADER -->
    <table id="header" width="100%" cellspacing="0" border="0">
      <tbody><tr>
        <td valign="middle"><a href="http://code.google.com/"><img src="images/code_labs_logo.gif" height="43" width="161" alt="Google Code Labs" style="border:0; margin:0;"></a></td>
        <td valign="middle" width="100%" style="padding-left:0.6em;">
          <form action="http://www.google.com/cse" id="cse" style="margin-top:0.5em">
            <div id="gsc-search-box">
              <input type="hidden" name="cx" value="002967670403910741006:61_cvzfqtno">
              <input type="hidden" name="ie" value="UTF-8">
              <input type="text" name="q" value="" size="55">
              <input class="gsc-search-button" type="submit" name="sa" value="Search">
              <br>
              <span class="greytext">e.g. "page action" or "tabs"</span>
            </div>
          </form>

          <script type="text/javascript" src="http://www.google.com/jsapi"></script>
          <script type="text/javascript">google.load("elements", "1", {packages: "transliteration"});</script>
          <script type="text/javascript" src="http://www.google.com/coop/cse/t13n?form=cse&amp;t13n_langs=en"></script>
          <script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=cse&amp;lang=en"></script>
        </td>
      </tr>
    </tbody></table>

    <div id="codesiteContent" class="">

      <a id="gc-topnav-anchor"></a>
      <div id="gc-topnav">
        <h1>Google Chrome Extensions (<a href="http://code.google.com/labs/">Labs</a>)</h1>
        <ul id="home" class="gc-topnav-tabs">
          <li id="home_link">
            <a href="index.html" title="Google Chrome Extensions home page">Home</a>
          </li>
          <li id="docs_link">
            <a href="docs.html" title="Official Google Chrome Extensions documentation">Docs</a>
          </li>
          <li id="faq_link">
            <a href="faq.html" title="Answers to frequently asked questions about Google Chrome Extensions">FAQ</a>
          </li>
          <li id="samples_link">
            <a href="samples.html" title="Sample extensions (with source code)">Samples</a>
          </li>
          <li id="group_link">
            <a href="http://groups.google.com/a/chromium.org/group/chromium-extensions" title="Google Chrome Extensions developer forum">Group</a>
          </li>
        </ul>
      </div> <!-- end gc-topnav -->

    <div class="g-section g-tpl-170">
      <!-- SIDENAV -->
      <div class="g-unit g-first" id="gc-toc">
        <ul>
          <li><a href="getstarted.html">Getting Started</a></li>
          <li><a href="overview.html">Overview</a></li>
          <li><a href="whats_new.html">What's New?</a></li>
          <li><h2><a href="devguide.html">Developer's Guide</a></h2>
            <ul>
              <li>Browser UI
                <ul>
                  <li><a href="browserAction.html">Browser Actions</a></li>
                  <li><a href="contextMenus.html">Context Menus</a></li>
                  <li><a href="notifications.html">Desktop Notifications</a></li>
                  <li><a href="omnibox.html">Omnibox</a></li>
                  <li><a href="options.html">Options Pages</a></li>
                  <li><a href="override.html">Override Pages</a></li>
                  <li><a href="pageAction.html">Page Actions</a></li>
                </ul>
              </li>
              <li>Browser Interaction
                <ul>
                  <li><a href="bookmarks.html">Bookmarks</a></li>
                  <li><a href="cookies.html">Cookies</a></li>
                  <li><a href="events.html">Events</a></li>
                  <li><a href="history.html">History</a></li>
                  <li><a href="management.html">Management</a></li>
                  <li><a href="tabs.html">Tabs</a></li>
                  <li><a href="windows.html">Windows</a></li>
                </ul>
              </li>
              <li>Implementation
                <ul>
                  <li><a href="a11y.html">Accessibility</a></li>
                  <li><a href="background_pages.html">Background Pages</a></li>
                  <li><a href="content_scripts.html">Content Scripts</a></li>
                  <li><a href="xhr.html">Cross-Origin XHR</a></li>
                  <li><a href="idle.html">Idle</a></li>
                  <li><a href="i18n.html">Internationalization</a></li>
                  <li><a href="messaging.html">Message Passing</a></li>
                  <li><a href="npapi.html">NPAPI Plugins</a></li>
                </ul>
              </li>
              <li>Finishing
                <ul>
                  <li><a href="hosting.html">Hosting</a></li>
                  <li><a href="external_extensions.html">Other Deployment Options</a></li>
                </ul>
              </li>
            </ul>
          </li>
          <li><h2><a href="apps.html">Packaged Apps</a></h2></li>
          <li><h2><a href="tutorials.html">Tutorials</a></h2>
            <ul>
              <li><a href="tut_debugging.html">Debugging</a></li>
              <li><a href="tut_analytics.html">Google Analytics</a></li>
              <li><a href="tut_oauth.html">OAuth</a></li>
            </ul>
          </li>
          <li><h2>Reference</h2>
            <ul>
              <li>Formats
                <ul>
                  <li><a href="manifest.html">Manifest Files</a></li>
                  <li><a href="match_patterns.html">Match Patterns</a></li>
                </ul>
              </li>
              <li><a href="permission_warnings.html">Permission Warnings</a></li>
              <li><a href="api_index.html">chrome.* APIs</a></li>
              <li><a href="api_other.html">Other APIs</a></li>
            </ul>
          </li>
          <li><h2><a href="samples.html">Samples</a></h2></li>
          <div class="line"> </div>
          <li><h2>More</h2>
            <ul>
              <li><a href="http://code.google.com/chrome/webstore/docs/index.html">Chrome Web Store</a></li>
              <li><a href="http://code.google.com/chrome/apps/docs/developers_guide.html">Hosted Apps</a></li>
              <li><a href="themes.html">Themes</a></li>
            </ul>
          </li>
        </ul>
      </div>
      <script>
        initToggles();
      </script>

    <div class="g-unit" id="gc-pagecontent">
      <div id="pageTitle">
        <h1 class="page_title">Proxy Settings</h1>
      </div>
        <!-- TABLE OF CONTENTS -->
        <div id="toc">
          <h2>Contents</h2>
          <ol>
            <li>
              <a href="#manifest">Manifest</a>
              <ol>
                <li style="display: none; ">
                  <a>h3Name</a>
                </li>
              </ol>
            </li><li>
              <a href="#description">Objects and properties</a>
              <ol>
                <li>
                  <a href="#proxy_modes">Proxy modes</a>
                </li><li>
                  <a href="#proxy_rules">Proxy rules</a>
                </li><li>
                  <a href="#proxy_server_objects">Proxy server objects</a>
                </li><li>
                  <a href="#bypass_list">Bypass list</a>
                </li>
              </ol>
            </li><li>
              <a href="#precedence">Precedence</a>
              <ol>
                <li style="display: none; ">
                  <a>h3Name</a>
                </li>
              </ol>
            </li><li>
              <a href="#overview-examples">Examples</a>
              <ol>
                <li style="display: none; ">
                  <a>h3Name</a>
                </li>
              </ol>
            </li>
              <li>
                <a href="#apiReference">API reference: chrome.experimental.proxy</a>
                <ol>
                  <li>
                    <a href="#properties">Properties</a>
                    <ol>
                      <li>
                        <a href="#property-settings">settings</a>
                      </li>
                    </ol>
                  </li>
                  <li style="display: none; ">
                    <a>Methods</a>
                    <ol>
                      <li>
                        <a href="#method-anchor">methodName</a>
                      </li>
                    </ol>
                  </li>
                  <li>
                    <a href="#global-events">Events</a>
                    <ol>
                      <li>
                        <a href="#event-onProxyError">onProxyError</a>
                      </li>
                    </ol>
                  </li>
                  <li>
                    <a href="#types">Types</a>
                    <ol>
                      <li>
                        <a href="#type-ProxyServer">ProxyServer</a>
                      </li><li>
                        <a href="#type-ProxyRules">ProxyRules</a>
                      </li><li>
                        <a href="#type-PacScript">PacScript</a>
                      </li><li>
                        <a href="#type-ProxyConfig">ProxyConfig</a>
                      </li>
                    </ol>
                  </li>
                </ol>
              </li>
          </ol>
        </div>
        <!-- /TABLE OF CONTENTS -->

        <!-- Standard content lead-in for experimental API pages -->
        <p id="classSummary" style="display: none; ">
          For information on how to use experimental APIs, see the <a href="experimental.html">chrome.experimental.* APIs</a> page.
        </p>

        <!-- STATIC CONTENT PLACEHOLDER -->
        <div id="static"><div id="pageData-name" class="pageData">Proxy Settings</div>

<!-- BEGIN AUTHORED CONTENT -->
<p id="classSummary">
Use the <code>chrome.experimental.proxysettings</code> module to manage Chrome's
proxy settings. This module is still experimental. For information on how to use
experimental APIs, see the <a href="experimental.html">chrome.experimental.*
  APIs</a> page.
</p>

<h2 id="manifest">Manifest</h2>
<p>You must declare the "proxy" permission
in the <a href="manifest.html">extension manifest</a>
to use the proxy settings API.
For example:</p>
<pre>{
  "name": "My extension",
  ...
  <b>"permissions": [
    "experimental", "proxy"
  ]</b>,
  ...
}</pre>

<h2 id="description">Objects and properties</h2>

<p>
Proxy settings are defined in a 
<a href="#type-ProxyConfig"><code>ProxyConfig</code></a> object. Depending on
Chrome's proxy settings, the settings may contain
<a href="#type-ProxyRules"><code>ProxyRules</code></a> or a <a href="#type-PacScript"><code>PacScript</code></a>.
</p>

<h3 id="proxy_modes">Proxy modes</h3>

<p>
A ProxyConfig object's <code>mode</code> attribute determines the overall
behavior of Chrome with regards to proxy usage. It can take the following
values:
</p><dl>
  <dt><code>direct</code></dt>
  <dd>In <code>direct</code> mode all connections are created directly, without
  any proxy involved. This mode allows no further parameters in the
  <code>ProxyConfig</code> object.</dd>

  <dt><code>auto_detect</code></dt>
  <dd>In <code>auto_detect</code> mode the proxy configuration is determined by
  a PAC script that can be downloaded at
  <a href="http://wpad/wpad.dat">http://wpad/wpad.dat</a>.
  This mode allows no further parameters in the <code>ProxyConfig</code>
  object.</dd>

  <dt><code>pac_script</code></dt>
  <dd>In <code>pac_script</code> mode the proxy configuration is determined by
  a PAC script that is either retrieved from the URL specified in the
  <a href="#type-PacScript"><code>PacScript</code></a> object or
  taken literally from the <code>data</code> element specified in the
  <a href="#type-PacScript"><code>PacScript</code></a> object.
  Besides this, this mode allows no further parameters in the
  <code>ProxyConfig</code> object.</dd>

  <dt><code>fixed_servers</code></dt>
  <dd>In <code>fixed_servers</code> mode the proxy configuration is codified in
  a <a href="#type-ProxyRules&gt;&lt;code&gt;ProxyRules"><code>ProxyRules</code></a>
  object. Its structure is described in <a href="#proxy_rules">Proxy rules</a>.
  Besides this, the <code>fixed_servers</code> mode allows no further parameters
  in the <code>ProxyConfig</code> object.</dd>

  <dt><code>system</code></dt>
  <dd>In <code>system</code> mode the proxy configuration is taken from the
  operating system. This mode allows no further parameters in the
  <code>ProxyConfig</code> object. Note that the <code>system</code> mode is
  different from setting no proxy configuration. In the latter case, Chrome
  falls back to the system settings only if no command-line options influence
  the proxy configuration.</dd>
</dl>
<p></p>

<h3 id="proxy_rules">Proxy rules</h3>

<p>
The <a href="#type-ProxyRules"><code>ProxyRules</code></a> object can contain
either a <code>singleProxy</code> attribute or a subset of
<code>proxyForHttp</code>, <code>proxyForHttps</code>, <code>proxyForFtp</code>,
and <code>fallbackProxy</code>.
</p>

<p>
In the first case, HTTP, HTTPS and FTP traffic is proxied through the specified
proxy server. Other traffic is sent directly. In the latter case the behavior is
slightly more subtle: If a proxy server is configured for the HTTP, HTTPS or FTP
protocol, the respective traffic is proxied through the specified server. If no
such proxy server is specified or traffic uses a different protocol than HTTP,
HTTPS or FTP, the <code>fallbackProxy</code> is used. If no
<code>fallbackProxy</code> is specified, traffic is sent directly without a
proxy server.
</p>

<h3 id="proxy_server_objects">Proxy server objects</h3>

<p>
A proxy server is configured in a
<a href="#type-ProxyServer"><code>ProxyServer</code></a> object. The connection
to the proxy server (defined by the <code>host</code> attribute) uses the
protocol defined in the <code>scheme</code> attribute. If no <code>scheme</code>
is specified, the proxy connection defaults to <code>http</code>.
</p>

<p>
If no <code>port</code> is defined in a
<a href="#type-ProxyServer"><code>ProxyServer</code></a> object, the port is
derived from the scheme. The default ports are:
</p><table>
  <tbody><tr><th>Scheme</th><th>Port</th></tr>
  <tr><td>http</td><td>80</td></tr>
  <tr><td>https</td><td>443</td></tr>
  <tr><td>socks4</td><td>1080</td></tr>
  <tr><td>socks5</td><td>1080</td></tr>
</tbody></table>
<p></p>

<h3 id="bypass_list">Bypass list</h3>

<p>
Individual servers may be excluded from being proxied with the
<code>bypassList</code>. This list may contain the following entries:
</p><dl>
  <dt><code>[<em>&lt;scheme&gt;</em>://]<em>&lt;host-pattern&gt;</em>[:<em>&lt;port&gt;</em>]</code></dt>
  <dd>Match all hostnames that match the pattern <em>&lt;host-pattern&gt;</em>.<br>
  Examples: <code>"foobar.com", "*foobar.com", "*.foobar.com", "*foobar.com:99",
    "https://x.*.y.com:99"</code></dd>

  <dt><code>[<em>&lt;scheme&gt;</em>://]<em>&lt;ip-literal&gt;</em>[:<em>&lt;port&gt;</em>]</code></dt>
  <dd>Match URLs that are IP address literals.<br>
  Conceptually this is the similar to the first case, but with special cases
  to handle IP literal canonicalization. For example, matching
  on "[0:0:0::1]" is the same as matching on "[::1]" because
  the IPv6 canonicalization is done internally.<br>
  Examples: <code>"127.0.1", "[0:0::1]", "[::1]", "http://[::1]:99"</code></dd>

  <dt><code><em>&lt;ip-literal&gt;</em>/<em>&lt;prefix-length-in-bits&gt;</em></code></dt>
  <dd>Match any URL containing an IP literal within the given range. The IP 
  range is specified using CIDR notation.<br>
  Examples: <code>"192.168.1.1/16", "fefe:13::abc/33"</code></dd>

  <dt><code>&lt;local&gt;</code></dt>
  <dd>Match local addresses. An address is local if the host is "127.0.0.1",
  "::1", or "localhost".<br>
  Example: <code>"&lt;local&gt;"</code></dd>
</dl>


<h2 id="precedence">Precedence</h2>

<p>
Chrome manages settings on different layers. The following list describes the
layers that may influence the effective proxy settings, in increasing order of
precedence.
</p><ol>
  <li>System settings provided by the operating system</li>
  <li>Command line parameters</li>
  <li>Preferences set by extensions</li>
  <li>Policies</li>
</ol>
<p></p>

<p>
As the list implies, policies might overrule any changes that you specify with
the proxy settings API.
</p>

<p>
Chrome allows using different proxy settings for regular windows and incognito
windows. The following example illustrates the behavior. Assume that no policy
overrides the proxy settings and that an extension can set proxy settings for
regular windows <b>(R)</b> and proxy settings for incognito windows <b>(I)</b>.
</p>

<p>
</p><ul>
  <li>If only <b>(R)</b> is set, these settings are effective for both regular
  and incognito windows.</li>
  <li>If only <b>(I)</b> is set, these settings are effective for only incognito
  windows. Regular windows use the proxy settings determined by the lower layers
  (command-line options and system settings).</li>
  <li>If both <b>(R)</b> and <b>(I)</b> are set, the respective settings are
  used for regular and incognito windows.</li>
</ul>
<p></p>

<p>
If two extensions want to set proxy settings, the extension installed last takes
precedence over the other extensions. If the extension installed last sets only
<b>(I)</b>, the settings of regular windows can be defined by more recently
installed extensions.
</p>



<h2 id="overview-examples">Examples</h2>

<p>
The following code sets a SOCKS 5 proxy for HTTP connections to all servers but
foobar.com and uses direct connections for all other protocols. The settings
apply to regular and incognito windows.
</p>

<pre>var config = {
  mode: "fixed_servers",
  rules: {
    httpProxy: {
      scheme: "socks5",
      host: "1.2.3.4"
    },
    bypassList: ["foobar.com"]
  }
};
chrome.experimental.proxy.settings.set(
    {'value': config, 'incognito': false},
    function() {});
</pre>

<p>
The following code sets a custom pac script.
</p>

<pre>var config = {
  mode: "pac_script",
  pacScript: {
    data: "function FindProxyForURL(url, host) {\n" +
          "  if (host == 'foobar.com')\n" +
          "    return 'PROXY blackhole:80';\n" +
          "  return 'DIRECT';\n" +
          "}"
  }
};
chrome.experimental.proxy.settings.set(
    {'value': config, 'incognito': false},
    function() {});
</pre>

<p>
The next snippet queries the current proxy settings.
</p>

<pre>chrome.experimental.proxy.settings.get(
    {'incognito': false},
    function(config) {console.log(JSON.stringify(config));});
</pre>

<p>
Note that the <code>value</code> object passed to <code>set()</code> is not
identical to the <code>value</code> object passed to callback function of
<code>get()</code>. The latter will contain a <code>rules.httpProxy.port</code>
element.
</p>

<!-- END AUTHORED CONTENT -->
</div>

        <!-- API PAGE -->
        <div class="apiPage">
        <a name="apiReference"></a>
        <h2>API reference: chrome.experimental.proxy</h2>

          <!-- PROPERTIES -->
          <div class="apiGroup">
            <a name="properties"></a>
            <h3 id="properties">Properties</h3>

            <div>
              <a name="property-settings"></a>
              <h4>settings</h4>
              <div class="summary">
                <!-- Note: intentionally longer 80 columns -->
                <span>chrome.experimental.proxy.</span><span>settings</span>
              </div>
              <div>
          <dt>
            <var>settings</var>
              <em>

                <!-- TYPE -->
                <div style="display:inline">
                  (
                    <span class="optional" style="display: none; ">optional</span>
                    <span class="enum" style="display: none; ">enumerated</span>
                    <span id="typeTemplate">
                      <span>
                        <a href="experimental.extension.html#type-Preference">Preference</a>
                      </span>
                      <span style="display: none; ">
                        <span>
                          array of <span><span></span></span>
                        </span>
                        <span>paramType</span>
                        <span></span>
                      </span>
                    </span>
                  )
                </div>

              </em>
          </dt>
          <dd class="todo" style="display: none; ">
            Undocumented.
          </dd>
          <dd>Proxy settings to be used. The value of this preference is a ProxyConfig object.</dd>
          <dd style="display: none; ">
            This parameter was added in version
            <b><span></span></b>.
            You must omit this parameter in earlier versions,
            and you may omit it in any version.  If you require this
            parameter, the manifest key
            <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a>
            can ensure that your extension won't be run in an earlier browser version.
          </dd>

          <!-- OBJECT PROPERTIES -->
          <dd style="display: none; ">
            <dl>
              <div>
                <div>
                </div>
              </div>
            </dl>
          </dd>

          <!-- OBJECT METHODS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- OBJECT EVENT FIELDS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- FUNCTION PARAMETERS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

        </div>
            </div>

          </div> <!-- /apiGroup -->

          <!-- METHODS -->
          <div id="methodsTemplate" class="apiGroup" style="display: none; ">
            <a></a>
            <h3>Methods</h3>

            <!-- iterates over all functions -->
            <div class="apiItem">
              <a></a> <!-- method-anchor -->
              <h4>method name</h4>

              <div class="summary"><span>void</span>
                  <!-- Note: intentionally longer 80 columns -->
                  <span>chrome.module.methodName</span>(<span><span>, </span><span></span>
                      <var><span></span></var></span>)</div>

              <div class="description">
                <p class="todo">Undocumented.</p>
                <p>
                  A description from the json schema def of the function goes here.
                </p>

                <!-- PARAMETERS -->
                <h4>Parameters</h4>
                <dl>
                  <div>
                    <div>
                    </div>
                  </div>
                </dl>

                <!-- RETURNS -->
                <h4>Returns</h4>
                <dl>
                  <div>
                    <div>
                    </div>
                  </div>
                </dl>

                <!-- CALLBACK -->
                <div>
                  <div>
                  <h4>Callback function</h4>
                  <p>
                    The callback <em>parameter</em> should specify a function
                    that looks like this:
                  </p>
                  <p>
                    If you specify the <em>callback</em> parameter, it should
                    specify a function that looks like this:
                  </p>

                  <!-- Note: intentionally longer 80 columns -->
                  <pre>function(<span>Type param1, Type param2</span>) <span class="subdued">{...}</span>;</pre>
                  <dl>
                    <div>
                      <div>
                      </div>
                    </div>
                  </dl>
                  </div>
                </div>

                <!-- MIN_VERSION -->
                <p>
                  This function was added in version <b><span></span></b>.
                  If you require this function, the manifest key
                  <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a>
                  can ensure that your extension won't be run in an earlier browser version.
                </p>
              </div> <!-- /description -->

            </div>  <!-- /apiItem -->

          </div>  <!-- /apiGroup -->

          <!-- EVENTS -->
          <div id="eventsTemplate" class="apiGroup">
            <a name="global-events"></a>
            <h3>Events</h3>
            <!-- iterates over all events -->
            <div class="apiItem">
              <a name="event-onProxyError"></a>
              <h4>onProxyError</h4>

              <div class="summary">
                <!-- Note: intentionally longer 80 columns -->
                <span class="subdued">chrome.experimental.proxy.</span><span>onProxyError</span><span class="subdued">.addListener</span>(function(<span>object details</span>) <span class="subdued">{...}</span>);
              </div>

              <div class="description">
                <p class="todo" style="display: none; ">Undocumented.</p>
                <p>Notifies about proxy errors.</p>

                <!-- PARAMETERS -->
                <div>
                  <h4>Parameters</h4>
                  <dl>
                    <div>
                      <div>
          <dt>
            <var>details</var>
              <em>

                <!-- TYPE -->
                <div style="display:inline">
                  (
                    <span class="optional" style="display: none; ">optional</span>
                    <span class="enum" style="display: none; ">enumerated</span>
                    <span id="typeTemplate">
                      <span style="display: none; ">
                        <a> Type</a>
                      </span>
                      <span>
                        <span style="display: none; ">
                          array of <span><span></span></span>
                        </span>
                        <span>object</span>
                        <span style="display: none; "></span>
                      </span>
                    </span>
                  )
                </div>

              </em>
          </dt>
          <dd class="todo">
            Undocumented.
          </dd>
          <dd style="display: none; ">
            Description of this parameter from the json schema.
          </dd>
          <dd style="display: none; ">
            This parameter was added in version
            <b><span></span></b>.
            You must omit this parameter in earlier versions,
            and you may omit it in any version.  If you require this
            parameter, the manifest key
            <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a>
            can ensure that your extension won't be run in an earlier browser version.
          </dd>

          <!-- OBJECT PROPERTIES -->
          <dd>
            <dl>
              <div>
                <div>
          <dt>
            <var>fatal</var>
              <em>

                <!-- TYPE -->
                <div style="display:inline">
                  (
                    <span class="optional" style="display: none; ">optional</span>
                    <span class="enum" style="display: none; ">enumerated</span>
                    <span id="typeTemplate">
                      <span style="display: none; ">
                        <a> Type</a>
                      </span>
                      <span>
                        <span style="display: none; ">
                          array of <span><span></span></span>
                        </span>
                        <span>boolean</span>
                        <span style="display: none; "></span>
                      </span>
                    </span>
                  )
                </div>

              </em>
          </dt>
          <dd class="todo" style="display: none; ">
            Undocumented.
          </dd>
          <dd>If true, the error was fatal and the network transaction was aborted. Otherwise, a direct connection is used instead.</dd>
          <dd style="display: none; ">
            This parameter was added in version
            <b><span></span></b>.
            You must omit this parameter in earlier versions,
            and you may omit it in any version.  If you require this
            parameter, the manifest key
            <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a>
            can ensure that your extension won't be run in an earlier browser version.
          </dd>

          <!-- OBJECT PROPERTIES -->
          <dd style="display: none; ">
            <dl>
              <div>
                <div>
                </div>
              </div>
            </dl>
          </dd>

          <!-- OBJECT METHODS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- OBJECT EVENT FIELDS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- FUNCTION PARAMETERS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

        </div>
              </div><div>
                <div>
          <dt>
            <var>error</var>
              <em>

                <!-- TYPE -->
                <div style="display:inline">
                  (
                    <span class="optional" style="display: none; ">optional</span>
                    <span class="enum" style="display: none; ">enumerated</span>
                    <span id="typeTemplate">
                      <span style="display: none; ">
                        <a> Type</a>
                      </span>
                      <span>
                        <span style="display: none; ">
                          array of <span><span></span></span>
                        </span>
                        <span>string</span>
                        <span style="display: none; "></span>
                      </span>
                    </span>
                  )
                </div>

              </em>
          </dt>
          <dd class="todo" style="display: none; ">
            Undocumented.
          </dd>
          <dd>The error description.</dd>
          <dd style="display: none; ">
            This parameter was added in version
            <b><span></span></b>.
            You must omit this parameter in earlier versions,
            and you may omit it in any version.  If you require this
            parameter, the manifest key
            <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a>
            can ensure that your extension won't be run in an earlier browser version.
          </dd>

          <!-- OBJECT PROPERTIES -->
          <dd style="display: none; ">
            <dl>
              <div>
                <div>
                </div>
              </div>
            </dl>
          </dd>

          <!-- OBJECT METHODS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- OBJECT EVENT FIELDS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- FUNCTION PARAMETERS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

        </div>
              </div><div>
                <div>
          <dt>
            <var>details</var>
              <em>

                <!-- TYPE -->
                <div style="display:inline">
                  (
                    <span class="optional" style="display: none; ">optional</span>
                    <span class="enum" style="display: none; ">enumerated</span>
                    <span id="typeTemplate">
                      <span style="display: none; ">
                        <a> Type</a>
                      </span>
                      <span>
                        <span style="display: none; ">
                          array of <span><span></span></span>
                        </span>
                        <span>string</span>
                        <span style="display: none; "></span>
                      </span>
                    </span>
                  )
                </div>

              </em>
          </dt>
          <dd class="todo" style="display: none; ">
            Undocumented.
          </dd>
          <dd>Additional details about the error such as a JavaScript runtime error.</dd>
          <dd style="display: none; ">
            This parameter was added in version
            <b><span></span></b>.
            You must omit this parameter in earlier versions,
            and you may omit it in any version.  If you require this
            parameter, the manifest key
            <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a>
            can ensure that your extension won't be run in an earlier browser version.
          </dd>

          <!-- OBJECT PROPERTIES -->
          <dd style="display: none; ">
            <dl>
              <div>
                <div>
                </div>
              </div>
            </dl>
          </dd>

          <!-- OBJECT METHODS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- OBJECT EVENT FIELDS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- FUNCTION PARAMETERS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

        </div>
              </div>
            </dl>
          </dd>

          <!-- OBJECT METHODS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- OBJECT EVENT FIELDS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- FUNCTION PARAMETERS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

        </div>
                    </div>
                  </dl>
                </div>
              </div> <!-- /decription -->

            </div> <!-- /apiItem -->

          </div> <!-- /apiGroup -->

          <!-- TYPES -->
          <div class="apiGroup">
            <a name="types"></a>
            <h3 id="types">Types</h3>

            <!-- iterates over all types -->
            <div class="apiItem">
              <a name="type-ProxyServer"></a>
              <h4>ProxyServer</h4>

              <div>
          <dt>
            <var style="display: none; ">paramName</var>
              <em>

                <!-- TYPE -->
                <div style="display:inline">
                  (
                    <span class="optional" style="display: none; ">optional</span>
                    <span class="enum" style="display: none; ">enumerated</span>
                    <span id="typeTemplate">
                      <span style="display: none; ">
                        <a> Type</a>
                      </span>
                      <span>
                        <span style="display: none; ">
                          array of <span><span></span></span>
                        </span>
                        <span>object</span>
                        <span style="display: none; "></span>
                      </span>
                    </span>
                  )
                </div>

              </em>
          </dt>
          <dd class="todo" style="display: none; ">
            Undocumented.
          </dd>
          <dd>An object encapsulating a single proxy server's specification.</dd>
          <dd style="display: none; ">
            This parameter was added in version
            <b><span></span></b>.
            You must omit this parameter in earlier versions,
            and you may omit it in any version.  If you require this
            parameter, the manifest key
            <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a>
            can ensure that your extension won't be run in an earlier browser version.
          </dd>

          <!-- OBJECT PROPERTIES -->
          <dd>
            <dl>
              <div>
                <div>
          <dt>
            <var>scheme</var>
              <em>

                <!-- TYPE -->
                <div style="display:inline">
                  (
                    <span class="optional">optional</span>
                    <span class="enum">enumerated</span>
                    <span id="typeTemplate">
                      <span style="display: none; ">
                        <a> Type</a>
                      </span>
                      <span>
                        <span style="display: none; ">
                          array of <span><span></span></span>
                        </span>
                        <span>string</span>
                        <span>["http", "https", "socks4", "socks5"]</span>
                      </span>
                    </span>
                  )
                </div>

              </em>
          </dt>
          <dd class="todo" style="display: none; ">
            Undocumented.
          </dd>
          <dd>The scheme (protocol) of the proxy server itself. Defaults to 'http'.</dd>
          <dd style="display: none; ">
            This parameter was added in version
            <b><span></span></b>.
            You must omit this parameter in earlier versions,
            and you may omit it in any version.  If you require this
            parameter, the manifest key
            <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a>
            can ensure that your extension won't be run in an earlier browser version.
          </dd>

          <!-- OBJECT PROPERTIES -->
          <dd style="display: none; ">
            <dl>
              <div>
                <div>
                </div>
              </div>
            </dl>
          </dd>

          <!-- OBJECT METHODS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- OBJECT EVENT FIELDS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- FUNCTION PARAMETERS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

        </div>
              </div><div>
                <div>
          <dt>
            <var>host</var>
              <em>

                <!-- TYPE -->
                <div style="display:inline">
                  (
                    <span class="optional" style="display: none; ">optional</span>
                    <span class="enum" style="display: none; ">enumerated</span>
                    <span id="typeTemplate">
                      <span style="display: none; ">
                        <a> Type</a>
                      </span>
                      <span>
                        <span style="display: none; ">
                          array of <span><span></span></span>
                        </span>
                        <span>string</span>
                        <span style="display: none; "></span>
                      </span>
                    </span>
                  )
                </div>

              </em>
          </dt>
          <dd class="todo" style="display: none; ">
            Undocumented.
          </dd>
          <dd>The URI of the proxy server. This must be an ASCII hostname (in Punycode format). IDNA is not supported, yet.</dd>
          <dd style="display: none; ">
            This parameter was added in version
            <b><span></span></b>.
            You must omit this parameter in earlier versions,
            and you may omit it in any version.  If you require this
            parameter, the manifest key
            <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a>
            can ensure that your extension won't be run in an earlier browser version.
          </dd>

          <!-- OBJECT PROPERTIES -->
          <dd style="display: none; ">
            <dl>
              <div>
                <div>
                </div>
              </div>
            </dl>
          </dd>

          <!-- OBJECT METHODS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- OBJECT EVENT FIELDS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- FUNCTION PARAMETERS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

        </div>
              </div><div>
                <div>
          <dt>
            <var>port</var>
              <em>

                <!-- TYPE -->
                <div style="display:inline">
                  (
                    <span class="optional">optional</span>
                    <span class="enum" style="display: none; ">enumerated</span>
                    <span id="typeTemplate">
                      <span style="display: none; ">
                        <a> Type</a>
                      </span>
                      <span>
                        <span style="display: none; ">
                          array of <span><span></span></span>
                        </span>
                        <span>integer</span>
                        <span style="display: none; "></span>
                      </span>
                    </span>
                  )
                </div>

              </em>
          </dt>
          <dd class="todo" style="display: none; ">
            Undocumented.
          </dd>
          <dd>The port of the proxy server. Defaults to a port that depends on the scheme.</dd>
          <dd style="display: none; ">
            This parameter was added in version
            <b><span></span></b>.
            You must omit this parameter in earlier versions,
            and you may omit it in any version.  If you require this
            parameter, the manifest key
            <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a>
            can ensure that your extension won't be run in an earlier browser version.
          </dd>

          <!-- OBJECT PROPERTIES -->
          <dd style="display: none; ">
            <dl>
              <div>
                <div>
                </div>
              </div>
            </dl>
          </dd>

          <!-- OBJECT METHODS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- OBJECT EVENT FIELDS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- FUNCTION PARAMETERS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

        </div>
              </div>
            </dl>
          </dd>

          <!-- OBJECT METHODS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- OBJECT EVENT FIELDS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- FUNCTION PARAMETERS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

        </div>

            </div><div class="apiItem">
              <a name="type-ProxyRules"></a>
              <h4>ProxyRules</h4>

              <div>
          <dt>
            <var style="display: none; ">paramName</var>
              <em>

                <!-- TYPE -->
                <div style="display:inline">
                  (
                    <span class="optional" style="display: none; ">optional</span>
                    <span class="enum" style="display: none; ">enumerated</span>
                    <span id="typeTemplate">
                      <span style="display: none; ">
                        <a> Type</a>
                      </span>
                      <span>
                        <span style="display: none; ">
                          array of <span><span></span></span>
                        </span>
                        <span>object</span>
                        <span style="display: none; "></span>
                      </span>
                    </span>
                  )
                </div>

              </em>
          </dt>
          <dd class="todo" style="display: none; ">
            Undocumented.
          </dd>
          <dd>An object encapsulating the set of proxy rules for all protocols. Use either 'singleProxy' or (a subset of) 'proxyForHttp', 'proxyForHttps', 'proxyForFtp' and 'fallbackProxy'.</dd>
          <dd style="display: none; ">
            This parameter was added in version
            <b><span></span></b>.
            You must omit this parameter in earlier versions,
            and you may omit it in any version.  If you require this
            parameter, the manifest key
            <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a>
            can ensure that your extension won't be run in an earlier browser version.
          </dd>

          <!-- OBJECT PROPERTIES -->
          <dd>
            <dl>
              <div>
                <div>
          <dt>
            <var>singleProxy</var>
              <em>

                <!-- TYPE -->
                <div style="display:inline">
                  (
                    <span class="optional">optional</span>
                    <span class="enum" style="display: none; ">enumerated</span>
                    <span id="typeTemplate">
                      <span>
                        <a href="experimental.proxy.html#type-ProxyServer">ProxyServer</a>
                      </span>
                      <span style="display: none; ">
                        <span>
                          array of <span><span></span></span>
                        </span>
                        <span>paramType</span>
                        <span></span>
                      </span>
                    </span>
                  )
                </div>

              </em>
          </dt>
          <dd class="todo" style="display: none; ">
            Undocumented.
          </dd>
          <dd>The proxy server to be used for all per-URL requests (that is http, https, and ftp).</dd>
          <dd style="display: none; ">
            This parameter was added in version
            <b><span></span></b>.
            You must omit this parameter in earlier versions,
            and you may omit it in any version.  If you require this
            parameter, the manifest key
            <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a>
            can ensure that your extension won't be run in an earlier browser version.
          </dd>

          <!-- OBJECT PROPERTIES -->
          <dd style="display: none; ">
            <dl>
              <div>
                <div>
                </div>
              </div>
            </dl>
          </dd>

          <!-- OBJECT METHODS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- OBJECT EVENT FIELDS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- FUNCTION PARAMETERS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

        </div>
              </div><div>
                <div>
          <dt>
            <var>proxyForHttp</var>
              <em>

                <!-- TYPE -->
                <div style="display:inline">
                  (
                    <span class="optional">optional</span>
                    <span class="enum" style="display: none; ">enumerated</span>
                    <span id="typeTemplate">
                      <span>
                        <a href="experimental.proxy.html#type-ProxyServer">ProxyServer</a>
                      </span>
                      <span style="display: none; ">
                        <span>
                          array of <span><span></span></span>
                        </span>
                        <span>paramType</span>
                        <span></span>
                      </span>
                    </span>
                  )
                </div>

              </em>
          </dt>
          <dd class="todo" style="display: none; ">
            Undocumented.
          </dd>
          <dd>The proxy server to be used for HTTP requests.</dd>
          <dd style="display: none; ">
            This parameter was added in version
            <b><span></span></b>.
            You must omit this parameter in earlier versions,
            and you may omit it in any version.  If you require this
            parameter, the manifest key
            <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a>
            can ensure that your extension won't be run in an earlier browser version.
          </dd>

          <!-- OBJECT PROPERTIES -->
          <dd style="display: none; ">
            <dl>
              <div>
                <div>
                </div>
              </div>
            </dl>
          </dd>

          <!-- OBJECT METHODS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- OBJECT EVENT FIELDS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- FUNCTION PARAMETERS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

        </div>
              </div><div>
                <div>
          <dt>
            <var>proxyForHttps</var>
              <em>

                <!-- TYPE -->
                <div style="display:inline">
                  (
                    <span class="optional">optional</span>
                    <span class="enum" style="display: none; ">enumerated</span>
                    <span id="typeTemplate">
                      <span>
                        <a href="experimental.proxy.html#type-ProxyServer">ProxyServer</a>
                      </span>
                      <span style="display: none; ">
                        <span>
                          array of <span><span></span></span>
                        </span>
                        <span>paramType</span>
                        <span></span>
                      </span>
                    </span>
                  )
                </div>

              </em>
          </dt>
          <dd class="todo" style="display: none; ">
            Undocumented.
          </dd>
          <dd>The proxy server to be used for HTTPS requests.</dd>
          <dd style="display: none; ">
            This parameter was added in version
            <b><span></span></b>.
            You must omit this parameter in earlier versions,
            and you may omit it in any version.  If you require this
            parameter, the manifest key
            <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a>
            can ensure that your extension won't be run in an earlier browser version.
          </dd>

          <!-- OBJECT PROPERTIES -->
          <dd style="display: none; ">
            <dl>
              <div>
                <div>
                </div>
              </div>
            </dl>
          </dd>

          <!-- OBJECT METHODS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- OBJECT EVENT FIELDS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- FUNCTION PARAMETERS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

        </div>
              </div><div>
                <div>
          <dt>
            <var>proxyForFtp</var>
              <em>

                <!-- TYPE -->
                <div style="display:inline">
                  (
                    <span class="optional">optional</span>
                    <span class="enum" style="display: none; ">enumerated</span>
                    <span id="typeTemplate">
                      <span>
                        <a href="experimental.proxy.html#type-ProxyServer">ProxyServer</a>
                      </span>
                      <span style="display: none; ">
                        <span>
                          array of <span><span></span></span>
                        </span>
                        <span>paramType</span>
                        <span></span>
                      </span>
                    </span>
                  )
                </div>

              </em>
          </dt>
          <dd class="todo" style="display: none; ">
            Undocumented.
          </dd>
          <dd>The proxy server to be used for FTP requests.</dd>
          <dd style="display: none; ">
            This parameter was added in version
            <b><span></span></b>.
            You must omit this parameter in earlier versions,
            and you may omit it in any version.  If you require this
            parameter, the manifest key
            <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a>
            can ensure that your extension won't be run in an earlier browser version.
          </dd>

          <!-- OBJECT PROPERTIES -->
          <dd style="display: none; ">
            <dl>
              <div>
                <div>
                </div>
              </div>
            </dl>
          </dd>

          <!-- OBJECT METHODS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- OBJECT EVENT FIELDS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- FUNCTION PARAMETERS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

        </div>
              </div><div>
                <div>
          <dt>
            <var>fallbackProxy</var>
              <em>

                <!-- TYPE -->
                <div style="display:inline">
                  (
                    <span class="optional">optional</span>
                    <span class="enum" style="display: none; ">enumerated</span>
                    <span id="typeTemplate">
                      <span>
                        <a href="experimental.proxy.html#type-ProxyServer">ProxyServer</a>
                      </span>
                      <span style="display: none; ">
                        <span>
                          array of <span><span></span></span>
                        </span>
                        <span>paramType</span>
                        <span></span>
                      </span>
                    </span>
                  )
                </div>

              </em>
          </dt>
          <dd class="todo" style="display: none; ">
            Undocumented.
          </dd>
          <dd>The proxy server to be used for everthing else or if any of the specific proxyFor... is not specified.</dd>
          <dd style="display: none; ">
            This parameter was added in version
            <b><span></span></b>.
            You must omit this parameter in earlier versions,
            and you may omit it in any version.  If you require this
            parameter, the manifest key
            <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a>
            can ensure that your extension won't be run in an earlier browser version.
          </dd>

          <!-- OBJECT PROPERTIES -->
          <dd style="display: none; ">
            <dl>
              <div>
                <div>
                </div>
              </div>
            </dl>
          </dd>

          <!-- OBJECT METHODS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- OBJECT EVENT FIELDS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- FUNCTION PARAMETERS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

        </div>
              </div><div>
                <div>
          <dt>
            <var>bypassList</var>
              <em>

                <!-- TYPE -->
                <div style="display:inline">
                  (
                    <span class="optional">optional</span>
                    <span class="enum" style="display: none; ">enumerated</span>
                    <span id="typeTemplate">
                      <span style="display: none; ">
                        <a> Type</a>
                      </span>
                      <span>
                        <span>
                          array of <span><span>
                      <span style="display: none; ">
                        <a> Type</a>
                      </span>
                      <span>
                        <span style="display: none; ">
                          array of <span><span></span></span>
                        </span>
                        <span>string</span>
                        <span style="display: none; "></span>
                      </span>
                    </span></span>
                        </span>
                        <span style="display: none; ">paramType</span>
                        <span style="display: none; "></span>
                      </span>
                    </span>
                  )
                </div>

              </em>
          </dt>
          <dd class="todo" style="display: none; ">
            Undocumented.
          </dd>
          <dd>List of servers to connect to without a proxy server.</dd>
          <dd style="display: none; ">
            This parameter was added in version
            <b><span></span></b>.
            You must omit this parameter in earlier versions,
            and you may omit it in any version.  If you require this
            parameter, the manifest key
            <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a>
            can ensure that your extension won't be run in an earlier browser version.
          </dd>

          <!-- OBJECT PROPERTIES -->
          <dd style="display: none; ">
            <dl>
              <div>
                <div>
                </div>
              </div>
            </dl>
          </dd>

          <!-- OBJECT METHODS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- OBJECT EVENT FIELDS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- FUNCTION PARAMETERS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

        </div>
              </div>
            </dl>
          </dd>

          <!-- OBJECT METHODS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- OBJECT EVENT FIELDS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- FUNCTION PARAMETERS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

        </div>

            </div><div class="apiItem">
              <a name="type-PacScript"></a>
              <h4>PacScript</h4>

              <div>
          <dt>
            <var style="display: none; ">paramName</var>
              <em>

                <!-- TYPE -->
                <div style="display:inline">
                  (
                    <span class="optional" style="display: none; ">optional</span>
                    <span class="enum" style="display: none; ">enumerated</span>
                    <span id="typeTemplate">
                      <span style="display: none; ">
                        <a> Type</a>
                      </span>
                      <span>
                        <span style="display: none; ">
                          array of <span><span></span></span>
                        </span>
                        <span>object</span>
                        <span style="display: none; "></span>
                      </span>
                    </span>
                  )
                </div>

              </em>
          </dt>
          <dd class="todo" style="display: none; ">
            Undocumented.
          </dd>
          <dd>An object holding proxy auto-config information. Exactly one of the fields should be non-empty.</dd>
          <dd style="display: none; ">
            This parameter was added in version
            <b><span></span></b>.
            You must omit this parameter in earlier versions,
            and you may omit it in any version.  If you require this
            parameter, the manifest key
            <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a>
            can ensure that your extension won't be run in an earlier browser version.
          </dd>

          <!-- OBJECT PROPERTIES -->
          <dd>
            <dl>
              <div>
                <div>
          <dt>
            <var>url</var>
              <em>

                <!-- TYPE -->
                <div style="display:inline">
                  (
                    <span class="optional">optional</span>
                    <span class="enum" style="display: none; ">enumerated</span>
                    <span id="typeTemplate">
                      <span style="display: none; ">
                        <a> Type</a>
                      </span>
                      <span>
                        <span style="display: none; ">
                          array of <span><span></span></span>
                        </span>
                        <span>string</span>
                        <span style="display: none; "></span>
                      </span>
                    </span>
                  )
                </div>

              </em>
          </dt>
          <dd class="todo" style="display: none; ">
            Undocumented.
          </dd>
          <dd>URL of the PAC file to be used.</dd>
          <dd style="display: none; ">
            This parameter was added in version
            <b><span></span></b>.
            You must omit this parameter in earlier versions,
            and you may omit it in any version.  If you require this
            parameter, the manifest key
            <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a>
            can ensure that your extension won't be run in an earlier browser version.
          </dd>

          <!-- OBJECT PROPERTIES -->
          <dd style="display: none; ">
            <dl>
              <div>
                <div>
                </div>
              </div>
            </dl>
          </dd>

          <!-- OBJECT METHODS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- OBJECT EVENT FIELDS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- FUNCTION PARAMETERS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

        </div>
              </div><div>
                <div>
          <dt>
            <var>data</var>
              <em>

                <!-- TYPE -->
                <div style="display:inline">
                  (
                    <span class="optional">optional</span>
                    <span class="enum" style="display: none; ">enumerated</span>
                    <span id="typeTemplate">
                      <span style="display: none; ">
                        <a> Type</a>
                      </span>
                      <span>
                        <span style="display: none; ">
                          array of <span><span></span></span>
                        </span>
                        <span>string</span>
                        <span style="display: none; "></span>
                      </span>
                    </span>
                  )
                </div>

              </em>
          </dt>
          <dd class="todo" style="display: none; ">
            Undocumented.
          </dd>
          <dd>A PAC script.</dd>
          <dd style="display: none; ">
            This parameter was added in version
            <b><span></span></b>.
            You must omit this parameter in earlier versions,
            and you may omit it in any version.  If you require this
            parameter, the manifest key
            <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a>
            can ensure that your extension won't be run in an earlier browser version.
          </dd>

          <!-- OBJECT PROPERTIES -->
          <dd style="display: none; ">
            <dl>
              <div>
                <div>
                </div>
              </div>
            </dl>
          </dd>

          <!-- OBJECT METHODS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- OBJECT EVENT FIELDS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- FUNCTION PARAMETERS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

        </div>
              </div>
            </dl>
          </dd>

          <!-- OBJECT METHODS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- OBJECT EVENT FIELDS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- FUNCTION PARAMETERS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

        </div>

            </div><div class="apiItem">
              <a name="type-ProxyConfig"></a>
              <h4>ProxyConfig</h4>

              <div>
          <dt>
            <var style="display: none; ">paramName</var>
              <em>

                <!-- TYPE -->
                <div style="display:inline">
                  (
                    <span class="optional" style="display: none; ">optional</span>
                    <span class="enum" style="display: none; ">enumerated</span>
                    <span id="typeTemplate">
                      <span style="display: none; ">
                        <a> Type</a>
                      </span>
                      <span>
                        <span style="display: none; ">
                          array of <span><span></span></span>
                        </span>
                        <span>object</span>
                        <span style="display: none; "></span>
                      </span>
                    </span>
                  )
                </div>

              </em>
          </dt>
          <dd class="todo" style="display: none; ">
            Undocumented.
          </dd>
          <dd>An object encapsulating a complete proxy configuration.</dd>
          <dd style="display: none; ">
            This parameter was added in version
            <b><span></span></b>.
            You must omit this parameter in earlier versions,
            and you may omit it in any version.  If you require this
            parameter, the manifest key
            <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a>
            can ensure that your extension won't be run in an earlier browser version.
          </dd>

          <!-- OBJECT PROPERTIES -->
          <dd>
            <dl>
              <div>
                <div>
          <dt>
            <var>rules</var>
              <em>

                <!-- TYPE -->
                <div style="display:inline">
                  (
                    <span class="optional">optional</span>
                    <span class="enum" style="display: none; ">enumerated</span>
                    <span id="typeTemplate">
                      <span>
                        <a href="experimental.proxy.html#type-ProxyRules">ProxyRules</a>
                      </span>
                      <span style="display: none; ">
                        <span>
                          array of <span><span></span></span>
                        </span>
                        <span>paramType</span>
                        <span></span>
                      </span>
                    </span>
                  )
                </div>

              </em>
          </dt>
          <dd class="todo" style="display: none; ">
            Undocumented.
          </dd>
          <dd>The proxy rules describing this configuration. Use this for 'fixed_servers' mode.</dd>
          <dd style="display: none; ">
            This parameter was added in version
            <b><span></span></b>.
            You must omit this parameter in earlier versions,
            and you may omit it in any version.  If you require this
            parameter, the manifest key
            <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a>
            can ensure that your extension won't be run in an earlier browser version.
          </dd>

          <!-- OBJECT PROPERTIES -->
          <dd style="display: none; ">
            <dl>
              <div>
                <div>
                </div>
              </div>
            </dl>
          </dd>

          <!-- OBJECT METHODS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- OBJECT EVENT FIELDS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- FUNCTION PARAMETERS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

        </div>
              </div><div>
                <div>
          <dt>
            <var>pacScript</var>
              <em>

                <!-- TYPE -->
                <div style="display:inline">
                  (
                    <span class="optional">optional</span>
                    <span class="enum" style="display: none; ">enumerated</span>
                    <span id="typeTemplate">
                      <span>
                        <a href="experimental.proxy.html#type-PacScript">PacScript</a>
                      </span>
                      <span style="display: none; ">
                        <span>
                          array of <span><span></span></span>
                        </span>
                        <span>paramType</span>
                        <span></span>
                      </span>
                    </span>
                  )
                </div>

              </em>
          </dt>
          <dd class="todo" style="display: none; ">
            Undocumented.
          </dd>
          <dd>The proxy auto-config (PAC) script for this configuration. Use this for 'pac_script' mode.</dd>
          <dd style="display: none; ">
            This parameter was added in version
            <b><span></span></b>.
            You must omit this parameter in earlier versions,
            and you may omit it in any version.  If you require this
            parameter, the manifest key
            <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a>
            can ensure that your extension won't be run in an earlier browser version.
          </dd>

          <!-- OBJECT PROPERTIES -->
          <dd style="display: none; ">
            <dl>
              <div>
                <div>
                </div>
              </div>
            </dl>
          </dd>

          <!-- OBJECT METHODS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- OBJECT EVENT FIELDS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- FUNCTION PARAMETERS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

        </div>
              </div><div>
                <div>
          <dt>
            <var>mode</var>
              <em>

                <!-- TYPE -->
                <div style="display:inline">
                  (
                    <span class="optional" style="display: none; ">optional</span>
                    <span class="enum">enumerated</span>
                    <span id="typeTemplate">
                      <span style="display: none; ">
                        <a> Type</a>
                      </span>
                      <span>
                        <span style="display: none; ">
                          array of <span><span></span></span>
                        </span>
                        <span>string</span>
                        <span>["direct", "auto_detect", "pac_script", "fixed_servers", "system"]</span>
                      </span>
                    </span>
                  )
                </div>

              </em>
          </dt>
          <dd class="todo" style="display: none; ">
            Undocumented.
          </dd>
          <dd>'direct' = Never use a proxy<br>'auto_detect' = Auto detect proxy settings<br>'pac_script' = Use specified PAC script<br>'fixed_servers' = Manually specify proxy servers<br>'system' = Use system proxy settings</dd>
          <dd style="display: none; ">
            This parameter was added in version
            <b><span></span></b>.
            You must omit this parameter in earlier versions,
            and you may omit it in any version.  If you require this
            parameter, the manifest key
            <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a>
            can ensure that your extension won't be run in an earlier browser version.
          </dd>

          <!-- OBJECT PROPERTIES -->
          <dd style="display: none; ">
            <dl>
              <div>
                <div>
                </div>
              </div>
            </dl>
          </dd>

          <!-- OBJECT METHODS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- OBJECT EVENT FIELDS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- FUNCTION PARAMETERS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

        </div>
              </div>
            </dl>
          </dd>

          <!-- OBJECT METHODS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- OBJECT EVENT FIELDS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

          <!-- FUNCTION PARAMETERS -->
          <dd style="display: none; ">
            <div></div>
          </dd>

        </div>

            </div> <!-- /apiItem -->

          </div> <!-- /apiGroup -->

        </div> <!-- /apiPage -->
      </div> <!-- /gc-pagecontent -->
    </div> <!-- /g-section -->
  </div> <!-- /codesiteContent -->
    <div id="gc-footer" --="">
      <div class="text">
  <p>
  Except as otherwise <a href="http://code.google.com/policies.html#restrictions">noted</a>,
  the content of this page is licensed under the <a rel="license" href="http://creativecommons.org/licenses/by/3.0/">Creative Commons
  Attribution 3.0 License</a>, and code samples are licensed under the
  <a rel="license" href="http://code.google.com/google_bsd_license.html">BSD License</a>.
  </p>
  <p>
  ©2011 Google
  </p>

<!-- begin analytics -->
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script>
<script src="http://www.google-analytics.com/ga.js" type="text/javascript"></script>

<script type="text/javascript">
  // chrome doc tracking
  try {
    var engdocs = _gat._getTracker("YT-10763712-2");
    engdocs._trackPageview();
  } catch(err) {}

  // code.google.com site-wide tracking
  try {
    _uacct="UA-18071-1";
    _uanchor=1;
    _uff=0;
    urchinTracker();
  }
  catch(e) {/* urchinTracker not available. */}
</script>
<!-- end analytics -->
      </div>
    </div> <!-- /gc-footer -->
  </div> <!-- /gc-container -->
</body></html>