proxy

使用 proxy API 来代理 Web 请求。您可以使用 proxy.onRequest 事件监听器来拦截 Web 请求,并返回一个描述是否以及如何代理这些请求的对象。

proxy.onRequest 方法的优势在于,实现代理策略的代码运行在您扩展的后台脚本中,因此它拥有对您扩展可用的 WebExtension API 的完全访问权限(例如,可以访问您扩展的 storage 和网络 API,如 dns)。

除了此 API,扩展还可以使用 browserSettings.proxyConfig 属性来配置全局代理设置。

注意: Chrome、Edge 和 Opera 也有一个 也称为“proxy”的扩展 API,它在功能上与此 API 类似,扩展可以使用它来实现代理策略。然而,Chrome API 的设计与此 API 完全不同。由于此 API 与 Chrome 的 proxy API 不兼容,因此只能通过 browser 命名空间访问此 API。

要使用此 API,您需要拥有“proxy” 权限。此外,当您想要拦截请求时,还需要针对被拦截请求的 URL 拥有 主机权限

“proxy”权限要求 "strict_min_version" 设置为“91.1.0”或更高版本。要使用此权限,请在您的 manifest.json 中添加或更新 "browser_specific_settings" 键,以指定最低 Firefox 版本。有关更多信息,请参阅 Securing the proxy API for Firefox add-ons

注意: 浏览器可以进行推测性连接,它会预判即将发出的 URI 请求。这种类型的连接不提供有效的标签页信息,因此诸如 tabIdframeIdparentFrameId 等请求详情是不准确的。这些连接的 webRequest.ResourceTypespeculative

类型

proxy.ProxyInfo

描述一个代理。

proxy.RequestDetails

包含有关浏览器即将发出的 Web 请求的信息。

属性

proxy.settings

获取和设置代理设置。

事件

proxy.onError

当系统在运行 PAC 脚本或 onRequest 监听器时遇到错误时触发。

proxy.onRequest

当即将发出 Web 请求时触发,为扩展提供了代理它的机会。

扩展程序示例

浏览器兼容性