Firefox 附加扩展:主页覆盖意外行为

Firefox Add-on Extension: Homepage override unexpected behavior

这是我的一部分 manifest.json:

...
 "chrome_url_overrides" : {
    "newtab": "index.html"
  },
 "chrome_settings_overrides" : {
  "homepage": "index.html"
} 
...

index.html 在每个新标签页上都能正常加载。
但是新的 windows,在启动时,我得到的只是一个空白页。

我尝试手动将首选项中的主页设置为 URL,将 index.html 作为扩展本身,例如:

moz-extension://1232131-32132131-321312-321321-321321/index.html

行为有所改善,但并不完美。当我这样做时,新的 windows 加载 index.html 正常,但在重新启动时(从关闭的应用程序)我看到的又是一个空白页面?

知道出了什么问题吗?这只发生在 Firefox 中,在 Tor 浏览器和 Google Chrome.

上正常

事实证明,这是由于在启动期间加载新的 window 时扩展程序未及时加载而发生的。

我第一次解决这个问题的方式是在我的 background.js 文件中:

function loadStart(){
    browser.tabs.update(
        {
            url: "index.html"
        }
    )
}

browser.runtime.onStartup.addListener(loadStart)

但是,如果始终使用隐私浏览的设置处于活动状态,上面的代码将不会执行任何操作,因为如果加载了隐身/隐私浏览配置文件,runtime.onStartup 不会触发。

为了解决这个问题:

function pushStart(data) {
    if (data == null) {
        loadStart()
    }
    else {
        console.log("tab is well defined")
    }
}

var currentTab = browser.tabs.getCurrent()

currentTab.then((data)=>(pushStart(data)))

新 window 重新启动时正在尝试加载捆绑在扩展程序中的页面,但由于扩展程序本身尚未加载且不可用而失败。
因此,上面的代码适用于这种情况。