Поиск…


замечания

Если вы используете версию 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 и их статус.

Несовместимость Chrome

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 .

Проект Pack

Затем вам необходимо загрузить расширение в 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 .

Сравнение с SDK Add-on

Аналогичный подход и для расширений XUL.

Сравнение с расширениями XUL / XPCOM



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow