23

我正在为 Firefox 开发(又一个)密码管理器插件。我的附加组件需要:

  • 向每个密码字段添加两个上下文菜单项。
  • 选择菜单项时打开对话框或浮动面板。
  • 访问特定 XPCOM 组件的特定方法。
  • 填写密码字段。
  • 包括一个首选项窗口。
  • 与 Firefox 4.0 兼容。

优选地,还:

  • 在 Firefox 3.5 和 3.6 上运行。
    • 一些用户不会更新到最新版本。
    • Firefox 4.0 不能在 PowerPC Mac 上运行。
  • 在 Firefox 4.0 上无需重新启动即可安装。
  • 允许本地化。

我已经尝试过 Add-on SDK(以前称为 Jetpack),它使开始开发变得非常容易。但是,我发现 HTML 无法轻松创建“本地外观”对话框,而且 SDK 相当重量级。(构建一个简单的扩展需要很多千字节;其中包括一个 XPCOM 组件!)

使用 Add-on SDK 开发我的 Firefox 扩展有哪些优点和缺点?它准备好进行“严肃的”扩展开发了吗?

4

1 回答 1

22

优点:

  1. Jetpack API为您提到的大多数内容公开了高级 API :

    • 添加两个上下文菜单项
    • 浮动面板
    • 密码管理器 API
  2. 基于 Jetpack 的附加组件无需重启。

  3. 基于 Jetpack 的附加组件是未来的证明,从某种意义上说,高级 API 对于即将到来的 FF 版本将保持不变。

  4. 您也许可以将一些社区开发的模块用于 SDK 未公开的 API。

  5. 如果这不是您计划构建的最后一个扩展,则可以通过构建 4 中提到的第三方模块来重用代码(有关详细信息,请参阅文档)

  6. 对移动 FF 的支持将出现在 Addon-SDK 的 1.0 后版本中,这可能意味着您的扩展可以与移动版本的 FF 兼容,只需最少到零的努力。

  7. Jetpack 带有内置的单元测试框架。

  8. 具有更好的安全模型,这将简化附加审查过程。

  9. Jetpack 支持 commonjs 模块/包,这意味着可以从其他项目中借用一些代码,例如 nodejs。

缺点:

  1. Jetpack 不再支持 FF<4。
  2. 尚不支持本地化。
  3. 没有用于构建偏好面板的 API,但可以作为第三方模块开发并与社区的其他成员共享。
  4. 附加组件将包含具有抽象层的代码,这将增加附加组件的大小(正在进行的工作将通过排除附加组件未使用的文件来减小 xpi 大小)。
于 2011-04-19T16:20:42.460 回答