gpt4 book ai didi

firefox-addon - Firefox Addon : bootstrap. js mit sdk/page-mod for versions < 38.0

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

tl;dr:我们使用 Addon SDK 创建了一个 firefox 插件。由于编译插件是更大的构建系统中的一个步骤(我们也为 chrome 编译),我们的构建系统手动打包 xpi 并且不使用 jpm。但是,我们使用 jpm 打包插件的内容作为模板来编写我们自己的插件。这仅适用于 firefox >=38。有没有一种简单的方法可以使其适用于早期版本?

详细信息:

所以我们打包了一个xpi文件,里面包含了如下bootstrap.js:

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";

const { utils: Cu } = Components;
const rootURI = __SCRIPT_URI_SPEC__.replace("bootstrap.js", "");
const COMMONJS_URI = "resource://gre/modules/commonjs";
const { require } = Cu.import(COMMONJS_URI + "/toolkit/require.js", {});
const { Bootstrap } = require(COMMONJS_URI + "/sdk/addon/bootstrap.js");
const { startup, shutdown, install, uninstall } = new Bootstrap(rootURI);

此外,xpi 包含一个带有实际代码的 index.js。这个 index.js 然后为 sdk/page-mod 设置内容脚本。

因此在 bootstrap.js 中,启动/关闭函数链接到一个 Bootstrap 对象,然后由该对象处理插件的启用/禁用。

这在 firefox 40 上工作正常,但我用 38 之前的版本测试它,但它不起作用,因为它无法运行 bootstrap.js 脚本。

是否有一种简单的方法让它适用于早期的 firefox 版本?不幸的是,很难找到这方面的文档。具体来说,我们不想破坏插件的启用/禁用,即如果用户禁用了插件,那么 page-mod 也应该被禁用(就像 Bootstrap 类所做的那样),并且在启用插件时,它应该是再次启用。

最佳答案

require 作为 JSM 公开只是 introduced recently ,因此您只是在为您的方法使用新功能。

对于旧版本,您必须创建自定义 Loader取而代之的实例可以用来要求东西。

关于firefox-addon - Firefox Addon : bootstrap. js mit sdk/page-mod for versions < 38.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32910792/

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