2011-09-07 66 views
0

随着新的Firefox的出现,越来越多的图书馆随着与我们交互的XPom界面不断变化。我们在10个dll并且在增加,每个都有近2M的大小。MSI根据FireFox的要求安装dll

这个大小是一些用户的关注。我们正在考虑重组库来分离它们之间的通用部分,我们正在考虑如何在支持版本升级的同时减少磁盘空间。

例如,用户安装了FireFox 3.6和4.0,当我们的产品安装时,我们为每个版本安装一个dll。当Firefox 4.0升级(比如6.0)时,我们现在可以从msi安装缺少的DLL for 6.0支持。

关于如何实现这一点的任何想法? 我们担心没有理由吗?

我的第一个想法是'AllowAdvertise',当FF尝试按照chrome的指示加载dll时,它会导致安装,但它似乎不起作用。

回答

2

我的第一反应是建议你从XPCOM走向js-ctypes。毕竟,这是Mozilla推动扩展开发人员的方向(例如,参见Wladimir Palant's comments)。如果你的二进制代码中没有任何绝对肯定需要使用XPCOM的东西,那么当需要通过js-ctypes发布一个与JS接口的DLL时,你会更加高兴。

+0

感谢您的链接,因为这是非常有帮助的。我想补充一点,我们正在考虑重组的一种方式是将它的一半左右移到基于JavaScript的组件,但这不是一个简单的任务。 –

2

我想你的扩展是仅支持Windows的,所以支持多种平台不是问题。一种可能的短期解决办法:

  • 有一个单独的扩展包为每个火狐版本,将其标记与此火狐版本兼容仅(例如minVersion 4.0和maxVersion 4. *)。
  • 安装扩展程序后,安装与用户安装的Firefox版本兼容的版本。
  • 确保您的分机有一个updateURL条目指向您的服务器。在URL中有%APP_VERSION%是很重要的。
  • 请务必测试Firefox beta版,并准备下一个Firefox版本的新扩展版本(发布版本号为scheduled on Tuesdays every 6 weeks,下一版本将于9月27日发布)。
  • 根据所使用的Firefox版本,配置您的服务器以指示不同的包作为更新。因此,使用%APP_VERSION% 4.0.1更新检查将发送到extension-ff4.xpi%APP_VERSION% 6.0将得到extension-ff6.xpi

当应用程序更新时,Firefox将始终检查扩展更新。如果你可以给它一个兼容的更新,它会安装它。但是,每六周准备一个新软件包需要很多努力,我想你想重构你的代码/尽快转移到js-ctypes。哦,我认为你需要忽略一些用户安装了多个Firefox版本的情况。

+0

好的信息。不幸的是,对于我们的大多数客户来说,这似乎不是一种选择,不允许员工直接更新他们的软件。 –

+0

@Greg:更新始终安装在用户的浏览器配置文件中,即使扩展最初安装在其他位置。所以应该不会有任何权限问题。当然,如果用户不被允许更新他们的扩展,这对你无能为力。 –