PAC engine differences
The same proxy.pac can return different answers in Chrome, Firefox and pactester. This table puts the newest version of each engine side by side. Every cell says where the claim comes from.
Values describe the newest version range of each engine. Older ranges, for example Chrome 51 and older, which pass the full URL to the script, are listed on each engine page. code means read in the engine’s source code at a pinned commit, doc means vendor documentation, lab means observed in a lab run, and expert means practitioner knowledge that is not verified yet.
Test how your own file behaves in each engine with the online PAC file tester.
| Behaviour | Chrome ≥ 52 | Firefox | pacparser ≥ 1.5.1 |
|---|---|---|---|
| alert() output | netlogcode, verified 2026-10-04 | consolecode, verified 2026-10-04 | consolecode, verified 2026-10-04 |
| Non-ASCII result rejected | truecode, verified 2026-10-04 | falsecode, verified 2026-10-04 | falsecode, verified 2026-10-04 |
| DNS lookups | asyncexpert, unverified | synccode, verified 2026-10-04 | synccode, verified 2026-10-04 |
| dnsResolve is IPv4 only | truecode, verified 2026-10-04 | falseexpert, unverified | truecode, verified 2026-10-04 |
| JavaScript level accepted | latestcode, verified 2026-10-04 | latestcode, verified 2026-10-04 | latestdoc, verified 2026-10-04 |
| Calls FindProxyForURLEx if defined | falsecode, verified 2026-10-04 | falsecode, verified 2026-10-04 | truecode, verified 2026-10-04 |
| Microsoft *Ex functions | truecode, verified 2026-10-04 | falsecode, verified 2026-10-04 | truedoc, verified 2026-10-04 |
| Global variables persist between calls | truecode, verified 2026-10-04 | trueexpert, unverified | truecode, verified 2026-10-04 |
| Host lower-cased by the engine | trueexpert, unverified | trueexpert, unverified | falsecode, verified 2026-10-04 |
| myIpAddress() source | routing_ipv4expert, unverified | routing_ipv4code, verified 2026-10-04 | user_suppliedcode, verified 2026-10-04 |
| Native (C++) bindings | alert, myIpAddress, dnsResolve, isPlainHostName, dnsResolveEx, myIpAddressEx, sortIpAddressList, isInNetExcode, verified 2026-10-04 | dnsResolve, myIpAddress, alertcode, verified 2026-10-04 | dnsResolve, myIpAddress, dnsResolveEx, myIpAddressEx, alertcode, verified 2026-10-04 |
| On exception | directcode, verified 2026-10-04 | directcode, verified 2026-10-04 | errorcode, verified 2026-10-04 |
| On non-string / undefined result | directcode, verified 2026-10-04 | directcode, verified 2026-10-04 | stringifycode, verified 2026-10-04 |
| URL passed to FindProxyForURL | https_path_querycode, verified 2026-10-04 | all_path_querycode, verified 2026-10-04 | nonecode, verified 2026-10-04 |
Download as CSV (one row per engine and behaviour, with source and verification date).