【问题标题】:How to handle different versions of a Firefox Addon in different Firefox versions如何在不同的 Firefox 版本中处理不同版本的 Firefox 插件
【发布时间】:2014-08-16 03:14:46
【问题描述】:

我为 Firefox 编写了一个插件。在 Firefox 插件商店的“后端视图”中,我现在看到一条消息,即我的插件从 30.0 版开始不再与 Firefox 兼容(见截图 1)。

对新 API 的快速浏览告诉我要更改什么,所以我照做了。

但是我怎样才能保证,使用 Firefox 29.0 或更早版本的用户仍将获得“旧”版本的插件,而使用 Firefox 30.0 及更高版本浏览的用户可以获得我更新的插件?

商店后端会做出这样的选择吗?因为在上传新插件时,我可以设置支持的 Firefox 版本(见截图2)。

以及如何增加插件ID?现在它设置为 1.0.0。我应该使用 1.0.1 还是应该留一些“空间”来更新“旧”版本并从 2.0.0 开始?

我很困惑。有人可以帮我吗?提前致谢!

再见 尼尔斯

【问题讨论】:

  • 你拼错了“Nils”;p
  • 这个问题似乎离题了,因为这不是 AMO 支持网站。更适合的地方是the AMO forums、AMO 编辑邮件列表amo-editors@mozilla.org#amo 和/或#addons IRC 频道irc.mozilla.org
  • 您必须修复哪些代码才能使其与未来版本兼容?例如,在我的插件“ntHotkey”中,新标签页上元素的 id 发生了变化。所以我去了if (oldId) { } else { //use new id }。不要制作和支持多个并行版本。除非它完全不同,你必须作为最后的 resrot。只需制作一个检查并使用适当代码的版本。无需在 AMO/store 后端做任何事情。告诉人们你的旧版本无法在 FF30+ 中运行。
  • 感谢您的回复!那么,一个针对浏览器版本的 if-else-statements 代码基础是要走的路吗?

标签: firefox firefox-addon store compatibility versioning


【解决方案1】:

有时这些不兼容通知是误报 (this seems especially the case with version 30),有时会因为 Mozilla 运行批处理测试等而自发解决。如果兼容性问题是(比如说)小部件与 ActionButtons,有办法通过try...catch 结构来适应两种级别的 FF 版本支持。

【讨论】:

  • 嘿,它实际上是小部件 vs. ActionButton。你现在怎么样了? :)。那么,var widget; try {widget = require('sdk/widget');} catch() {widget = require('sdk/ui')}(在伪代码中,我不知道确切的 require 语句)可以解决问题吗?
  • 我会在ActionButton API 上使用try,除非偏好是小部件,在这种情况下,catch 会在未来可能的 FF 版本中出现,其中widget实际上将停止支持。
【解决方案2】:

这是 AMO 开发人员通过邮件回复的内容:

AMO 应根据浏览器版本提供正确的版本 你正在使用。在最坏的情况下,用户可以点击所有版本 链接并查看可以安装的过去版本。

所以我上传了更新后的扩展并将浏览器兼容性设置为 Firefox 30.0 及更高版本。

【讨论】:

    【解决方案3】:

    如果你想要Chrome registration - appversion,你可以为不同的FF版本包含单独的代码

    这是 GreaseMonkey chrome.manifest:

    的示例
    overlay    chrome://browser/content/scratchpad.xul chrome://greasemonkey/content/scratchpad-overlay.xul appversion<23.0
    overlay    chrome://browser/content/devtools/scratchpad.xul chrome://greasemonkey/content/scratchpad-overlay.xul appversion>=23.0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-19
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      相关资源
      最近更新 更多