为什么使用defaults / preferences / * .js vs在JavaScript中设置Firefox Add-on默认值?

时间:2016-04-24 10:29:54

标签: firefox-addon

我想的越多,我想知道为什么有人会打扰使用defaults / preferences / * .js文件来设置默认值,而不是设置JavaScript中的默认值?

某些人正在使用其他人创建的旧的基于XUL / Overlay的附加组件,除了设置JavaScript中的所有默认值之外,它实际上使用了prefs.js文件(如果prefs.js失败了一些莫名其妙的原因?),它基本上在安装后直接将所有首选项放入user-prefs。这让我很困惑,因为在查看about:config中的prefs时,默认值显示为已修改(用户设置)。然后我意识到它无条件地设置了一些默认值(非常大的字符串)。

所以我意识到,我不仅在3个位置(prefs.js,接口和内容脚本)中保持相同的prefs,而且prefs.js文件在很大程度上是多余的,这似乎无缘无故地增加了额外的维护。这看起来很愚蠢,我正在寻找一种更好的方法,只需存储prefs并在一个位置管理它们(这可能就是为什么prefs.js应该专门使用)。

现在,我意识到,这个问题有可能被标记为“意见”,并且可能有也可能没有具体的“正确”答案。但我认为这是一个有效的问题,我想更多地了解使用prefs.js文件的优缺点,而不是在共享JS代码中初始化期间设置所有prefs。我是否可以使用任何性能问题或客观的标准列表来做出此决定? prefs.js机制可能会失败吗?假设它永远不会失败是否安全?它是否更容易在FF 1.0-3.5天内失败?

1 个答案:

答案 0 :(得分:0)

默认偏好设置:

  • 可以在新版本的加载项中更改,而不会覆盖用户明确设置的值。
  • 卸载加载项后,不要弄乱用户的个人资料
  • 位于同一个地方,而不是分散在代码中。很容易看出有什么偏好。它们也出现在about:config中,它允许您为“高级用户”提供“隐藏”首选项的UI。

可惜他们没有让get * Pref API在用户设置值无效的情况下返回默认值,我明白不想在两个位置维护默认值。整个API很久以前就被“冻结”了,最终会与XPCOM的其余部分一起消失,所以这并不重要......