如何使我的firefox插件与将来的版本兼容

时间:2012-01-03 11:00:47

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

我的网络应用程序中有一个功能,需要一个小的浏览器插件才能工作。 99%的应用程序是ASP.NET + javascript,我们没有编写浏览器插件的技能,也没有培训某人维护它的兴趣,因此我使用自由职业者网站取得了巨大成功,获得了一个有效的firefox插件-in /附加/扩展。

然而,新的Firefox快速发布计划使整个计划陷入混乱,因为每个新版本的Firefox似乎都需要一个新的扩展。这不仅与RDF文件中的em:maxVersion版本有关;该插件实际上拒绝加载,因此似乎每隔6周我将委托一名自由职业者更新下一版Firefox的插件。根据我的有限理解,这是因为每个版本的壁虎都与前一版本不兼容。

我无法帮助,但我想我在这里遗漏了一些东西。例如,IE插件是在2005年左右为IE6编写的,我们从未需要触摸它;它仍适用于IE9。是不是所有firefox插件都必须每6周重写一次,还是我做错了什么?

插件的基本功能是使用Windows计时器轮询共享内存,然后遍历DOM以查找具有特定javascript函数的页面,然后调用该页面。

所以我的问题是,有没有什么方法可以让firefox插件具有更合理的生命周期(即一年或更长时间),或者我不得不在每次新版本的时候发布新的插件火狐出来了?

1 个答案:

答案 0 :(得分:2)

使用二进制代码(c / c ++)时,避免与Firefox插件兼容性问题的最佳方法是使用JSCtypes。以下是最近的概述:

http://blog.mozilla.com/dwitte/2010/03/12/extension-authors-browser-hackers-meet-js-ctypes/

以下是关于JSCtypes的MDN文档的入口点:

https://developer.mozilla.org/en/js-ctypes

为了避免这种兼容性方面的长期问题,我会将您的C ++代码端口设置为xpcom中的jsctypes,这对您正在使用的承包商来说是一项艰难的要求。