使用Add-on SDK开发我的Firefox扩展有哪些优点/缺点?

时间:2011-04-18 21:34:39

标签: firefox firefox-addon firefox-addon-sdk

我正在为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扩展有哪些优缺点?它是否已准备好进行“严肃”的扩展开发?

1 个答案:

答案 0 :(得分:22)

优点:

  1. Jetpack API为您提到的大部分内容公开了high level APIs

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

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

  4. 您可以将一些community developed modules用于SDK未公开的API。

  5. 如果这不是您计划构建的最后一个扩展,则可能会重用代码, 通过将第三方模块构建为4中提到的模块(详见文档)

  6. 支持移动FF的是1.0版本的Addon-SDK,这可能意味着你的 扩展可以与移动版本的FF兼容,只需极少的努力。

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

  8. 拥有更好的安全模型,可以简化附加审核流程。

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

  10. 缺点:

    1. Jetpack不再支持FF< 4。
    2. 尚未支持本地化。
    3. 没有用于构建首选项面板的API,但可以作为第三方模块开发并共享 与社区其他成员一起。
    4. 加载项将包含带有抽象层的代码,这将增加加载项的大小(有 通过排除附加组件未使用的文件来减少xpi大小的正在进行的工作。