Преобразование расширения Google Chrome в расширение Firefox или Safari

Можно ли преобразовать расширение Google Chrome в расширение для браузера Firefox или Safari?

3 ответа

Надстройки для Chrome и Firefox в основном основаны на ядре JavaScript, но Firefox по своему дизайну гораздо более расширяем. Движок Gecko и XUL (язык пользовательского интерфейса XML Mozilla) предоставляют гораздо большую степень свободы в том, что вы можете делать со своим расширением, в то время как Chrome (и WebKit) пытаются изолировать работу его "приложений".

Итак, да, расширение Chrome почти наверняка можно превратить в расширение Firefox, при условии, что Firefox предоставляет API для всего, что вы пытаетесь сделать. Просто замените содержимое Chrome DevTools SDK на содержимое Firefox для Jetpack SDK (например, системные вызовы или что-то еще, что вы делаете в своем добавочном номере).

С другой стороны, обратное не всегда верно. В зависимости от функциональности расширения Firefox его не всегда можно конвертировать для работы в Chrome.

Я создал Chrome Api для Safari и Firefox. Я преобразовал довольно большое расширение для Safari и Firefox, используя эти API-интерфейсы перевода. Я видел, что многие люди спрашивают о возможностях преобразования расширений между браузерами, и я надеюсь, что кто-то может помочь мне дополнить 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

Mozilla работает над своим API WebExtensions. Говорят, что с API надстройки портирования в и из других браузеров должно быть проще.

Mozilla теперь предоставляет этот инструмент https://www.extensiontest.com для проверки совместимости расширения Chrome с Firefox. Когда вы отправляете файл.crx, он дает вам отчет об обнаруженных проблемах совместимости.

Вы можете создать файл.crx в браузере Chrome

Дополнительные ресурсы о
несовместимости 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/

Начиная с Safari 14/MacOS 11/MacOS 10.16/ 2020 года, Safari принимает API-интерфейсы расширений Chrome/Firefox под термином "Веб-расширения Safari". Существует преобразователь описано здесь.

На GitHub есть активно поддерживаемый проект, позволяющий использовать API расширений Chrome для написания расширений Safari, см. https://github.com/avast/topee.

В то время как Google Chrome, Firefox и Edge используют один и тот же API расширений, расширения Safari развиваются в другом направлении, требуя от разработчиков использования другого набора API и частично Swift вместо JavaScript.

Проект Topee предоставляет API расширения Google Chrome для Safari, что позволяет запускать единую базу кода во всех браузерах.

API достаточно полный для работы в производственной среде, например расширение, поставляемое с Avast Passwords для Mac.

Другие вопросы по тегам