我为一个基于云的产品开发了一个chrome插件。对于Chrome,我们使用了第三个部分JS库,如BackboneJS等。现在我必须设计一个Firefox扩展,我试图弄清楚我们可以重用多少代码。显然,在Mozilla Developer网站上花费了几个小时,似乎对于Firefox扩展我们必须使用XUL作为UI。不确定我们是否可以使用Chrome应用程序中的html和javascript函数进行Firefox扩展,或者估算工作量的方法是什么。我的理解是我们必须从零开始做,因为像FF中的Chrome我们没有背景页等概念。
答案 0 :(得分:1)
没有任何内在因素可以阻止您在HTML / JS中实现UI。您可能必须将其包装在<iframe>
内的XUL <browser>
或<window>
(可能是其他元素)中(Firefox将打开纯HTML)。
关于扩展的关键问题是它们在提升的安全上下文与网页中执行。因此,它们能够在浏览器和用户系统中影响更大范围的事物。使用<iframe>
或<browser>
元素时,它们具有属性type
,默认情况下,内容在提升的安全性上下文中运行。默认值为type="chrome"
,这使得打开的内容位于扩展程序的更高安全性上下文中。
MDN提供的有关安全性问题的其他文档,涉及<iframe>
或<browser>
元素中未提供来自您的扩展程序分发的内容:Security best practices in extensions和Displaying web content in an extension without security issues
关于您的JavaScript:您应该可以重复使用大量的JavaScript。至少,逻辑。显然,在完成与标准文档未涵盖的浏览器方面的接口方面会有更大的差异(例如,DOM操作应该非常接近,就像网页JS一样)。