Firefox 身份验证 window 冻结扩展的后台脚本

Firefox authentication window freezes background script of Extension

我有一个私有扩展 运行,它监听 WebRequests 并对特定的(不存在的)做一些事情 URL:

browser.webRequest.onAuthRequired.addListener(
    doSomething, 
    {urls: ["*://*.xx-xxxxx.net/xxx/connect?*"]}, 
    ["blocking"]
);

它提取查询参数,丢弃新选项卡并连接到服务。当 Firefox 打开并且 运行.

时,操作简单且运行良好

通过在 Firefox 关闭的情况下单击 URL 它仅在没有身份验证 window(例如代理)时有效。如果显示身份验证 window,则整个后台脚本将冻结并且在关闭之前不会继续运行。 url 仅在短时间内有效,因此冻结时间过长导致 url 无效。

有没有可能让后台脚本运行不管是否显示身份验证window

By clicking on the URL with Firefox closed

您是说在另一个应用程序中单击 URL 会导致 Firefox 启动并打开 link?

在启动期间,Firefox 首先加载持久侦听器。这意味着 browser.webRequest.onAuthRequired.addListener() 必须位于后台脚本的顶层。是这样吗?
否则,它会稍后加载它,并且在加载时,Firefox 已经进行了几次连接尝试,如果它们需要身份验证,则会出现模态 Auth 弹出窗口。

Are there any possibilities to let the background script running regardless of whether the authantication window is shown or not.

browser.webRequest.onAuthRequired.addListener() 在 Auth 弹出窗口之前触发。 同时,["blocking"] 将阻止对该请求的进一步操作,直到该请求得到解决。 doSomething 必须是一个承诺,以防止执行弹出窗口,例如将请求传回给浏览器处理。

然后 doSomething 必须通过允许、阻止或重定向等方式处理身份验证

后台脚本可以运行,与auth-pop无关,但这取决于代码的编写方式。 auth弹窗不停止后台脚本运行ning.