Firefox附加组件ID约定

时间:2017-07-27 00:33:13

标签: javascript firefox firefox-addon firefox-webextensions

我正在使用WebExtension API编写Firefox附加组件。某些API(例如browser.storage.sync)要求在附加组件manifest.json文件中明确声明Add-On ID

documentation for IDs州:

  

扩展程序的ID,必须是以下之一:

     
      
  • GUID(Firefox 1.0)
  •   
  • 如下格式的字符串:extensionname@example.org
  •   
     

后一种格式更容易生成和操作。   Firefox 1.5已检查以确保您的ID属于一种格式   或另一个并拒绝安装格式不正确的附加组件   IDS。但是,您不应该使用真实的电子邮件地址作为您的ID   它可能会吸引垃圾邮件。

关于我可以提供什么类型的字符串,文档不是很清楚。是吗......

  • 任何有效的电子邮件地址?
  • "看起来像#34; something@something.something?
  • a@b.c.d.e.f.g怎么样?
  • 它应该与扩展本身相关吗?
  • 它应该拥有我拥有的域名还是可以是任何域名?

因为我必须明确声明ID以使用browser.storage.sync,所以我无法依赖Firefox for WebExtensions提供的automatic ID

Firefox中显式声明的附加ID有哪些约定?

1 个答案:

答案 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可以描述为:

  1. 必须使用{8digits-4digits-4digits-4digits-12digits}
  2. 格式的十六进制数字GUID
  3. 包含@之后至少有1个字符的单个@的字符串。
    1. @格式的所有字符都必须与/[a-z0-9-\._]/i匹配(单@除外)。
    2. @格式在@
    3. 之前可以包含零个或多个字符
    4. @格式不一定是有效的电子邮件地址。它不必拥有有效的域名。它甚至不需要是一个有效的电子邮件地址。它只需匹配RegExp。
  4. 它是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。

    ID必须是唯一的

    除格式要求外,还要求:

    • 在已提交给Mozilla的所有加载项中,ID必须是唯一的(任何人都可以)。

    至于提交给Mozilla的所有附加组件中的独特之处:当您第一次尝试将其提交给Mozilla进行签名时,您将会发现它是否是唯一的。如果它已经存在,则必须更改它才能成功提交加载项。