Bug 1947229 Comment 0 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

## Proposal For Proxy Code and UI Enhancement

Subsequent to a number discussion in various bugs, please find the following areas that could benefit from enhancement:

- There are inconsistencies with Chrome which complicates cross-browser extension development (which should be easy enough to resolve)
  See also: [Inconsistency: proxy API](https://github.com/w3c/webextensions/issues/573#issuecomment-2016589524)
- The protocol based proxying is rather outdated and no longer used (Bug 1804693)
- Chrome also has protocol based proxying, which can be kept for consistency, or left out (as they are not used anymore)
  e.g. `proxyForFtp` (dead), `proxyForHttp` & `proxyForHttps`
- There are areas where Firefox excels in and these should be maintained (e.g. `proxy.onRequest` that allows for SOCKS authentication and more)
- Chrome doesn't apply `passthrough` (`no_proxies_on`) to PAC URLs while Firefox does and it should be kept 
- Chrome's `passthrough` has extended format (e.g. `scheme`) comparing to Firefox (not a major issue, but can be considered) (Bug 1810738)
- Proxy DNS option would be removed (to become default) and all DNS queries should be left to the proxy (HTTP & SOCKS)
- Backward compatibility should easily be maintained by aliasing and minor mapping

Additional areas:

- There are some conflicts with DoH & ESNI which require consideration
- WebRTC and DNS leaks when using a proxy

### Proxy Schema

WebExtension API simply reflect browser settings. They are used as a reference to provide a framework for the necko-proxy and Firefox user-interface enhancements.

Firefox's proxy schema has 2 main parts:

- `proxy.settings`
  Reflects Firefox's Network Settings and is based on the Firefox's proxy code & UI. (Bug 1412790)
- `proxy.onRequest`
  It will remain as it is

Firefox proxy schema: https://searchfox.org/mozilla-central/source/toolkit/components/extensions/schemas/proxy.json
Chrome proxy schema: https://source.chromium.org/chromium/chromium/src/+/main:chrome/common/extensions/api/proxy.json
## Proposal For Proxy Code and UI Enhancement

Subsequent to a number discussion in various bugs, please find the following areas that could benefit from enhancement:

- There are inconsistencies with Chrome which complicates cross-browser extension development (which should be easy enough to resolve)
  See also: [Inconsistency: proxy API](https://github.com/w3c/webextensions/issues/573#issuecomment-2016589524)
- The protocol based proxying is rather outdated and no longer used (Bug 1804693)
- Chrome also has protocol based proxying, which can be kept for consistency, or left out (as they are not used anymore)
  e.g. `proxyForFtp` (dead), `proxyForHttp` & `proxyForHttps`
- There are areas where Firefox excels in and these should be maintained (e.g. `proxy.onRequest` that allows for SOCKS authentication and more)
- Chrome doesn't apply `passthrough` (`no_proxies_on`) to PAC URLs while Firefox does and it should be kept 
- Chrome's `passthrough` has extended format (e.g. `scheme`) comparing to Firefox (not a major issue, but can be considered) (Bug 1810738)
- Proxy DNS option would be removed (to become default) and all DNS queries should be left to the proxy (HTTP & SOCKS)
- Backward compatibility should easily be maintained by aliasing and minor mapping

Additional areas:

- There are some conflicts with DoH & ESNI which require consideration
- WebRTC and DNS leaks when using a proxy

**Update:**
Extension related content removed to avoid ambiguity.
## Proposal For Proxy Code and UI Enhancement

Subsequent to a number discussion in various bugs, please find the following areas that could benefit from enhancement:

- There are inconsistencies with Chrome which complicates cross-browser extension development (which should be easy enough to resolve)
  See also: [Inconsistency: proxy API](https://github.com/w3c/webextensions/issues/573#issuecomment-2016589524)
- The protocol based proxying is rather outdated and no longer used (Bug 1804693)
- Chrome also has protocol based proxying, which can be kept for consistency, or left out (as they are not used anymore)
  e.g. `proxyForFtp` (dead), `proxyForHttp` & `proxyForHttps`
- There are areas where Firefox excels in and these should be maintained (e.g. `proxy.onRequest` that allows for SOCKS authentication and more)
- Chrome doesn't apply `passthrough` (`no_proxies_on`) to PAC URLs while Firefox does and it should be kept 
- Chrome's `passthrough` has extended format (e.g. `scheme`) comparing to Firefox (not a major issue, but can be considered) (Bug 1810738)
- Proxy DNS option would be removed (to become default) and all DNS queries should be left to the proxy (HTTP & SOCKS) (Bug 1893670,  Bug 1741375 -> https://bugzilla.mozilla.org/show_bug.cgi?id=1741375#c30, https://bugzilla.mozilla.org/show_bug.cgi?id=1741375#c33)
- Backward compatibility should easily be maintained by aliasing and minor mapping

Additional areas:

- There are some conflicts with DoH & ESNI which require consideration (Bug 1579985, [Secure SNI is disabled if FoxyProxy is enabled](https://github.com/foxyproxy/browser-extension/issues/165))
- WebRTC and DNS leaks when using a proxy (Bug 1791243, Bug 1882276, Bug 1799411)

**Update:**
Extension related content removed to avoid ambiguity.

Back to Bug 1947229 Comment 0