
last update: 25 June 2008
- General
- The FoxyProxy Rules Engine: Whitelist, Blacklists, and Patterns
- PAC Files
- Privacy
- Tor
- Animated Icons
- Miscellaneous
- Known Issues
General
What is FoxyProxy?
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.
What is a proxy?
Please read this excellent article.
How can I run my own proxy?
Here is a list of HTTP (web) proxies.
Here is a list of SOCKS proxies. We have some tutorials on configuring
these here.
What is required to use FoxyProxy?
Firefox 1.5 or above and one or more HTTP (web) or SOCKS proxies.
Can FoxyProxy run with Portable Firefox on my USB keychain?
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)?
Yes. See this section for more information.
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.
Why don't the
network.proxy.* preferences in about:config change when
I use FoxyProxy?
FoxyProxy doesn't work by reading/writing Firefox preferences. This is not an efficient mechanism
for real-time proxy switching.
I've specified an HTTP proxy in about:config by
changing network.proxy.http and network.proxy.http_port, but FoxyProxy ignores it. Why?
FoxyProxy doesn't work by reading/writing Firefox preferences. This is not an efficient mechanism
for real-time proxy switching.
Is this extension related to http://foxyproxy.net?
No.
Where can I get help or request a new feature?
Prompt, free support can be obtained here.
Under what license is FoxyProxy released?
FoxyProxy is released under the GPL license.
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.
Where can I learn how to write patterns?
Please read the pattern tutorial.
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.
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 is 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.
- All URLS are loaded through proxy "xyz" regardless of blacklists or whitelists.
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.*.
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:
Proxy auto-configuration files are described in complete detail here, here, and here.
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";
}
}
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.
How can I use different proxies based on my IP address?
This can be done with a proxy auto-configuration (PAC) file in notepad or similar text editor. Don't worry if you if you don't
understand PAC files. They are very easy! A PAC file is a text file containing the javascript function FindProxyForURL(url, host).
The browser fetches the PAC file and calls this function before retrieving URLs. The following PAC shows can to use different proxies
based on your IP address.
Save this file to a web page; e.g., http://mydomain.com/proxy.pac or on the local file system; If saved to the local file system, specify the path like so: Windows -- file://c:/path/proxy.pac, Unix/Linux/Mac -- file://path/proxy.pac. Finally, configure a new proxy in FoxyProxy and select "Automatic proxy configuration URL" on the "Proxy Details" page. Make sure to test the PAC file by clicking the "View" and "Test" buttons to ensure the PAC file is accessible and valid. You can read more about proxy auto-configuration files here, here, and here.
function FindProxyForURL(url, host){
<!-- substitute your IP and proxy below -->
if (shExpMatch(myIpAddress(), "192.168.1.*")) {
return "PROXY myproxy.foo.com:9050;"
}
<!-- substitute your other IP and other proxy below -->
else if (shExpMatch(myIpAddress(), "207.165.5.*")) {
return "SOCKS anotherproxy.bar.com:1050;"
}
else {
return "DIRECT";
}
}
<!-- substitute your IP and proxy below -->
if (shExpMatch(myIpAddress(), "192.168.1.*")) {
return "PROXY myproxy.foo.com:9050;"
}
<!-- substitute your other IP and other proxy below -->
else if (shExpMatch(myIpAddress(), "207.165.5.*")) {
return "SOCKS anotherproxy.bar.com:1050;"
}
else {
return "DIRECT";
}
}
Save this file to a web page; e.g., http://mydomain.com/proxy.pac or on the local file system; If saved to the local file system, specify the path like so: Windows -- file://c:/path/proxy.pac, Unix/Linux/Mac -- file://path/proxy.pac. Finally, configure a new proxy in FoxyProxy and select "Automatic proxy configuration URL" on the "Proxy Details" page. Make sure to test the PAC file by clicking the "View" and "Test" buttons to ensure the PAC file is accessible and valid. You can read more about proxy auto-configuration files here, here, and here.
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 are two of them.
Method 1: Define Patterns
Define a proxy in FoxyProxy. Define the following blacklist wildcard patterns on this proxy:
Method 2: Use a PAC file.
Don't worry if you if you don't understand PAC files. They are very easy! A PAC file is a text file containing the javascript function FindProxyForURL(url, host). The browser fetches the PAC file and calls this function before retrieving URLs. The following PAC shows can to use different proxies based on your IP address.
Save this file to a web page; e.g., http://mydomain.com/proxy.pac or on the local file system; If saved to the local file system, specify the path like so: Windows -- file://c:/path/proxy.pac, Unix/Linux/Mac -- file://path/proxy.pac. Finally, configure a new proxy in FoxyProxy and select "Automatic proxy configuration URL" on the "Proxy Details" page. Make sure to test the PAC file by clicking the "View" and "Test" buttons to ensure the PAC file is accessible and valid. You can read more about proxy auto-configuration files here, here, and here.
There is more than one way to do this in FoxyProxy 2.x. Here are two of them.
Method 1: Define Patterns
Define a proxy in FoxyProxy. Define the following blacklist wildcard patterns on this proxy:
- *://intranet-host-1/*
- *://intranet-host-2/*
- etc...
Method 2: Use a PAC file.
Don't worry if you if you don't understand PAC files. They are very easy! A PAC file is a text file containing the javascript function FindProxyForURL(url, host). The browser fetches the PAC file and calls this function before retrieving URLs. The following PAC shows can to use different proxies based on your IP address.
function FindProxyForURL(url, host){
// no proxy for anything hosted at http://sup14 and http://dev01
if (isPlainHostName(host)) {
return "DIRECT"; // no proxy
}
else {
return "SOCKS myproxy.bar.com:1050"; // your proxy
}
}
// no proxy for anything hosted at http://sup14 and http://dev01
if (isPlainHostName(host)) {
return "DIRECT"; // no proxy
}
else {
return "SOCKS myproxy.bar.com:1050"; // your proxy
}
}
Save this file to a web page; e.g., http://mydomain.com/proxy.pac or on the local file system; If saved to the local file system, specify the path like so: Windows -- file://c:/path/proxy.pac, Unix/Linux/Mac -- file://path/proxy.pac. Finally, configure a new proxy in FoxyProxy and select "Automatic proxy configuration URL" on the "Proxy Details" page. Make sure to test the PAC file by clicking the "View" and "Test" buttons to ensure the PAC file is accessible and valid. You can read more about proxy auto-configuration files here, here, and here.
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 are two of them.
Method 1: Define Patterns
Define a proxy in FoxyProxy. Define the following blacklist wildcard patterns on this proxy:
Method 2: Use a PAC file.
Don't worry if you if you don't understand PAC files. They are very easy! A PAC file is a text file containing the javascript function FindProxyForURL(url, host). The browser fetches the PAC file and calls this function before retrieving URLs. The following PAC shows can to use different proxies based on your IP address.
Save this file to a web page; e.g., http://mydomain.com/proxy.pac or on the local file system; If saved to the local file system, specify the path like so: Windows -- file://c:/path/proxy.pac, Unix/Linux/Mac -- file://path/proxy.pac. Finally, configure a new proxy in FoxyProxy and select "Automatic proxy configuration URL" on the "Proxy Details" page. Make sure to test the PAC file by clicking the "View" and "Test" buttons to ensure the PAC file is accessible and valid. You can read more about proxy auto-configuration files here, here, and here.
There is more than one way to do this in FoxyProxy 2.x. Here are two of them.
Method 1: Define Patterns
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...
Method 2: Use a PAC file.
Don't worry if you if you don't understand PAC files. They are very easy! A PAC file is a text file containing the javascript function FindProxyForURL(url, host). The browser fetches the PAC file and calls this function before retrieving URLs. The following PAC shows can to use different proxies based on your IP address.
function FindProxyForURL(url, host){
// no proxy for anything hosted at http://sup14, http://dev01, and also http://127.0.0.1
if (isPlainHostName(host) || localHostOrDomainIs(host, "127.0.0.1")) {
return "DIRECT"; // no proxy
}
else {
return "SOCKS myproxy.bar.com:1050"; // your proxy
}
}
// no proxy for anything hosted at http://sup14, http://dev01, and also http://127.0.0.1
if (isPlainHostName(host) || localHostOrDomainIs(host, "127.0.0.1")) {
return "DIRECT"; // no proxy
}
else {
return "SOCKS myproxy.bar.com:1050"; // your proxy
}
}
Save this file to a web page; e.g., http://mydomain.com/proxy.pac or on the local file system; If saved to the local file system, specify the path like so: Windows -- file://c:/path/proxy.pac, Unix/Linux/Mac -- file://path/proxy.pac. Finally, configure a new proxy in FoxyProxy and select "Automatic proxy configuration URL" on the "Proxy Details" page. Make sure to test the PAC file by clicking the "View" and "Test" buttons to ensure the PAC file is accessible and valid. You can read more about proxy auto-configuration files 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:
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?
Yes. Please read the Tor section of this FAQ. I also urge you to read Potential Anonymity Leak and the FAQ question How does FoxyProxy secure my privacy?
Are there any tutorials on FoxyProxy and privacy?
Can DNS lookups go through my proxies?
Yes. Ensure the following:
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.
- 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.
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.
How can I use FoxyProxy with Tor?
- Install the Tor/Vidalia/Privoxy software bundle if you haven't already.
- Run Vidalia.
- 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.
- Install FoxyProxy if you haven't already.
- Run the Tor Wizard (File->Tor Wizard) and answer the questions appropriately.
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.
Does FoxyProxy work with IceWeasel?
Yes.
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.
Where can I get older version of FoxyProxy?
here.
Where can I find the FoxyProxy source code?
FoxyProxy source code is available from the Subversion repository located at http://leahscape.com/svn/foxyproxy.
If you only want to browse the code online, consider using the colorized FoxyProxy Trac Repository Viewer.
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.3 supports 22 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 it's download size is about 263 kilobytes. Compare language support
of some popular Firefox proxy extensions:
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.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 - 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.
var x = [];
while (1) x[x.length] = "foo";
while (1) x[x.length] = "foo";
Known Issues
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.
Future versions of FoxyProxy won't store the absolute path to foxyproxy.xml in preferences to avoid this problem.
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.
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.
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.
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:
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.
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.
