FoxyProxy

Redesigning the Proxy Settings GUI

History

Firefox's Connection Settings dialog [screenshot] dates at least as far back as April 1, 1996 (NCSA Mosaic v2.1.1). Here are some screenshots of that original GUI:

To give you an idea of how old this GUI interface is, consider that, in 1996:

  • Microsoft introduced the mouse wheel.1
  • Intel released the 150 MHz and 166 MHz Pentium.2
  • Windows 95 was the dominant desktop operating system.3
  • Netgear was founded.4
  • Bookmarks were known as hotlists. [screenshot]

Problems with the Old Screen

The old FoxyProxy proxy settings screen [screenshot] was based on and nearly identical to Firefox's Connection Settings dialog, which in turn was nearly identical to Mosaic 2.1.1's Proxy Settings. The problem with all of these screens is their limited ability to route traffic by protocol or URI scheme. 21st century browsers like Firefox handle many more protocols than HTTP, SSL, FTP, GOPHER, and SOCKS. For example, news:// and the feed:// scheme can be handled and displayed by Firefox natively (with some Firefox addons)--without launching an external application as is often done with mailto://. Moreover, Firefox is extensible so it can support any number of custom schemes and protocols. Clearly, these old screens would be unwieldy if they attempted to include every possible protocol.

The Changes

As of version 2.5, FoxyProxy has a revamped Proxy Settings GUI built for the 21st century [screenshot]. The primary change to the screen is the elimination of proxy selection by protocol--HTTP, SSL, FTP, GOPHER, SOCKS. Since FoxyProxy already enables easy routing of traffic based on wildcard and regular expression patterns, it's a simple matter to route traffic by protocol/URI scheme using these patterns.

Examples

the whitelist wildcard pattern ftp://*.google.com/* matches any FTP communications to google.com and can be used to route the FTP traffic through a specific proxy. All FoxyProxy needs to know about your proxies is their host names, ports, and whether or not they are SOCKS proxies.