Приступая к работе с расширениями Firefox.

Что такое расширение 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 работал над тремя дополнениями из перечисленных выше.

Расширения сейчас существуют в трёх формах:

  1. Дополнения расширений SDK (также известны как "Jetpacks" - "реактивные ранцы"). SDK - software development kit - (англ.) комплект средств разработки.
  2. Расширения начальной загрузки.
  3. Традиционные расширения.

Если вы новичок в разработке дополнений, то Add-ons SDK - предоставляет хороший способ быстро создать простые и опираться на них.  Этот учебник посвящён традиционным расширениям, которые создаются по-другому. Загрузочные расширения по сложности на ступеньку выше обычных, поэтому стоит изучить этот материал, прежде чем пытаться их делать.

Начнём обучение с анализа очень простого расширения.

Расширение "Привет, мир!"

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

Мы начнем с традиционного расширения "Привет, мир!" (Hello World). И начнём мы с его установки.  Щёлкните по ссылке ниже.

Установить "Hello World"

Это запустит либо установку, либо загрузку файлов - в зависимости от типа содержимого ("content type"), которое для этого файла использует веб-сервер. Тип содержимого, соответствующий запуску установки - "application/x-xpinstall". В случае с этим "вики", тип содержания установлен неправильно и должна начинаться загрузка файла.

Если тип содержимого установлен правильно, то вы, вероятно, получите уведомление о том, что сайту не позволено устанавливать дополнения в ваш браузер Firefox. Это защитный барьер, предотвращающий установку сайтами расширений без согласия пользователя. Он необходим из-за того, что вредоносное расширение может причинить вред такого же уровня, как и любая другая вредоносная программа: совершить кражу данных, удаление или замену файлов и вообще, вызвать нежелательное поведение. AMO - это сайт только предварительно одобренного, потому что все, опубликованные в 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

Так много файлов для такой ерунды! Не волнуйтесь, мы скоро увидим назначение всех этих файлов и вы поймёте, что всё довольно просто. В следующем разделе мы обследуем эти файлы и посмотрим, что же они делают.

This tutorial was kindly donated to Mozilla by Appcoast.

 

Attachments

Файл Size Date Attached by
helloworldalert.png
8000 bytes 2010-02-23 00:05:18 Jorge.villalobos
xulschoolhello1.xpi
2719 bytes 2011-11-02 23:20:47 Jorge.villalobos
Simulator overview
539369 bytes 2013-04-22 14:56:04 wbamberg

Document Tags and Contributors

Contributors to this page: hbvit7, dimhold, Jesst
Last updated by: dimhold,