google-chrome-extension
Портирование в / из Firefox
Поиск…
замечания
Если вы используете версию Firefox до 48, вам также понадобится дополнительный ключ в
manifest.json
называемый приложениями:
"applications": {
"gecko": {
"id": "[email protected]",
"strict_min_version": "42.0",
"strict_max_version": "50.*",
"update_url": "https://example.com/updates.json"
}
}
Замечания:
С выпуском Firefox 48 расширение подписей больше не может быть отключено в сборках релизов и бета-каналов с использованием предпочтений. Как было указано, когда было объявлено о подписании подписки, мы публикуем специализированные сборки, которые поддерживают это предпочтение, поэтому разработчики могут продолжать тестировать код, из которого генерируются бета-версии и выпуски.
Статус WebExtensions
:
В настоящее время WebExtensions находятся в экспериментальном альфа-состоянии. Из Firefox 46 вы можете публиковать WebExtensions для пользователей Firefox, как и любое другое дополнение. Мы стремимся к первой стабильной версии в Firefox 48.
UPD : Firefox 48 выпущен 02.08.2016.
Ссылки:
Статус поддержки API - список API и их статус.
WebExtensions - JavaScript API, ключи manifest.json, учебные пособия и т. Д.
Портирование через WebExtensions
Прежде чем говорить о переносе расширений Firefox с / на, нужно знать, что такое WebExtensions
.
WebExtensions
- это платформа, представляющая API для создания расширений Firefox .
Он использует ту же архитектуру расширения, что и Chromium. В результате этот API во многих отношениях совместим с API в Google Chrome и Opera (Opera, основанный на Chromium). Во многих случаях расширения, разработанные для этих браузеров, будут работать в Firefox с небольшими изменениями или даже без них.
MDN рекомендует использовать WebExtension
для новых расширений:
В будущем WebExtensions станет рекомендуемым способом разработки надстроек Firefox, а другие системы будут устаревать.
Ввиду вышеизложенного, если вы хотите расширять порт в Firefox , вы должны знать, как было написано расширение.
Расширения для Firefox могут быть основаны на WebExtension
, Add-on SDK
или XUL
.
Совместимые расширения на основе WebExtension
При использовании WebExtension
необходимо просмотреть список несовместимостей , поскольку некоторые функции поддерживаются полностью или частично, другими словами, нужно проверить свой manifest.json
. manifest.json
.
Он также позволяет использовать одно и то же пространство имен :
В это время все API-интерфейсы доступны через пространство имен chrome. *. Когда мы начнем добавлять наши собственные API-интерфейсы, мы добавим их в пространство имен браузера. *. Разработчики смогут использовать обнаружение функций, чтобы определить, доступен ли API в браузере. *.
Простое расширение, которое может работать в Firefox и Google Chrome
manifest.json
:
{
"manifest_version": 2,
"name": "StackMirror",
"version": "1.0",
"description": "Mirror reflection of StackOverflow sites",
"icons": {
"48": "icon/myIcon-48.png"
},
"page_action": {
"default_icon": "icon/myIcon-48.png"
},
"background": {
"scripts" : ["js/background/script.js"],
"persistent": false
},
"permissions": ["tabs", "*://*.stackoverflow.com/*"]
}
background
скрипт:
function startScript(tabId, changeInfo, tab) {
if (tab.url.indexOf("stackoverflow.com") > -1) {
chrome.tabs.executeScript(tabId,
{code: 'document.body.style.transform = "scaleX(-1)";'}, function () {
if (!chrome.runtime.lastError) {
chrome.pageAction.show(tabId);
}
});
}
}
chrome.tabs.onUpdated.addListener(startScript);
Pack как стандартный zip
файл, но с расширениями .xpi
.
Затем вам необходимо загрузить расширение в Firefox .
Откройте страницу about:addons
, доступную через меню> Дополнения .
Нажмите кнопку « Инструменты для всех надстроек» .
Когда расширение будет загружено, страница about:addons
будет выглядеть так:
Инструкции по загрузке расширения в Google Chrome приведены в другой теме. Начало работы с расширениями Chrome .
Результат операции расширения будет одинаковым в обоих браузерах ( Firefox / Google Chrome ):
Если текущее дополнение основано на Add-on SDK или XUL
Когда переносимое расширение основано на Add-on SDK
, вам необходимо просмотреть таблицу сравнения для Add-on SDK
=> WebExtensions
, поскольку эти технологии имеют схожие функции, но отличаются в реализации. В каждом разделе таблицы описывается эквивалент Add-on SDK
для WebExtension
.
Аналогичный подход и для расширений XUL.
Сравнение с расширениями XUL / XPCOM