2011-04-18 57 views
23

我正在开发(又一个)Firefox的密码管理器插件。我的附加组件需要:使用附加SDK来开发我的Firefox扩展有什么优点/缺点?

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

优选地,还:在Firefox 3.5和3.6

  • 运行。
    • 有些用户不更新到最新版本。
    • Firefox 4.0不能在PowerPC Mac上运行。
  • 在Firefox 4.0上安装时不重启。
  • 允许本地化。

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

使用附加SDK来开发我的Firefox扩展有什么好处和缺点?它是否准备好“严重”的扩展开发?

回答

22

优点:

  1. Jetpack的API公开high level APIs对于大多数的你所提到的事情:

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

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

  4. 对于未由SDK公开的API,您可以使用一些community developed modules

  5. 如果这不是你打算建立最后的扩展有通过构建第三方模块,在4所提到的人(见文档的详细信息)

  6. 用于支持代码重用, 潜在移动FF即将推出后1.0版的Addon-SDK,这可能意味着您的 扩展可以与FF的移动版本兼容,只需极少的零工作量。

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

  8. 有一个更好的安全模型,这将缓解附加评论过程。

  9. Jetpack支持commonjs modules/packages,这意味着一些代码可以从其他项目(例如nodejs)借用 。

缺点:

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

+1 gozala。这个答案已经有近2年的历史了,所以现在可能会有更多的优点/缺点。 – fedmich 2013-04-05 10:08:10

+0

由于支持转向使用内置库,Jetpack库现在包含在Firefox本身的版本21中,因此未来可能会导致更小的附加组件尺寸。 – JAB 2013-06-19 16:35:13

+0

我认为已经添加了对本地化的支持。这就是“字典”的意义所在,对吗? – Lori 2013-08-29 17:33:19

相关问题