Что такое расширение Firefox?
Расширения — это небольшие дополнения (add-on), добавляющие новые функциональные возможности приложениям Mozilla, таким как Firefox и Thunderbird. С их помощью в приложение можно добавить что угодно, от кнопки на панели инструментов до совершенно новой возможности. Они позволяют настраивать приложения с учётом личных потребностей каждого пользователя, которому могут понадобиться дополнительные функциональные возможности, сохраняя при этом приложения небольшими для скачивания.
Взято со страницы о расширениях.
Как говорится в приведенной цитате, расширения - это маленькие приложения добавляющие что-нибудь новое к тому или иному приложению Mozilla. Этот учебник посвящён расширениям для Firefox, но те же самые (или схожие) принципы применимы для создания расширений для других приложений, таких как Thunderbird, Seamonkey и Flock.
Стоит также отметить, что определения расширение (extension) и дополнение (add-on) различаются. Все расширения - это дополнения, но дополнения также могут быть темами, плагинами, или языковыми пакетами. Данный учебник - о разработке расширений, но темы и языковые пакеты разрабатываются очень похожим образом. Плагины (plugins) полностью отличаются, поэтому здесь мы их рассматривать не будем. Вы можете прочитать больше о плагинах и их разработке на странице о плагинах.
Firefox предоставляет очень богатую и гибкую архитектуру, позволяющую разработчикам расширений добавлять дополнительные возможности, настраивать деятельность пользователей, а также полностью заменять и удалять части браузера. Склад дополнений (репозитарий) Mozilla - Mozilla Add-on repository (AMO) - содержит множество расширений с разнообразной функциональностью. Например: фильтрация контента (AdBlock Plus, NoScript), взаимодействие с web-приложениями (Delicious Bookmarks, eBay Companion), web-разработка (DOM Inspector, Firebug), защита детей (Glubble For Families). Существуют современные, достаточно функциональные и сложные расширения. Вы познакомитесь со многим, что может понадобится для разработки таких приложений. Фирма Glaxstar работал над тремя дополнениями из перечисленных выше.
Расширения сейчас существуют в трёх формах:
- Дополнения расширений SDK (также известны как "Jetpacks" - "реактивные ранцы"). SDK - software development kit - (англ.) комплект средств разработки.
- Расширения начальной загрузки.
- Традиционные расширения.
Если вы новичок в разработке дополнений, то комплект разработки SDK - предоставляет хороший способ быстро создать простые расширения. Этот учебник посвящён традиционным расширениям, которые создаются по-другому. Загрузочные расширения по сложности на ступеньку выше обычных, поэтому стоит изучить этот материал, прежде чем пытаться их делать.
Начнём обучение с анализа очень простого расширения.
Расширение "Привет, мир!"
Примеры расширений и этот учебник в целом предназначаются для современных версий Firefox, но большинство из всего этого работает и на устаревших версиях.
Мы начнем с традиционного расширения "Привет, мир!" (Hello World). И начнём мы с его установки. Щёлкните по ссылке ниже.
Это запустит либо установку, либо загрузку файлов - в зависимости от типа содержимого ("content type"), которое для этого файла использует веб-сервер. Тип содержимого, соответствующий запуску установки - "application/x-xpinstall". В данном случае тип содержимого установлен правильно и должно появлятся окно установки расширения.
Если тип содержимого установлен правильно, то вы, вероятно, получите уведомление о том, что сайту не позволено устанавливать дополнения в ваш браузер Firefox. Это защитный барьер, предотвращающий установку сайтами расширений без согласия пользователя. Он необходим из-за того, что вредоносное расширение может причинить вред такого же уровня, как и любая другая вредоносная программа: совершить кражу данных, удаление или замену файлов и вообще, вызвать нежелательное поведение. Все дополнения , опубликованные в AMO, прошли через процесс предварительного рассмотрения, включающий проверку безопасности.
После загрузки файла, вы можете перенести ("drag and drop") его в область содержимого Firefox - и должна начаться установка.
Вы увидите окно с сообщением, что вы собираетесь установить расширение и с какой-нибудь дополнительной информацией, вроде имени автора. Вы увидите сообщение о том, что автор не может быть проверен. Проверить авторство возможно только у расширений, подписанных с помощью цифрового сертификата. Подписанные расширения редки, но позже мы рассмотрим, как их подписывать.
Нажмите на кнопку "Установить сейчас" ("Install Now"). После установки расширения, вам будет предложено перезапустить Firefox. Установка, удаление, включение и выключение расширения требуют перезагрузки для завершения операции . Исключение составляют плагины NPAPI, дополнения SDK расширений и загрузочные расширения. Имейте это в виду, если вы создаете расширение, манипулирующее другими расширениями или темами.
После установки, взгляните на главное окно Firefox и посмотрите не изменилось ли что-нибудь.
Вы это видели? В главном меню появилось новое подменю с надписью "Hello World!" ("Привет, мир!"). Если вы откроете меню, а затем в меню пункт ниже, вы увидите замечательное сообщение. Нажмите на кнопку ОК, чтобы его закрыть.
Это всё, что делает это расширение. Теперь давайте посмотрим на него внимательнее.
Содержимое Расширения
Возможно, вы заметили, что файл установки расширения называется xulschoolhello1.xpi. XPI (произносится как "зиппи". "zippy" - с англ: живой, быстрый, энергичный, яркий) выступает в качестве кроссплатформенного установщика, потому что один файл установки может быть обработан на всех платформах, поддерживаемых браузером Firefox. Файлы XPI - это просто данные, сжатые архиватором ZIP, однако Firefox распознает расширение XPI и запускает процесс установки при попытке загрузить такой файл.
Чтобы заглянуть в файл XPI вам нужно сперва скачать его - не устанавливая. Если сервер запускает установку при нажатии на ссылку или кнопку - откажитесь, а затем нажмите правой кнопкой мыши на ссылке установки и выберите вариант "Сохранить ссылку как..." ("Save Link As...").
Далее распакуем файл XPI. Один из способов сделать это: переименовать расширение файла из "xpi" в "zip". (в Линуксе это не требуется, т.к. расширения нужны только в декоративных целях, а программы распознают тип файла сами) Другой способ - открыть файл с помощью архиватора, поддерживающего стандарт ZIP. Выберите и распакуйте архив в удобное место. Вы увидите структуру каталогов вроде этой:
- xulschoolhello1
- chrome.manifest
- install.rdf
- content
- browserOverlay.xul
- browserOverlay.js
- skin
- browserOverlay.css
- locale
- en-US
- browserOverlay.dtd
- browserOverlay.properties
- en-US
Так много файлов для такой ерунды! Не волнуйтесь, мы скоро увидим назначение всех этих файлов и вы поймёте, что всё довольно просто. В следующем разделе мы изучим эти файлы и посмотрим, что же они делают.
This tutorial was kindly donated to Mozilla by Appcoast.