是否可以将Google Chrome扩展程序转换为Firefox或Safari浏览器扩展程序?
答案 0 :(得分:16)
Chrome和Firefox附加组件基本上都基于JavaScript核心,但Firefox在设计上更具可扩展性。 Gecko引擎和XUL(Mozilla的XML用户界面语言)允许您使用扩展程序进行更大程度的自由,而Chrome(和WebKit)尝试对其“应用程序”的工作进行沙盒化。
所以,是的,Chrome扩展几乎可以成为Firefox扩展,前提是Firefox提供了一个API,无论你想做什么。只需将Chrome的DevTools SDK特定内容替换为Firefox's Jetpack特定于SDK的内容(例如系统调用或您在扩展程序中执行的任何其他操作)。
另一方面,相反的情况并非总是如此。根据Firefox扩展程序中的功能,它无法始终转换为在Chrome中运行。
答案 1 :(得分:8)
我为Safari和Firefox创建了一个Chrome Api。我已经使用这些翻译API将相当大的扩展转换为Safari和Firefox。我已经看到许多人询问浏览器之间转换扩展的可能性,我希望有人可以帮助我用几种方法和任务运行器来补充API以自动化转换。目前有一些手工工作要做。
https://github.com/kritollm/chrome-extension-api-for-safari-and-firefox
在我第一次写这篇文章之后,我发现了另外两个非常相似的项目。
https://code.google.com/p/adblockforchrome/source/browse/trunk/port.js和
答案 2 :(得分:6)
Mozilla正在研究他们的WebExtensions API。他们说使用API Porting附加组件与其他浏览器的连接应该更容易。
答案 3 :(得分:1)
从Safari 14 / MacOS 11 / MacOS 10.16 / 2020年开始,Safari在"Safari Web Extensions"术语下采用Chrome / Firefox扩展API。 here中有一个转换器。
答案 4 :(得分:0)
GitHub上有一个积极维护的项目,允许使用Chrome扩展API编写Safari扩展,请参见https://github.com/avast/topee。
虽然Google Chrome,Firefox和Edge共享相同的扩展API,但Safari扩展却朝着不同的方向发展,要求开发人员使用不同的API集,并且部分使用Swift代替JavaScript。
Topee项目提供了适用于Safari的Google Chrome扩展API,可让您在所有浏览器上运行单个代码库。
该API已经足够完整,可以在生产环境中运行,例如,Avast Passwords for Mac随附的扩展名。
答案 5 :(得分:0)
Mozilla现在提供了此工具https://www.extensiontest.com,以测试chrome扩展程序与Firefox的兼容性。提交.crx文件时,它会为您提供有关发现的兼容性问题的报告。
您可以在Chrome浏览器中创建.crx文件
更多资源
chrome与Mozilla不兼容:
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Chrome_incompatibilities
移植Google Chrome扩展程序: https://extensionworkshop.com/documentation/develop/porting-a-google-chrome-extension/