gpt4 book ai didi

firefox-addon - 如何将旧版 XPCOM 扩展迁移到 WebExtensions?

转载 作者:行者123 更新时间:2023-12-04 04:48:04 26 4
gpt4 key购买 nike

Embedded WebExtensions谈论如何“......在经典的引导扩展或附加 SDK 附加组件中嵌入 WebExtension”。

但我既没有“引导”也没有“附加 SDK”扩展,只有十年前的普通 XPCOM/覆盖扩展。我没有用于启动的 bootstrap.js,也没有使用 Add-on SDK 来执行任何操作。

我尝试添加

<em:bootstrap>true</em:bootstrap>

但所完成的只是完全破坏扩展,它只加载那个(空的)新 bootstrap.js 文件。

确实,我想迁移:我的经典扩展有的数据需要导出到webext版本,以获得良好的用户体验。

最佳答案

our tracking bug用户发布了一个有用的链接:

https://github.com/mdn/webextensions-examples/tree/master/embedded-webextension-overlay

归结为

const {
LegacyExtensionsUtils,
} = Components.utils.import("resource://gre/modules/LegacyExtensionsUtils.jsm");

const myOverlayEmbeddedWebExtension = LegacyExtensionsUtils.getEmbeddedExtensionFor({
id: addonId, resourceURI: baseURI,
});

myOverlayEmbeddedWebExtension.startup().then(({browser}) => {
dump(`${addonId} - embedded webext started\n`);
browser.runtime.onMessage.addListener(msg => {
dump(`${addonId} - received message from embedded webext ${msg}\n`);
});
}).catch(err => {
Components.utils.reportError(
`${addonId} - embedded webext startup failed: ${err.message} ${err.stack}\n`
);
});

这肯定等同于 bootstrap /SDK 代码为您做的事情。

关于firefox-addon - 如何将旧版 XPCOM 扩展迁移到 WebExtensions?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45948501/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com