Firefox addon 向自定义XULRunner应用程序添加加载项栏

Firefox addon 向自定义XULRunner应用程序添加加载项栏,firefox-addon,xul,firefox-addon-sdk,xpi,Firefox Addon,Xul,Firefox Addon Sdk,Xpi,在上,引入了短语“支持附加管理器的XUL应用程序” 通过拖动包含加载项的XPI文件并将其放到FireFox窗口中,加载项的小部件将安装在FireFox的加载项栏中 通过指定命令行选项“-app application.ini”,我还可以使用Firefox运行XUL应用程序 由于MDN使我认为这两者不是互斥的,因此我正在寻找一个简单的4步流程,其中步骤1和2分别创建一个XUL应用程序和XPI,步骤3描述了如何更改XUL应用程序或XPI以准备步骤4,步骤4是最终集成 我将从步骤1和步骤2开始,然后建

在上,引入了短语“支持附加管理器的XUL应用程序”

通过拖动包含加载项的XPI文件并将其放到FireFox窗口中,加载项的小部件将安装在FireFox的加载项栏中

通过指定命令行选项“-app application.ini”,我还可以使用Firefox运行XUL应用程序

由于MDN使我认为这两者不是互斥的,因此我正在寻找一个简单的4步流程,其中步骤1和2分别创建一个XUL应用程序和XPI,步骤3描述了如何更改XUL应用程序或XPI以准备步骤4,步骤4是最终集成

我将从步骤1和步骤2开始,然后建议在步骤3或步骤4中需要完成的一些事情

步骤1:按照下面的教程构建XPI

第2步:按照上的教程构建XUL应用程序

现在进入第3步和第4步。它们应该包括通过添加以下代码来修改步骤2中构建的application.ini:

[XRE]
EnableExtensionManager=1
它们还应该包括添加行以支持扩展管理器。他们可能需要添加类似于以下内容的代码:

<toolbarpalette id="BrowserToolbarPalette">
<toolbarbutton 
    id="xfox-statusbarpanel" class="toolbarbutton-1 chromeclass-toolbar-additional"
    label="&name;"
    tooltiptext="&name;"
    oncommand="toggleSidebar('xfox-sidebar');"
    context="xfox-contextmenu">
</toolbarbutton>
</toolbarpalette>

我已成功地使“支持附加管理器的XUL应用程序”(aka
)接受XPI(aka
)并尝试安装它,但它失败,并显示错误消息:“
无法安装,因为它与
不兼容”

[编辑]我编辑了INSTALL.RDF(用于我的XPI)并添加了以下内容:

<em:targetApplication>
   <Description>
     <em:id>testapp@sample.xul</em:id>
     <em:minVers‌​ion>0.0</em:minVersion>
     <em:maxVersion>9.*</em:maxVersion>
   </Description>
 </em:targe‌​tApplication>.

testapp@sample.xul
0
9.*
.
扩展现在已安装,但我在jsconsole中遇到以下错误:

错误:小部件模块当前仅支持Firefox。将来,它将支持其他应用程序。有关更多信息,请参阅


你把事情搞混了。
-app
命令行标志用于运行XULRunner应用程序,而不是浏览器扩展。至于附加SDK,它不支持XUL,只支持HTML。有一个支持XUL的版本,但它看起来有些过时,我不确定它是否能够创建独立的窗口(这就是你要问的吗?)


当然有。它们允许您执行任何操作,包括创建新的XUL窗口或使用附加工具栏。但是它们的编写要复杂得多。

我已经找到了答案,但这有点像黑客,需要从插件工具包javascript源代码中删除以下代码行:

if (!require("api-utils/xul-app").is("Firefox")) {
    throw new Error([
      "The widget module currently supports only Firefox.  In the future ",
      "it will support other applications. Please see ",
      "https://bugzilla.mozilla.org/show_bug.cgi?id=560716 for more information."
    ].join(""));
}
因为上面的代码是专门为防止在真正的Firefox之外的任何东西中使用插件套件而设计的,所以这条途径不值得进一步研究。但是,如果有一种方法可以构建一个符合Firefox的xul应用程序,那么我将重新讨论这个问题


火狐是chrome://browser/content/browser.xul 毕竟

短语“addon的widgets”听起来像是在使用。你…吗?或者它是一个“经典”的扩展?@WladimirPalant是的,我正在为XPI插件使用JetPack。我已经读过了,XUL以前似乎是由-t标志支持的(在较新的版本中是否已将其更改为--templatedir标志?)。我正在寻找一个简单的4步答案,其中第1步和第2步分别创建XUL和XPI,第3步和第4步描述了将两者集成所需的更改。(另外,我使用的是addon-sdk-1.3版本的addon-sdk。我错误地将其称为JetPack-虽然我投票支持恢复JetPack名称,但它很吸引人)该页面上的“支持附加管理器的XUL应用程序”指的是Firefox、Thunderbird和其他。感谢您澄清了扩展和应用程序的术语。当我第一次学习XUL时,我指的是Mozilla的,所以这是我困惑的根源。我猜是“应用程序”和“经典扩展”“它们非常相似。不管上面提到的XUL在哪里,它都是关于(chrome)应用程序的。无论何时提到XPI,它都是关于通过
cfx XPI