我是Firefox扩展开发的新手 . 所以我一直在尝试一下 . 我目前正在尝试创建一个引导扩展,只有最低要求:只有一个install.rdf和bootstrap.js . 目前这个扩展实际上不应该做任何事情 . 我只希望能够毫无问题地安装它 . 稍后可以添加该功能 .

install.rdf和bootstrap.js已经打包到带有7zip的.zip文件中,然后文件扩展名更改为.xpi . 安装是通过AddOn Manager完成的,似乎在我的Firefox 42.0中完美运行(Firefox给我一个成功的消息) .

但是如果我在安装后查看错误控制台,它会显示几个警告/错误:

1447258032068 addons.xpi WARN为Test-AddOn--53d9108a-541b-4209-a62e-3809504dfe6e@example.org加载bootstrap.js时出错:打开输入流时出错(文件名无效?):jar:file:/// C: /Users/Stefan/AppData/Roaming/Mozilla/Firefox/Profiles/dlgniy94.default/extensions/Test-AddOn--53d9108a-541b-4209-a62e-3809504dfe6e@example.org.xpi!/bootstrap.js 1447258032068 addons.xpi WARN加载项测试--AddOn--53d9108a-541b-4209-a62e-3809504dfe6e@example.org缺少bootstrap方法卸载1447258032080 addons.xpi WARN加载bootstrap.js for Test-AddOn时出错 - 53d9108a-541b-4209-a62e -3809504dfe6e@example.org:打开输入流时出错(文件名无效?):jar:file:/// C:/Users/Stefan/AppData/Roaming/Mozilla/Firefox/Profiles/dlgniy94.default/extensions/Test-AddOn --53d9108a-541b-4209-a62e-3809504dfe6e@example.org.xpi!/bootstrap.js 1447258032080 addons.xpi WARN附加测试--AddOn--53d9108a-541b-4209-a62e-3809504dfe6e@example.org缺失bootstrap方法安装Zeitstempel:11.11.2015 17:07:12 F ehler:[Exception ...“组件返回失败代码:0x80004005(NS_ERROR_FAILURE)[nsIURI.hostPort]”nsresult:“0x80004005(NS_ERROR_FAILURE)”location:“JS frame :: resource://gre/modules/PopupNotifications.jsm: :PopupNotifications_refreshPanel / <:: line 579“data:no] Quelldatei:resource://gre/modules/PopupNotifications.jsm Zeile:583 1447258032112 addons.xpi WARN附加测试 - AddOn - 53d9108a-541b-4209-a62e- 3809504dfe6e@example.org缺少bootstrap方法启动

我不知道造成这些错误/警告的原因 . 特别是所谓的缺失引导方法令人费解 .

这是我的bootstrap.js的内容:

const { classes: Cc, interfaces: Ci, utils: Cu } = Components;

Cu.import('resource://gre/modules/Services.jsm');

function startup(aData, aReason) {}
function shutdown(aData, aReason) {}
function install(aData, aReason) {}
function uninstall(aData, aReason) {}

它不是很多,但它应该是所需要的一切,不是吗?所有四个必需的方法(startup(),shutdown(),install(),uninstall())都在那里 . (它们是空的,因为插件不应该做任何事情 . )那么为什么我的Firefox 42.0认为其中三个缺失?为什么第四个(shutdown())不这么认为呢?

当存在多个错误时,为什么安装似乎有效(来自浏览器的成功消息)?

我错过了重要的事吗?

这是install.rdf:

<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
  <Description about="urn:mozilla:install-manifest">
    <em:id>Test-AddOn--53d9108a-541b-4209-a62e-3809504dfe6e@example.org</em:id>
    <em:type>2</em:type>
    <em:name>Test AddOn</em:name>
    <em:version>1.0</em:version>
    <em:bootstrap>true</em:bootstrap>
    <em:description>This is a test.</em:description>
    <em:creator>Anonymous</em:creator>
    <em:targetApplication>
      <Description>
        <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
        <em:minVersion>40.0</em:minVersion>
        <em:maxVersion>45.*</em:maxVersion>
      </Description>
    </em:targetApplication>
  </Description>
</RDF>

根据https://developer.mozilla.org/en-US/Add-ons/Bootstrapped_extensions#chrome.manifest_in_bootstrapped_add-ons使用chrome.manifest文件"can"(我假设这意味着它不是必需的) .

如果你're interested in seeing the whole addon .xpi-package, I'已经在这里上传了它:http://www.filedropper.com/testaddon