FF 插件中的“tabs”和“workers”实体之间有什么样的关系?

What kind of relations between `tabs` and `workers` entities in FF addons?

我是 FF 附加组件及其 SDK 的新手,所以我想弄清楚一些基本概念。 我想澄清的第一件事 - tabs-sdkworkers 之间的关系。正如我从文档中得到的那样——每次我通过

将内容脚本附加到选项卡时
this.activeWorker = tabs.activeTab.attach({
    contentScript: script
});

我要 worker。但我的问题是:"Is it a totally new worker, related to the same activeTab?"如果是这样,是否意味着下一个陈述是正确的?

var firstWorker = tabs.activeTab.attach({
    contentScript: someScript
});

var secondWorker = tabs.activeTab.attach({
    contentScript: someOtherScript
});

var isEqual = (firstWorker === secondWorker); //false

如果正确,下一个问题是:"Is there a way, to listen for messages on tab and not on worker?"

是的,每次调用 attach 都会为您提供一个新的独立 worker。

要监听来自每个 worker 的消息,您只需在每次创建时传递回调函数即可。