Use the proxy API to proxy web requests. You can use the
proxy.onRequest event listener to intercept web requests, and return an object that describes whether and how to proxy them.
The advantage of the
proxy.onRequest approach is that the code that implements your proxy policy runs in your extension's background script, so it gets full access to the WebExtension APIs available to your extension (including, for example, access to your extension's
storage and networking APIs like
Apart from this API, extensions can also use the
browserSettings.proxyConfig property to configure global proxy settings.
Note: Chrome, Edge, and Opera have an extension API also called "proxy" which is functionally similar to this API, in that extensions can use it to implement a proxying policy. However, the design of the Chrome API is completely different to this API. Because this API is incompatible with the Chrome
proxy API, this API is only available through the
The "proxy" permission requires
"strict_min_version" to be set to "91.1.0" or above. To use this permission, add or update the
"browser_specific_settings" key in your manifest.json to specify a minimum Firefox version. See Securing the proxy API for Firefox add-ons for more information.
Note: The browser can make speculative connections, where it determines that a request to a URI may be coming soon. This type of connection does not provide valid tab information, so request details such as
parentFrameId, etc. are inaccurate. These connections have a
Get and set proxy settings.
BCD tables only load in the browser