实施Firefox扩展与实现Chrome插件

时间:2014-09-23 21:51:22

标签: firefox google-chrome-extension

我为一个基于云的产品开发了一个chrome插件。对于Chrome,我们使用了第三个部分JS库,如BackboneJS等。现在我必须设计一个Firefox扩展,我试图弄清楚我们可以重用多少代码。显然,在Mozilla Developer网站上花费了几个小时,似乎对于Firefox扩展我们必须使用XUL作为UI。不确定我们是否可以使用Chrome应用程序中的html和javascript函数进行Firefox扩展,或者估算工作量的方法是什么。我的理解是我们必须从零开始做,因为像FF中的Chrome我们没有背景页等概念。

1 个答案:

答案 0 :(得分:1)

没有任何内在因素可以阻止您在HTML / JS中实现UI。您可能必须将其包装在<iframe>内的XUL <browser><window>(可能是其他元素)中(Firefox将打开纯HTML)。

关于扩展的关键问题是它们在提升的安全上下文与网页中执行。因此,它们能够在浏览器和用户系统中影响更大范围的事物。使用<iframe><browser>元素时,它们具有属性type,默认情况下,内容在提升的安全性上下文中运行。默认值为type="chrome",这使得打开的内容位于扩展程序的更高安全性上下文中。

MDN提供的有关安全性问题的其他文档,涉及<iframe><browser>元素中未提供来自您的扩展程序分发的内容:Security best practices in extensionsDisplaying web content in an extension without security issues

关于您的JavaScript:您应该可以重复使用大量的JavaScript。至少,逻辑。显然,在完成与标准文档未涵盖的浏览器方面的接口方面会有更大的差异(例如,DOM操作应该非常接近,就像网页JS一样)。