Firefox 的全局代理 API 需要访问隐私窗口的权限
当 proxy.settings.set 抛出错误时,请检查扩展的隐私浏览访问权限,因为全局配置会同时影响普通窗口和隐私窗口。
Firefox 的全局代理设置会同时影响普通窗口和隐私窗口。因此 proxy.settings API 要求扩展具备隐私窗口访问权限,即使操作是从普通窗口发起的。
扩展可以在修改设置之前检查该条件:
const allowed = await browser.extension.isAllowedIncognitoAccess();
if (!allowed) {
throw new Error('Private-window access is required for global proxy settings');
}
await browser.proxy.settings.set({ value: proxyConfig });proxyConfig 是现有的 Firefox 格式配置对象。扩展还需要其常规的代理 API 权限。
当 manifest 允许隐私使用时,用户在扩展的管理详情中通过 Run in Private Windows 控制该访问权限。检查只会报告该选择,并不会自动授予权限。
如果没有所需权限,proxy.settings.set 会抛出异常。这发生在扩展展示与所提议代理的任何连接之前,因此替换其 IP 或端口与这一失败无关。
在扩展的界面中处理该拒绝并保留用户的选择。权限与配置应用成功后,再单独评估实际的目标路由。