The Chromium Projects

Except as otherwise noted, the content of this page is licensed under a Creative Commons Attribution 2.5 license, and examples are licensed under the BSD License.

The Chromium OS designs and code are preliminary. Expect them to evolve.
For Developers‎ > ‎Design Documents‎ > ‎

Proxy settings and fallback

On Windows, Chromium uses WinInet's proxy settings.

Consequently, it is important that Chromium interpret and apply these proxy settings in the same manner as WinInet. Otherwise the same proxy settings may give different results in Chromium than in other WinInet-based applications (like Internet Explorer).

In Firefox, the proxy settings are divided into four different modes using radio buttons. This modal approach makes it pretty easy to understand which proxy settings will be used, since there is only one set of choices.

However in Internet Explorer, the settings are more complex.

All of the various settings are presented in the UI as optional checkboxes.

This makes it unclear what is supposed to happen when conflicting choices are given.

Screenshot of IE's settings dialog:

+

How WinInet resolves the ambiguity

[The following was determined experimentally using Internet Explorer 8 on Windows XP. (Couldn't find an official explanation of the steps to link to).]

The way Internet Explorer applies these settings is using a fallback scheme during initialization:

  • Fallback between the automatic settings is represented with a blue arrow, and occurs whenever:
    • The setting is not specified.
    • The underlying PAC script failed to be downloaded.
    • The underlying PAC script failed to be parsed.
  • Fallback between the manual settings is represented by a black arrow, and occurs whenever:
    • The setting is not specified.
  • The bypass list is applied ONLY within the manual settings.

TODO(eroman): haven't verified fallback for SOCKS.

There is a secondary fallback mechanism at runtime:

So for example if auto-detect was chosen during the initialization sequence, but the PAC script is failing during execution of FindProxyForURL(), it will fallback to direct (regardless of whether there are manual proxy settings).

TODO(eroman): Chromium does not adhere to this runtime fallback scheme.

http://crbug.com/12303

  • Chromium falls back to Direct (rather than an error) when the PAC list is exhausted.
  • Chromium falls back to Direct after error in manual configuration, rather than an error.

Attachments (9)

  • fox-proxy-settings.png - on Aug 2, 2009 3:23 AM by Eric Roman (version 1)
    19k View Download
  • ie-auto-fallback.dot - on Aug 2, 2009 3:23 AM by Eric Roman (version 1)
    1k Download
  • ie-auto-fallback.png - on Aug 2, 2009 3:23 AM by Eric Roman (version 1)
    19k View Download
  • ie-fallback.dot - on Aug 2, 2009 3:23 AM by Eric Roman (version 1)
    1k Download
  • ie-fallback.png - on Aug 2, 2009 3:23 AM by Eric Roman (version 1)
    41k View Download
  • ie-manual-fallback.dot - on Aug 2, 2009 3:23 AM by Eric Roman (version 1)
    1k Download
  • ie-manual-fallback.png - on Aug 2, 2009 3:23 AM by Eric Roman (version 1)
    10k View Download
  • ie-proxy-server-settings.png - on Aug 2, 2009 3:23 AM by Eric Roman (version 1)
    18k View Download
  • ie-proxy-settings.png - on Aug 2, 2009 3:24 AM by Eric Roman (version 1)
    15k View Download