20

是否可以将 Google Chrome 扩展程序转换为 Firefox 或 Safari 浏览器扩展程序?

4

6 回答 6

17

Chrome 和 Firefox 插件本质上都基于 JavaScript 核心,但 Firefox 在设计上更具可扩展性。Gecko 引擎和 XUL(Mozilla 的 XML 用户界面语言)允许您在使用扩展程序时拥有更大的自由度,而 Chrome(和 WebKit)则尝试对其“应用程序”的工作进行沙箱处理。

所以,是的,Chrome 扩展几乎肯定可以变成 Firefox 扩展,只要 Firefox 为您尝试做的任何事情提供 API。只需将 Chrome 的 DevTools SDK 特定内容替换为Firefox 的 Jetpack SDK 特定内容(例如系统调用或您在扩展程序中执行的任何其他操作)。

另一方面,相反的情况并不总是正确的。根据 Firefox 扩展中的功能,它不能总是转换为在 Chrome 中工作。

于 2013-08-01T07:24:43.540 回答
9

我为 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

https://github.com/jetpack-labs/chrome-tailor-jetpack

于 2015-05-16T06:56:48.257 回答
6

Mozilla 正在开发他们的WebExtensions API。他们说使用 API Porting 插件进出其他浏览器应该更容易。

于 2015-10-31T12:23:13.433 回答
1

自 Safari 14/MacOS 11/MacOS 10.16/2020 年起,Safari 将采用术语“Safari Web 扩展”下的 Chrome/Firefox 扩展 API 。这里有一个转换器描述。

于 2020-08-17T10:29:56.527 回答
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 提供的扩展。

于 2019-10-15T10:01:18.147 回答
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/

于 2020-09-10T11:01:04.187 回答