Spec-Zone.ru › Web Extensions

Ваш первый расширение

Примечание: Если вы знакомы с основными понятиями расширений браузера, пропустите этот раздел, чтобы увидеть, как собираются файлы расширения. Затем используйте документацию справки, чтобы начать создание своего расширения. Посетите Рабочий стол расширений Firefox, чтобы узнать больше о рабочих процессах тестирования, публикации и расширений для Firefox.

В этой статье подробно описано создание расширения для Firefox от начала до конца. Расширение добавляет красную границу к любым страницам, загруженным с «mozilla.org» или любыми его поддоменами.

Исходный код этого примера находится на GitHub: https://github.com/mdn/webextensions-examples/tree/master/borderify.

Создание расширения

В подходящем месте, например, в каталоге Documents, создайте новую папку под названием borderify и перейдите в неё. Вы можете сделать это, используя проводник вашего компьютера или командную строку. Понимание работы с командной строкой — полезный навык, так как это помогает в более продвинутом разработке расширений. С помощью терминала вы создаёте папку следующим образом:

mkdir borderify
cd borderify

manifest.json

Используя подходящий текстовый редактор, создайте новый файл с именем «manifest.json» непосредственно в папке «borderify». Вставьте в него следующее содержимое:

{

  "manifest_version": 2,
  "name": "Borderify",
  "version": "1.0",

  "description": "Adds a red border to all webpages matching mozilla.org.",

  "icons": {
    "48": "icons/border-48.png"
  },

  "content_scripts": [
    {
      "matches": ["*://*.mozilla.org/*"],
      "js": ["borderify.js"]
    }
  ]

}
  • Первые три ключа: manifest_version, name и version, являются обязательными и содержат основные метаданные расширения.
  • description является необязательным, но рекомендуется: он отображается в менеджере дополнений.
  • icons является необязательным, но рекомендуется: он позволяет указать значок для расширения, который будет отображаться в менеджере дополнений.

Наиболее интересным ключом здесь является content_scripts, который сообщает Firefox о загрузке скрипта в веб-страницы, URL которых соответствуют определённому шаблону. В данном случае мы просим Firefox загрузить скрипт с именем «borderify.js» во все страницы HTTP или HTTPS, обслуживаемые с «mozilla.org» или любыми его поддоменами.

  • Узнайте больше о скриптах содержимого.
  • Узнайте больше о шаблонах сопоставления.

Предупреждение: В некоторых случаях вам нужно указать идентификатор для своего расширения. Если вам нужно указать идентификатор дополнения, добавьте ключ browser_specific_settings в manifest.json и установите его свойство gecko.id.

"browser_specific_settings": {
  "gecko": {
    "id": "borderify@example.com"
  }
}

icons/border-48.png

Расширение должно иметь значок. Он будет отображаться рядом с записью расширения в менеджере дополнений. В нашем manifest.json обещается, что у нас будет значок в «icons/border-48.png».

Создайте папку «icons» непосредственно в папке «borderify». Сохраните там значок под названием «border-48.png». Вы можете использовать значок из нашего примера, который взят из набора значков Google Material Design и используется в соответствии с лицензией Creative Commons Attribution-ShareAlike.

Если вы решите использовать свой собственный значок, он должен иметь размер 48x48 пикселей. Вы также можете добавить значок размером 96x96 пикселей для дисплеев высокого разрешения. В этом случае он будет указан как свойство 96 объекта icons в manifest.json:

"icons": {
  "48": "icons/border-48.png",
  "96": "icons/border-96.png"
}

В качестве альтернативы вы можете использовать SVG-файл, который будет правильно масштабирован. (Однако, если вы используете SVG, и ваш значок содержит текст, вы можете использовать инструмент «преобразовать в контур» в своём редакторе SVG, чтобы сплющить текст, чтобы он масштабировался с постоянным размером/положением.)

  • Узнайте больше о спецификации значков.

borderify.js

Наконец, создайте файл с именем «borderify.js» непосредственно в папке «borderify». Вставьте в него это содержимое:

document.body.style.border = "5px solid red";

Этот скрипт будет загружен на страницы, которые соответствуют шаблону, заданному в ключе content_scripts файла manifest.json. Скрипт имеет прямой доступ к документу, как и скрипты, загруженные самой страницей.

  • Узнайте больше о скриптах содержимого.

Проверка работы

Сначала убедитесь, что у вас правильные файлы в правильных местах:

borderify/
    icons/
        border-48.png
    borderify.js
    manifest.json

Установка

В Firefox: Откройте страницу about:debugging, выберите вариант «Этот Firefox», нажмите кнопку «Загрузить временное дополнение», а затем выберите любой файл в каталоге вашего расширения.

Теперь расширение установлено и остаётся установленным до перезапуска Firefox.

В качестве альтернативы, вы можете запустить расширение из командной строки, используя инструмент web-ext.

Тестирование

Примечание: По умолчанию расширения не работают в приватном просмотре. Если вы хотите протестировать это расширение в приватном просмотре, откройте «about:addons», щелкните по расширению и выберите параметр «Разрешить» для «Запуска в окнах приватного просмотра».

Теперь посетите страницу по адресу «https://www.mozilla.org/en-US/», и вы увидите красную границу вокруг страницы.

Border displayed on mozilla.org

Примечание: Не пытайтесь это сделать на «addons.mozilla.org»! Скрипты содержимого в настоящее время заблокированы на этом домене.

Попробуйте немного поэкспериментировать. Измените скрипт содержимого, чтобы изменить цвет границы или выполните какие-либо другие действия с содержимым страницы. Сохраните скрипт содержимого, а затем перезагрузите файлы расширения, нажав кнопку «Перезагрузка» в «about:debugging». Вы сразу же увидите изменения.

  • Узнайте больше о загрузке расширений

Упаковка и публикация

Чтобы другие пользователи могли использовать ваше расширение, вам необходимо упаковать его и отправить в Mozilla для подписания. Чтобы узнать больше об этом, см. «Публикация вашего расширения».

Что дальше?

Теперь вы ознакомились с процессом разработки веб-расширения для Firefox:

  • создайте более сложное расширение
  • подробнее о структуре расширения
  • изучите примеры расширений
  • узнайте, что вам нужно для разработки, тестирования и публикации расширения
  • продолжайте обучение.

© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Your_first_WebExtension

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API