使用附加SDK开发Firefox扩展有哪些优点/缺点?

使用附加SDK开发Firefox扩展有哪些优点/缺点?,firefox,firefox-addon,firefox-addon-sdk,Firefox,Firefox Addon,Firefox Addon Sdk,我正在为Firefox开发(另一个)密码管理器插件。我的加载项需要: 向每个密码字段添加两个上下文菜单项 选择菜单项时打开对话框或浮动面板 访问特定XPCOM组件的特定方法 填写密码字段 包括一个首选项窗口 与Firefox4.0兼容 优选地,还包括: 在Firefox3.5和3.6上运行。 有些用户不更新到最新版本 Firefox4.0不会在PowerPC Mac上运行 在Firefox 4.0上无需重新启动即可安装 允许本地化 我已经尝试过附加SDK(以前称为Jetpack),它

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

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

  • 在Firefox3.5和3.6上运行。
    • 有些用户不更新到最新版本
    • Firefox4.0不会在PowerPC Mac上运行
  • 在Firefox 4.0上无需重新启动即可安装
  • 允许本地化
我已经尝试过附加SDK(以前称为Jetpack),它使开始开发变得非常容易。然而,我发现HTML无法轻松创建“本机外观”对话框,而且SDK相当重。(构建一个简单的扩展需要很多KB;它包括一个XPCOM组件!)

使用附加SDK开发Firefox扩展有哪些优点和缺点?准备好进行“认真”的扩展开发了吗?

优势:
  • Jetpack API公开了您提到的大部分内容:

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

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

  • 您可以将一些用于SDK未公开的API

  • 如果这不是您计划构建的最后一个扩展,那么代码重用是有可能的, 通过构建第三方模块,如第4条所述(详情见文档)

  • 插件SDK的1.0后版本提供了对移动FF的支持,这可能意味着 扩展可以与FF的移动版本兼容,只需最少的努力

  • Jetpack附带内置单元测试框架

  • 具有更好的安全模型,这将简化附加组件审查过程

  • Jetpack支持commonjs模块/包,这意味着可以借用一些代码 来自其他项目,例如nodejs

  • 缺点:
  • Jetpack不再支持FF+1 gozala。这个答案已经有将近2年的历史了,所以现在可能有更多的优点/缺点。Jetpack库从版本21开始就包含在Firefox中,因此,随着支持转向使用内置库,将来可能会导致较小的插件大小。我想本地化支持已经添加。这就是“字典”的意义,对吧?