我正在使用WebExtension API编写Firefox附加组件。某些API(例如browser.storage.sync
)要求在附加组件manifest.json
文件中明确声明Add-On ID。
扩展程序的ID,必须是以下之一:
- GUID(Firefox 1.0)
- 如下格式的字符串:extensionname@example.org
后一种格式更容易生成和操作。 Firefox 1.5已检查以确保您的ID属于一种格式 或另一个并拒绝安装格式不正确的附加组件 IDS。但是,您不应该使用真实的电子邮件地址作为您的ID 它可能会吸引垃圾邮件。
关于我可以提供什么类型的字符串,文档不是很清楚。是吗......
等
因为我必须明确声明ID以使用browser.storage.sync
,所以我无法依赖Firefox for WebExtensions提供的automatic ID。
Firefox中显式声明的附加ID有哪些约定?
答案 0 :(得分:3)
实际要求是ID matches the following RegExp:
var gIDTest = /^(\{[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\}|[a-z0-9-\._]*\@[a-z0-9-\._]+)$/i
使用GUID或近似电子邮件地址的内容是MDN documentation on Install Manifests(在旧版附加组件中使用)中明确规定的要求。它是一个或另一个是由Firefox 1.5中的Firefox代码中的检查强制执行的。上面的RegExp可以描述为:
{8digits-4digits-4digits-4digits-12digits}
或@
之后至少有1个字符的单个@
的字符串。
@
格式的所有字符都必须与/[a-z0-9-\._]/i
匹配(单@
除外)。@
格式在@
@
格式不一定是有效的电子邮件地址。它不必拥有有效的域名。它甚至不需要是一个有效的电子邮件地址。它只需匹配RegExp。它是recommended that if you are selecting an ID, that you use the @
format, not a GUID。
对于@
格式,它通常用作[some ID/name for extension]@[something representing the developer]
。虽然@
之前和之后的部分往往具有看似可能是username @ domain的格式,但我已经看到了附加ID,其中"用户名"是空白和/或"域"是一个单词。例如,@a
将是有效的ID。
除格式要求外,还要求:
至于提交给Mozilla的所有附加组件中的独特之处:当您第一次尝试将其提交给Mozilla进行签名时,您将会发现它是否是唯一的。如果它已经存在,则必须更改它才能成功提交加载项。