【问题标题】:Should I specify the application when using the same XUL overlay?使用相同的 XUL 覆盖时是否应该指定应用程序?
【发布时间】:2015-04-11 06:44:48
【问题描述】:

假设我想同时在三个应用程序中使用一个叠加层。我应该指定清单文件中的哪一行适用于哪个应用程序?这是我目前拥有的示例:

overlay chrome://browser/content/browser.xul chrome://myaddon/content/commonOverlay.xul application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
overlay chrome://messenger/content/mailWindowOverlay.xul chrome://myaddon/content/commonOverlay.xul application={3550f703-e582-4d05-9a08-453d09bdfdc6}
overlay chrome://navigator/content/navigator.xul chrome://myaddon/content/commonOverlay.xul application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}

省略应用程序标志是否安全,或者最好像我的示例中那样明确?

【问题讨论】:

  • 我推荐 firefox-addon 标签,这是人们通常使用的标签。
  • 如果您不指定应用程序标志,它将无法工作。你说的应用程序标志是什么意思?这就是我的 install.rdf 的样子:github.com/Noitidart/MouseControl/blob/master/chrome.manifest
  • @Noitidart:感谢您的建议!应用程序标志是这样的字符串:application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}。在我的示例中向右滚动时可以看到它们。但是没有它们它也可以工作,可能是因为我的覆盖对于所有浏览器都是相同的,并且我将其应用于browser.xulnavigator.xul,它们中的每一个都只存在于一个浏览器中。我不确定它是否有效,因为它是这样设计的,或者它是否在内部引发错误。

标签: firefox-addon xul thunderbird seamonkey


【解决方案1】:

这取决于您的插件通过 em:targetApplication 实际支持的内容。

通常不需要application=,因为没有歧义。

我能想象它真正有意义的唯一情况是,如果您的插件支持两个不同的应用程序,它们都具有例如chrome://browser/content/browser.xul 但您只想覆盖 Firefox 而不是其他应用程序。你需要明确。

【讨论】:

  • 我仍然不确定省略应用程序标志是否是一个干净的解决方案,你认为你可以澄清一下吗?当然,它有效,但由于我要将我的更改贡献给某人的 GitHub 存储库,所以质量是必须的。
  • 这是一个品味和明确性的问题。所以最终还是见仁见智。而且在我看来,已经开发了相当多的附加组件并审查了 AMO 的数千份提交,这里绝对没有必要明确,而且明确也会使清单的可读性降低。我正在接吻这个。
  • @nmaier:非常感谢!
  • @Noitidart:意思是“保持简单,愚蠢”:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-10
  • 2011-04-28
  • 2013-08-05
  • 2012-08-29
相关资源
最近更新 更多