我正在使用 WebExtension API 编写 Firefox 附加组件。一些API(例如browser.storage.sync)需要一个附加 ID在附加组件中明确声明manifest.json
file.
The ID 的文档 states:
扩展的 ID,必须是以下之一:
- GUID(火狐1.0)
- 字符串格式如下:[电子邮件受保护]
后一种格式更容易生成和操作。
Firefox 1.5 进行检查以确保您的 ID 属于一种格式
或其他,并将拒绝安装格式错误的附加组件
id。但是,您不应使用真实的电子邮件地址作为您的 ID,因为
它可能会吸引垃圾邮件。
关于我可以提供什么样的字符串,文档不是很清楚。是吗...
- 有有效的电子邮件地址吗?
- 任何“看起来像”的字符串[电子邮件受保护]?
- 怎么样[电子邮件受保护]?
- 它应该与扩展本身相关吗?
- 它应该有我拥有的域名还是可以是任何域名?
etc.
因为我必须显式声明 ID 才能使用browser.storage.sync
,我无法依赖自动识别可以由 Firefox for WebExtensions 提供。
Firefox 中显式声明的附加组件 ID 有哪些约定?
实际的要求是ID 匹配以下正则表达式:
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 文档(用于旧版附加组件)。从 Firefox 1.5 开始,它是通过在 Firefox 代码中放置的检查来强制执行的。上面的正则表达式可以描述为:
- 必须是一个GUID在格式中使用十六进制数字
{8digits-4digits-4digits-4digits-12digits}
or
- A string containing a single
@
with at least 1 character after the @
.
- 中的所有字符
@
格式必须匹配/[a-z0-9-\._]/i
(除了单@
).
- The
@
格式之前可以有零个或多个字符@
- The
@
格式不需要是有效的电子邮件地址。它不必具有有效的域。它甚至不需要是有效的电子邮件地址。它只需要匹配正则表达式即可。
It's 建议如果您选择 ID,请使用@格式,而不是 GUID.
For the @
格式,一般用作[some ID/name for extension]@[something representing the developer]
。而之前和之后的部分@
往往有一种看起来像用户名@域的格式,我见过附加 ID,其中“用户名”为空和/或“域”是单个单词。例如,@a
将是一个有效的ID。
ID必须是唯一的
除了格式要求外,还有以下要求:
- 该 ID 在已提交给 Mozilla 的所有附加组件中必须是唯一的(由任何人提交)。
至于它在提交给 Mozilla 的所有附加组件中是唯一的:当您第一次尝试将其提交给 Mozilla 进行签名时,您会发现它是否是唯一的。如果它已经存在,您将必须更改它才能成功提交您的附加组件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)