jpm 插件无法在插件管理器中显示图标

jpm addon can't get icon to display in Addon Manager

在 package.json 中,我尝试过使用和不使用 resource://nameGUIDnameGUID,既不name也不GUID,有{}s,没有{}s,有@,相对和绝对,假设./(相对),/(根), /数据.

我根本无法让插件管理器显示插件中的图标,即使在安装之后也是如此。我什至不能让 jpm 在 install.rdf 中创建一个 em:iconURL。它甚至不存在。命令行使用jpm没有报错。控制台中没有错误,至少 none 与我正在做的任何事情有关,至少没有那么清楚地解释它们与我正在做的任何事情有关。为了演示我尝试过的内容。不是一个实际的工作示例。对于我尝试的每种不同格式,我为所有尺寸的图标(16、32、48、64)放置了相同的格式 URI。

package.json (demo snippet):

...
"id": "{GUID}",
"name": "my_addon",
"icons": {
    "48": "resource://@{GUID}/data/myaddon-48.png",
    "48": "resource://GUID/data/myaddon-48.png",
    "48": "resource://@my_addon/data/myaddon-48.png",
    "48": "resource://my_addon/data/myaddon-48.png",
    "64": "myaddon-64.png",
    "64": "/myaddon-64.png",
    "64": "./myaddon-64.png",
    "64": "data/myaddon-64.png",
    "64": "/data/myaddon-64.png",
    "64": "./data/myaddon-64.png",
},
...

任何 MDN 文章或任何 SO 答案中描述的技术绝对 none 有效,一次也没有。在所有情况下,Firefox 都会在启动时从网络中提取一个图标。

出于某种原因,XUL 中的一项微不足道的任务(实际上是创建附加组件的最基本任务之一)似乎非常不一致并且几乎不可能用 jpm 实现,每个人都发誓大约有一个20-30 种不同的特定技术,仅适用于特定版本的工具或浏览器。

同样,我什至无法让图标在操作按钮小部件中工作,但我会单独询问。似乎适用于 jpm 运行,但根本不适用于 jpm xpi。

我正在使用 jpm 1.0.7git master 中提取的 git master 仅在几天前,截至撰写本文时。

插件图标不要使用package.json。 将 icon.png 和 icon64.png 文件放在 package.json 文件附近 文件 icon.png 必须具有 48x48 尺寸,icon64.png 必须具有 64x64 尺寸。

发现我的代码有问题。

"icons": {
     ^ -- herein lies the problem

这应该是 icon 单数。用于指定文件位置的各种其他令人困惑的选项仍然存在,但似乎最简单和最干净(目前)的是相对路径。

"icon": {
    "16": "data/icon-16.png",
    "32": "data/icon-32.png",
    "48": "data/icon-48.png",
    "64": "data/icon-64.png"
},

然后 jpm 脚本 (lib/rdf.js:68-69,92) 将根据在 icon.

          <em:iconURL>resource://GUID/data/icon-48.png</em:iconURL>
          <em:icon64URL>resource://GUID/data/icon-64.png</em:icon64URL>