2015-02-11 51 views
2

比方说,我想同时在三个应用程序中使用单个叠加层。我应该指定清单文件中的哪一行适用于哪个应用程序?这里是什么,我现在有一个例子:使用相同的XUL覆盖图时,我应该指定应用程序吗?

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} 

是否安全,省略应用程序标记,或者是要为明确的在我的例子中,最好的做法?

+0

我推荐firefox-addon标签,这是人们通常使用的标签。 – Noitidart 2015-02-12 01:38:55

+0

如果您不指定应用程序标志,它将不起作用。你应用标志是什么意思?这就是我的install.rdf的样子:https://github.com/Noitidart/MouseControl/blob/master/chrome.manifest – Noitidart 2015-02-12 01:39:37

+0

@Noitidart:谢谢你的建议!应用程序标志是这样的字符串:'application = {92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}'。当您在示例中向右滚动时,您可以看到它们。它可以在没有它们的情况下工作,可能是因为我的覆盖层对于所有浏览器都是一样的,我将它应用于'browser.xul'和'navigator.xul',每个浏览器只出现在一个浏览器中。我不确定它是否有效,因为它是按照这种方式设计的,还是它在内部引发错误。 – JohnEye 2015-02-12 20:28:02

回答

4

这取决于你的加载项实际上是通过em:targetApplication支持的。

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

唯一的情况是我可以想象它实际上会有意义的地方,如果你的插件支持两个不同的应用程序,一个chrome://browser/content/browser.xul但你只想覆盖Firefox而不是其他应用程序。在那里你需要明确。

+1

我仍然不确定是否省略应用程序标志是一个干净的解决方案,你认为你可以澄清?当然,它有效,但由于我要将我的更改贡献给某人的GitHub存储库,所以质量是必须的。 – JohnEye 2015-02-14 23:45:02

+1

这是一个味道和清晰的问题。所以最终这是一个意见问题。在我看来,已经开发了大量的附加组件,并且审阅了数以千计的AMO提交内容,这里绝对没有必要明确说明,并且明确性也使得清单更不可读。我在这个KISS上。 – nmaier 2015-02-15 00:21:12

+0

Whats KISS ... O_O – Noitidart 2015-02-15 09:31:55

相关问题