FoxyProxy is a Firefox extension which automatically switches an internet connection across one or more proxy servers based on URL patterns. Put simply, FoxyProxy automates the manual process of editing Firefox's Connection Settings dialog. Proxy server switching occurs based on the loading URL and the switching rules you define.
Yes! If you want FoxyProxy settings to be stored on your USB keychain too, be sure to check "I am using Portable Firefox"
on the Global Settings Tab of the FoxyProxy Options dialog.
Does FoxyProxy support proxy auto-configuration (PAC)?
What if I define a proxy in Firefox's Connection Settings?
FoxyProxy ignores Firefox's Connection Settings unless FoxyProxy is completely disabled.
What happens if a proxy goes down? Does FoxyProxy try another proxy?
No. FoxyProxy will not fail over to another proxy. Instead, the URL(s) simply won't load.
The only exception to this rule are proxies which use automatic proxy configuration (PAC) files
that specify proxy failovers.
Many web pages are composed of images, javascript files, and CSS files from different URLs. How does
FoxyProxy handle this?
All of the component parts of a webpage are routed through FoxyProxy and subjected
to its rules engine. If a component part of a webpage doesn't match any patterns, it isn't loaded through
a proxy. Read this for
more information. Some people consider this a "privacy leak". Please read the thread entitled, "Firefox through Tor" for more information.
What is foxyproxy.xml and where is it stored?
foxyproxy.xml is the file in which FoxyProxy stores all of the settings you define. By default, it is located in the
Firefox Profile directory, but you can direct FoxyProxy to use any directory and filename you like by changing the Settings Storage Location in the Global Settings Tab.
How can I share FoxyProxy settings between Linux and Windows?
In FoxyProxy Global Settings, check "I am using Portable Firefox". This forces FoxyProxy to look in the Firefox profile for foxyproxy.xml without absolute paths. Also read these questions.
The FoxyProxy source code is released under the GPL license. The FoxyProxy name, logo, graphics, art work, website, styles, and documentation are proprietary works and are NOT open-source.
How do I uninstall FoxyProxy?
FoxyProxy can be uninstalled just like any other Firefox extension. Here are instructions.
If you want to uninstall the Tor/Vidalia/Privoxy software bundle, please refer to the
Tor website for instructions.
How do I restart FoxyProxy's Tor Wizard?
In the FoxyProxy Options dialog, select File->Tor Wizard.
The FoxyProxy Rules Engine: Whitelists, Blacklists, and Patterns
What are patterns?
FoxyProxy patterns are rules that define a group of URLs. These rules
are expressed with wildcards and regular expressions.
For example, http://*.yahoo.com/* is wildcard pattern that defines all HTTP (but not HTTPS) URLs that are subdomains of .yahoo.com.
The FoxyProxy rules engine uses the patterns you define to determine which URLs should be loaded through proxies and which should be
loaded through a direct internet connection.
What are whitelist patterns?
Whitelist patterns represent all URLs that should be loaded through a proxy.
What are blacklists patterns?
Blacklist patterns define URLs that should not be loaded through a proxy.
I've defined blacklists and whitelists but FoxyProxy ignores them. Help!
FoxyProxy only respects patterns when it is set to "Use proxies based on their pre-defined patterns and priorities". When
set to any other mode, such as "Use proxy ABC for all URLs", all patterns -- black and white -- are ignored. The solution to this problem
often is to change FoxyProxy to "Use proxies based on their pre-defined patterns and priorities".
FoxyProxy is set to "Use proxies based on their pre-defined patterns and priorities" but it still ignores my blacklists. Why?
You're probably not using the right pattern syntax. Patterns such as localhost or 127.0.0.1, used in Firefox's Connection Settings, are invalid when used with FoxyProxy. All wildcard patterns should terminate with /*. For example, if you are trying to prevent all localhost URLS from using a proxy, use these blacklist wildcard patterns: *localhost/**127.0.0.1/*. Please read this and the pattern tutorial
for further information. This behavior will likely change in a future release because it has been the source of much confusion for new FoxyProxy users,
often leading them to claim that blacklists don't work.
What is the Default proxy?
The Default Proxy defines the settings used to load any resource or web page that doesn't match a whitelisted pattern. In other words, the Default Proxy is a catchall. When first installed, FoxyProxy automatically configures the Default Proxy so that pages load through your direct internet connection (i.e., it's not using a proxy at all). However, you can change this setting to use any proxy server or PAC file you like, just like any other proxy settings in FoxyProxy.
What happens if more than one pattern matches a URL?
If two or more patterns for different proxies match a URL, the proxy which is ordered higher (from top to bottom) is used to load that URL. This is what is meant by "priorities" in FoxyProxy. You can reorder proxy priorities with the Move buttons. The Default Proxy always matches all URLs and cannot be moved. In this sense, the Default Proxy is a catchall.
There many flavors of regular expression syntax (grep, egrep, awk, sed, vim, perl, pure
posix, etc). Which one should I use for FoxyProxy?
FoxyProxy adheres to the JavaScript 1.5 regular expression syntax. When in doubt, refer to this guide. Do not surround regular expressions with forward slashes like this: /abc/
What happens if a URL matches both a whitelist pattern and blacklist pattern for the same proxy?
Blacklist patterns have priority over whitelist patterns. In this scenario, the URL is not loaded through the proxy.
It is compared with the patterns of other proxies further down the list, including the Default, until a matching pattern
is found. Note the Default proxy matches all URLs (i.e., it uses the whitelist wildcard pattern *)
How can I match all URLs?
Use this wildcard pattern: *
How can I match URLs by protocol?
Use wildcard patterns of this style: http://*, ftp://*, feed://*, etc.
How can I match files by extension?
Use this regular expression pattern .*\.(?:bz2|gz|rar|zip|tgz|bundle|deb|pdf|run)$ (The $ ensures that no other characters follow the extension)
Can you summarize how FoxyProxy matching works?
If FoxyProxy is set to Use Proxies based on their pre-defined patterns and priorities, FoxyProxy matching working this way:
FoxyProxy attempts to match each URL against the whitelist patterns for each proxy in descending order from top to bottom.
A URL matches a whitelist pattern for a proxy IF AND ONLY IF there isn't a blacklist pattern for that same proxy which does not also match the URL. In other words, if a whitelist and blacklist pattern both match a URL, the blacklist "wins" and the URL is not regarded as matched.
URLs that don't match any whitelist pattern are loaded by the Default proxy settings. The Default proxy settings may or may not be configured to use your direct internet connection; this is up to you.
If FoxyProxy is set to Use proxy "xyz" for all URLs, FoxyProxy matching working this way:
All URLS are loaded through proxy "xyz" regardless of blacklists or whitelists.
Other modes of operation are coming soon (e.g., Random and Round-Robin)
Why doesn't my whitelist/blacklist pattern match a URL?
Ensure that your pattern matches the entire URL. For example, if you want to match http://google.com/, you can't write the regular expression ^https?://google\.com. You must write ^https?://google\.com.*.
Do I have to specify every subdomain of a website in my list of patterns? I want http://google.com/*, http://news.google.com/*, and http://images.google.com/* to load through a proxy. Must I write a pattern for each?
No. You can use the whitelist regular expression pattern http://.*\.?google\.com/.*. If you want all protocols to load through the proxy -- not just http, then use the regular expression pattern .*://.*\.?google\.com/.* or (.*\.)*google\.com/.*. You can substitute other domains for google.com.
How can I use different proxies based on my IP address?
How can I prevent proxy use on my intranet (local network)?
Future versions of FoxyProxy will have a checkbox on each proxy which will say something like "Don't use this proxy for localhost/127.0.0.1" and another which says "Don't use this proxy for plain host names". This will prevent the need for doing any of the below steps.
There is more than one way to do this in FoxyProxy 2.x. Here is one way.
Define a proxy in FoxyProxy. Define the following blacklist wildcard patterns on this proxy:
*://intranet-host-1/*
*://intranet-host-2/*
etc...
intranet-host-1 is the name of a plain host name; e.g., "google" instead of "www.google.com".
How can I prevent proxy use on my intranet (local network) AND on my local computer (127.0.0.1)?
Future versions of FoxyProxy will have a checkbox on each proxy which will say something like "Don't use this proxy for localhost/127.0.0.1" and another which says "Don't use this proxy for plain host names". This will prevent the need for doing any of the below steps.
There is more than one way to do this in FoxyProxy 2.x. Here is one way.
Define a proxy in FoxyProxy. Define the following blacklist wildcard patterns on this proxy:
*://localhost/*
*://127.0.0.1/*
*://intranet-host-1/*
*://intranet-host-2/*
etc...
intranet-host-1 is the name of a plain host name; e.g., "google" instead of "www.google.com".
localhost - Matches the local host optionally prefixed by a user:passwd auth string and optionally suffixed by a port number. Note that the entire local subnet (127.0.0.0/8) matches. ^https?://(?:[^:@/]+(?::[^@/]+)?@)?(?:localhost|127\.\d+\.\d+\.\d+)(?::\d+)?/.*
local subnets (IANA reserved address space) ^https?://(?:[^:@/]+(?::[^@/]+)?@)?(?:192\.168\.\d+\.\d+|10\.\d+\.\d+\.\d+|172\.(?:1[6789]|2[0-9]|3[12]))(?::\d+)?/.*
local hostnames (usually no dots in the name) ^https?://(?:[^:@/]+(?::[^@/]+)?@)?[\w-]+(?::\d+)?/.*
PAC files
What is a proxy auto-configuration (PAC) and where can I read more about them?
A PAC is a text file containing a small piece of logic which determines how URLs are loaded by the browser. It is comprised of a single javascript function FindProxyForURL(url, host) that you implement. This function returns a string with one or more proxy specifications: multiple specifications provide a fallback when a proxy fails to respond. An example of a PAC file is:
function FindProxyForURL(url, host){
if (shExpMatch(host, "*.google.com*")) {
return "PROXY myproxy.foo.com:9050;DIRECT;"
}
else if (shExpMatch(host, "*.yahoo.com*")) {
return "SOCKS anotherproxy.bar.com:1050;"
}
else {
return "DIRECT";
}
}
Proxy auto-configuration files are described in complete detail here, here, and here.
When does FoxyProxy use my PAC file?
When you configure a proxy in FoxyProxy and select "Automatic proxy configuration URL" on the "Proxy Details" page, you're specifying that FoxyProxy use a PAC for any patterns associated with this proxy configuration. In other words, for each URL that matches a URL pattern defined by a proxy configuration specified to use a PAC, FoxyProxy calls that PAC's FindProxyForURL() implementation. The return value of FindProxyForURL() determines which proxy (if any) is used.
Privacy
How does FoxyProxy secure my privacy?
FoxyProxy does not inherently secure your privacy or anonymize you. FoxyProxy does not change/mask/hide your IP address.
Privacy and anonymity are dependent upon a number of factors, including but not limited to the proxies you use. Please be careful using FoxyProxy if you are expecting complete anonymity because some have argued that FoxyProxy -- when used in patterns mode (identified by the orange FoxyProxy icon and the Use proxies based on their pre-defined patterns and priorities text) -- can actually make you more susceptible to privacy breaches.
The crux of the issue is this. Most web pages are comprised of resources from multiple domains. When FoxyProxy is used in patterns mode, unless you define whitelist patterns which match all resources on a page, then some of those resources won't load through proxies. The easiest way around this issue is to change FoxyProxy's mode from patterns to dedicated. In dedicated mode (identified by the blue FoxyProxy icon and the Use proxy "xyz" for all URLs text), FoxyProxy ignore all patterns, loading all resources through a single proxy... just like SwitchProxy, TorButton, and most other Firefox proxy extensions. For another solution that permits you to continue using patterns with FoxyProxy, read on.
Let's demonstrate the issue with an example. This page includes an image from the domain img217.imageshack.us and also an image from foxyproxy.mozdev.org. Let's say you visit the page with FoxyProxy in patterns mode and have defined the single whitelisted, wildcard pattern http://foxyproxy.mozdev.org/* associated with a proxy named Behemoth. The image on the top of the page, hosted on foxyproxy.mozdev.org, will load through Behemoth, but the other image, hosted at img217.imageshack.us, won't load through any proxy. It will load through your direct internet connection (assuming the Default Proxy is configured to use your direct internet connection). If you have any cookies for imageshack.us, those will be sent by your browser to imagshack.us. I hope you can see the issue more clearly now.
Patterns mode is one of FoxyProxy's greatest strengths and is what sets FoxyProxy apart from most other Firefox proxy extensions. However, it can also be its greatest weakness if not used appropriately. If you are using a proxy for complete privacy and anonymity, there are two recommended ways to use FoxyProxy so this privacy and anonymity is maintained:
Forego patterns and use FoxyProxy in dedicated (non-patterns) mode; i.e., "Use Proxy XXX for all URLs". This is indicated by the blue FoxyProxy icon in the statusbar and toolbar.
Use FoxyProxy in patterns mode but change the settings for the Default Proxy from using your direct internet connection to a bogus (i.e., non-existent) proxy such as localhost:55555. When a URL is reached which doesn't match a whitelisted pattern, the URL will attempt load through this non-existent proxy. The attempt will time out and fail. In this way, you can still leverage patterns but not compromise privacy and anonymity.
OK, but can I surf the web anonymously with FoxyProxy?
Check "Use SOCKS proxy for DNS lookups" on the Global Settings Tab.
Restart Firefox when prompted to do so.
The proxy in use must support SOCKS 4a or SOCKS 5.
If you wish to see if FoxyProxy really routes DNS lookups through your proxy, you can do so with a protocol analyzer such as Ethereal or Wireshark. Be aware that Firefox caches DNS lookups.
If you are going to use a protocol analyzer, you should disable DNS caching otherwise you may not see lookups leaving your PC (i.e., they
will hit the local cache instead). The DNS cache is controlled through
Firefox preferences. To disable the cache, set
network.dnsCacheEntries
and network.dnsCacheExpiration
both to zero. The former preference determines the maximum number of entries to keep in the DNS cache (default=20),
and the latter preference determines the maximum number of seconds to cache resolved DNS entries (default=60).
Also be aware that most modern operating systems cache DNS lookups. You should flush the operating system DNS cache before performing
your protocol analysis. This article describes the Windows approach and
how to tweak it.
This information is here not to suggest that you disable DNS caching. It is here so that you understand how to disable DNS caching if and only if you want to check FoxyProxy's DNS lookup bevahior.
Tor
What is the relationship between FoxyProxy and Tor?
There is a common misunderstanding that Tor is required to use FoxyProxy. This
is not true. FoxyProxy has nothing to do with Tor. FoxyProxy is not Tor. FoxyProxy does not require Tor
(this list has FoxyProxy's requirements). If used with Tor, FoxyProxy efficiently loads only the URLs
you define through the slow Tor network. All other URLs load through your direct internet connection or other
proxies, as you define. The benefit of using FoxyProxy with Tor is simply that you can use your fast internet connection
to load normal URLs and the Tor network to load sensitive URLs without constantly changing Firefox proxy settings.
Click on the Vidalia icon in the taskbar (next to the Windows clock) and select "Start". The Vidalia icon should turn green after a moment. You
are now "connected" to the Tor network.
Run the Tor Wizard (File->Tor Wizard) and answer the questions appropriately.
If Firefox complains that it can't load pages (connection has timed out or similar error), then the Tor network is down or responding too slowly.
This is not a FoxyProxy bug or FoxyProxy error. Please file your complaints with the Tor community.
Animated Icons
I've configured FoxyProxy so all pages load through a proxy, but
the FoxyProxy animated icon stops animating before pages finish loading. Why?
The FoxyProxy animated icon is imprecise. When FoxyProxy sends an HTTP request through a proxy whose Add/Edit Proxy->General Tab->Animate icons when proxy is in use checkbox is checked, the FoxyProxy icon begins animating for 800 milliseconds. If the
resource associated with the request finishes loading before 800 milliseconds have elapsed, the icon continues to animate anyway. Contrast this to the behavior of the Firefox throbber, which remains animated until all resources finish loading. This kind of precision animation is something we might introduce in a later FoxyProxy release, and it is for this reason we don't refer to the icon as a throbber.
Why does the Firefox throbber animate for a shorter or longer period than the FoxyProxy animated icon?
There are two reasons for this:
The FoxyProxy animated icon only animates when FoxyProxy routes HTTP requests through a proxy. If FoxyProxy is set to Use Proxies based on their pre-defined patterns and priorities, then some requests might not be sent through a proxy or you've turned off icon animation for
some or all of the proxies you've defined. To change this, ensure the Add/Edit Proxy->General Tab->Animate icons when proxy is in use checkbox is checked for the proxies which you wish to use icon animation.
The FoxyProxy animated icon is similar but not identical to a throbber. In particular, the FoxyProxy animated icon begins animating when a resource is loaded through a proxy whose Add/Edit Proxy->General Tab->Animate icons when proxy is in use checkbox is checked. The animation continues for 800 milliseconds regardless of whether or not the resource associated with the
request has completed loading.
Why does the FoxyProxy animated icon appear jittery or jumpy?
The animation starts anew for each HTTP request that is routed through a proxy whose Add/Edit Proxy->General Tab->Animate icons when proxy is in use checkbox is checked. If the animation hasn't completed its 800 millisecond loop before a new request is made, the animation is restarted. This is the
cause of the jitter.
Miscellaneous
Does FoxyProxy work with Flash and Java applets?
Yes. FoxyProxy correctly proxies Flash-, Shockwave-, and Java-initiated connections. They are routed through
proxies in the same way any other connection/request is routed. Moreoever, these connections/requests are visible in the
FoxyProxy Logging Tab if logging is enabled.
How can I change FoxyProxy's shortcuts (Ctrl-F2) to something else?
Install the KeyConfig Extension. Scroll down to the FoxyProxy entry and change the shortcut to anything you like. Changes won't take effect until you restart Firefox.
Why does the Tor Wizard start everytime I run Firefox?
FoxyProxy is supposed to run the Tor Wizard only once--the first execution of Firefox after installation of FoxyProxy. If the Tor Wizard runs repeatedly, Firefox is not writing preference changes to disk. Ensure that Firefox has write access to the file prefs.js in the Firefox Profile directory. Also ensure that Firefox is not crashing or being "killed" (terminating abnormally) when closing because this prevents Firefox from flushing preferences changes to disk. If neither of these are the case, try creating a new Firefox profile. You can copy foxyproxy.xml from the old profile to the new profile in order to retain FoxyProxy settings.
FoxyProxy source code is available from the public Subversion repository located at http://trac.leahscape.com/svn/foxyproxy/.
If you only want to browse the code online, consider using the colorized FishEye tool.
Why is FoxyProxy a larger download compared to other Firefox proxy extensions?
FoxyProxy is carefully crafted by a professional software developer with over 15 years of industry experience. It has no
code bloat. The size of FoxyProxy 2.3, 263 kilobytes, has three explanations:
FoxyProxy 2.8.5 supports 27 languages ("locales"). Due to a limitation of Firefox, you must download and install
all languages even if you only need one of them. Don't be concerned, however: at runtime, Firefox only loads YOUR locale into
memory. Because of this, FoxyProxy's memory footprint is quite small even though the download might be considered large for a Firefox extension. Compare language support
of some popular Firefox proxy extensions:
Extension
Languages Supported
Size in KB
FoxyProxy 2.3
22
263
SwitchProxy 1.4.1
6
64
TorButton 1.0.4
3
26
xyzproxy 0.91
3
18
ProxyTex 0.1
1
14
ProxyButton 0.1.8
1
12
QuickProxy 2006.10.09
1
9
If, for example, you use Firefox in English (en-US locale), 195 kilobytes of FoxyProxy never load into memory. You can, in fact, delete the 21 unused
locales/languages (195 KB) from your hard drive if you know what you're doing. Including the English locale, FoxyProxy's locales consume
203 kilobytes of disk space, and its icons and images consume another 27kb. Another 2kb are used by Firefox extension framework code (install.rdf,
chrome.manifest, prefs.js, license file, etc). Those are files required by Firefox by every extension. This leaves a mere 31 kilobytes of code. In other words, 77% of the FoxyProxy 2.3 codebase is resource strings, 10% is graphics, and only 12% is code.
A full 10% of FoxyProxy 2.3's size is due to icons and images used for toolbar buttons, dialog icons, etc.
FoxyProxy includes some very complex features that no other proxy extension has; for example, a rules engine for dynamic proxy switching, automatic pattern creation ("AutoAdd"),
robust logging in XHTML format, multiple proxy support, native PAC file support, built-in Tor wizard, etc. If other proxy extensions included similar features, they would be roughly equivalent in size to FoxyProxy.
To summarize, there is no way to reduce the size of the FoxyProxy download without removing features, languages, or graphics. Languages and graphics will never be removed,
but we can hope that Firefox 3.0 includes support for installation of individual languages in extensions instead of installing all languages all the time.
FoxyProxy will only grow in size over time because of our plans to add lots more features. By the way, the size
of an extension has little or no bearing on the amount of memory it consumes. For example, one can write the following two-line extension
which will eventually consume all available memory on a system.
var x = []; while (1) x[x.length] = "foo";
How can I prevent display of the release notes after upgrading?
You can disable the display of the release notes after upgrading FoxyProxy by doing the following:
Enter about:config into the address bar
Type extensions.foxyproxy.last-version into the filter
Double-click the item
When prompted to "Enter string value", enter 999 or any other very high number.
You will never see the release notes page again after upgrading. To undo this, perform all of the above steps but enter 0 for the last step.
Video and Audio sites
Many video sites permit their videos to be viewed only from certain countries. A common way to avoid such restrictions is to find a proxy server in the appropriate country, and use FoxyProxy to load the video site through that proxy server.
In order to proxify video content without any lags and delays, the proxy
you are using should be capable of high bandwidth. To obtain such
a proxy in the US, UK, EU, Canada, or any other country, please
see this link.
FoxyProxy displays settings.error.3 or Error reading string resource or Error writing settings file or Error reading settings file.
These errors almost always means FoxyProxy cannot find the file where your personal settings are saved, foxyproxy.xml. Most likely you moved or renamed your Firefox profile. FoxyProxy is looking for foxyproxy.xml in the old path, but it either no longer exists or is write-protected. You can manually change the path where FoxyProxy looks for foxyproxy.xml by opening Firefox, going to about:config, entering extensions.foxyproxy.settings in the filter box, and changing the value to a new path that exists; for example: file:///C:/foxyproxy.xml on windows or file://usr/local/home/foxyproxy.xml on linux/mac/unix. Restart Firefox and you should no longer see the error. If foxyproxy.xml is in the Firefox profile, you can tell FoxyProxy to look for it there by using the special value " " (a single space without the quotes). In this case, FoxyProxy won't use any absolute paths to get foxyproxy.xml.
Future versions of FoxyProxy won't store the absolute path to foxyproxy.xml in preferences to avoid this problem.
I moved my Firefox profile to another PC or another path. Now FoxyProxy doesn't work. How to fix?
You must edit the profile's preferences. In Firefox, type about:config in the address bar. Enter extensions.foxyproxy.settings as a filter. If the preference doesn't exist, create it as a new string
(open the context menu (right-click) on any existing preference, go to the New menu, and select String). Enter extensions.foxyproxy.settings for the preference name. For the value of the string, enter the location of foxyproxy.xml in the form: file:///c:/path/to/file/foxyproxy.xml. For example: file:///C:/Documents%20and%20Settings/ EricJung/
Application%20Data/Mozilla/Firefox/Profiles/
r0yrkjob.prod/foxyproxy.xml. Note that the path must be URL-encoded (e.g., space becoems %20). You can use this URL encoding calculator
to easily URL encode a path. If foxyproxy.xml is in the Firefox profile, you can tell FoxyProxy to look for it there by using the special value " " (a single space without the quotes). In this case, FoxyProxy won't use any absolute paths to get foxyproxy.xml.
For Linux and Mac operating systems, exclude the drive letter; e.g. file:///home/ejung/foxyproxy.xml.
If you are using Portable Firefox, the value of extensions.foxyproxy.settings
should be a single space (" "). This tells FoxyProxy to look for foxyproxy.xml in the profile directory of the current drive.
This is important because the drive letter of a USB drive can change.
Why does FoxyProxy sometimes use the wrong SOCKS proxy for 15 seconds?
When using multiple SOCKS proxy servers, Firefox "remembers" the last SOCKS proxy used for a particular domain for roughly 15 seconds. For example,
suppose you configure FoxyProxy rules such that http://foo.com/a.gif loads through SOCKS proxy #1 and http://foo.com/b.gif loads through proxy #2. Now you visit http://foo.com/a.gif, forcing the resource to load through SOCKS proxy #1. A moment later you visit http://foo.com/b.gif. Unfortunately, Firefox will load http://foo.com/b.gif through SOCKS proxy #1 instead of #2. Note that this only occurs when the domains are the same (foo.com in this case). Waiting approximately 15 seconds makes Firefox "forget" the last SOCKS proxy used for that domain.
This is a Firefox issue and has nothing to do with FoxyProxy. If you uninstall FoxyProxy, Firefox will exhibit the same behavior natively. FoxyProxy does, however, report on its logging tab that the correct proxies were used to load the resources, slightly confusing the issue.
Possible workarounds:
For each remote SOCKS proxy, run a local SOCKS or HTTP proxy on localhost that is configured to chain to the remote SOCKS proxy (instances of SocksChain or ProxyChains, for example). Point FoxyProxy to the local proxies, not the remotes. Have the local proxies drop their remote (chained) connections after every request/response. Hopefully, Firefox will be cognizant of the dropped connection and no longer remember it. This idea has not been tested.
Use a single SOCKS proxy. If other proxies are required, they should be HTTP proxies.
Wait 15 seconds before loading resources on the same domain that would normally load through different proxies.
Work on a Firefox patch to resolve this.
This issue has been confirmed on Mac OS X 10.4.11 and Windows XP SP2 with both Firefox 2.0.0.11 and 3.0b2. It was discussed here.
I can't talk to my HTTP proxy over port 80.
This is a Firefox bug and has nothing to do with FoxyProxy. Use any other port besides 80. This problem was discussed here.