2014-09-23 67 views
2

我已经为基于云的产品之一的铬插件工作。对于The Chrome,我们已经使用了第三方JS库(如BackboneJS等)。现在我必须设计一个Firefox扩展,我试图弄清楚我们可以重用多少代码。显然,Mozilla开发者网站花费了几个小时,对于Firefox扩展来说,我们必须将XUL用于UI。不确定我们是否可以使用Chrome App的HTML和JavaScript函数来实现Firefox扩展,或者估算工作量的方法是什么。我的理解是我们必须从头开始,因为像FF中的Chrome我们没有背景页等概念。实施Firefox扩展与实施Chome插件

回答

1

没有什么固有的东西阻止你在HTML/JS中实现UI。您可能必须将其封装在<window>(Firefox将打开纯HTML)中的XUL <iframe><browser>(可能包含其他元素)中。

关于扩展的关键问题是它们在高级安全上下文中执行,而不是在网页上执行。因此,他们有能力在浏览器和用户系统中影响更大范围的事物。当使用<iframe><browser>元素时,它们具有属性type,该属性默认使内容在提升的安全上下文中运行。默认值为type="chrome",这使得打开的内容位于扩展的较高安全上下文中。 Security best practices in extensionsDisplaying web content in an extension without security issues

至于你的JavaScript:从MDN关于与开放内容安全关切<iframe>,或者没有从您的分机分配来源<browser>元素

附加文档,您应该能够重新使用大量的它。至少,逻辑。显然,如何完成与标准文档中没有涉及的浏览器相关的接口(例如,DOM操作应该非常接近,就像网页JS一样),将会出现更大的差异。

+0

更具体地说,当我将Chrome扩展的体系结构与Firefox扩展进行比较时,我没有在Firefox中找到与Chrome等效的背景页面。 – sidd 2014-09-24 18:20:49

+0

有很多方法可以用来完成一个始终运行的脚本。如何做到这一点取决于多个考虑因素。至少,你正在做什么[附加](https://developer.mozilla.org/en-US/Add-ons)([Overlay](https://developer.mozilla.org/en -US/Add-ons/Overlay_Extensions),[Bootstrapped](https://developer.mozilla.org/en-US/Add-ons/Bootstrapped_extensions)或[Add-on SDK](https://developer.mozilla .org/en-US/Add-ons/SDK))以及您想要代码执行的操作。 – Makyen 2014-09-24 23:34:08

+0

我正在遵循附加SDK的步骤来构建扩展。 – sidd 2014-09-25 04:28:37