Найвідомішими і використовуваними з доповнень Firefox є розширення (або аддони, англ. Add-on) і теми. У цій статті ми розбираємо розширення. Mozilla надала розробникам розширень широкий простір для дій - весь браузер, отримати доступ можна практично до будь-якого елементу браузера, саме тому всі розширення в магазині addons.mozilla.org проходять сувору модерацію - задіяні не тільки валідатори, а й живі люди, які при необхідності зв'язуються з Вами по email, тому, якщо Ви захочете поділитися розширенням, Вам знадобиться хоча б мінімальне знання англійської мови.
Саме розширення вдає із себе zip-архів з розширенням xpi. У нього своя структура, свої стандарти і звичаї, з якими Ви з часом ознайомитеся.
Крок 0 - Підготовка.
Якщо Ви використовуєте вогнелис як браузер за замовчуванням, то Вам, напевно, не захочеться захаращувати його незакінченими тестовими розширеннями, хоч і своїми. Якщо для Вас це не критично, то пропустіть крок 0.0.
Крок 0.0 - Створення нового профілю.
Створення нового профілю - це просто. Щоб викликати вікно роботи профілями потрібно виконати (Firefox повинен бути закритий):
Start -> Run "% ProgramFiles% \ Mozilla Firefox \ firefox.exe" -no-remote -P dev
або
firefox -P
Start -> Run "% ProgramFiles (x86)% \ Mozilla Firefox \ firefox.exe" -no-remote -P dev
або
firefox -P
Ubuntu і багато інших Linux-дистрибутиви:
/ Usr / bin / firefox -no-remote -P dev
або
firefox -P
Решта Linux / Unix дистрибутиви:
/ Usr / local / bin / firefox -no-remote -P dev
MacOS 10.6 і новіше:
/Applications/Firefox.app/Contents/MacOS/firefox-bin -no-remote -P dev
MacOS 10.5 і старше:
arch -arch i386 /Applications/Firefox.app/Contents/MacOS/firefox-bin -no-remote -P dev
Створення нового профілю ніяких складнощів не обіцяє, так що докладно зупинятися на ньому не буду. Нагадаю лише, що при роботі з реальним проектом (відноситься до будь-якого проекту) обов'язково робіть бекапи. Папку, зазначену при створенні профілю, умовно назвемо цю папку dev_folder а профіль dev_profile. Після першого завантаження цього профілю папка заповниться файлами з усіма дефолтними настройками.
Крок 0.1 - Робимо зародок додатки.
Приступаємо до створення. Якщо Вам ліньки створювати цю структуру, можете скачати цей архів (цей) і розпакувати, якщо ж не лінь, то створюємо папку і наступну структуру (файли створюємо порожні, їх вміст буде розписано нижче):
/content/overlay.xul
/chrome.manifest
/install.rdf
Почнемо з самого цікавого файлу - install.rdf.
0.1.1 - Install.rdf, або коротко про головне
Install.rdf - це обов'язковий файл, він є маніфестом установки доповнення, написаний в форматі XML і дає всю інформацію про доповнення.
em: id = id браузера firefox. Для Thunderbird це значення буде
em: minVersion - мінімальна версія firefox, необхідна для роботи програми
em: maxVersion - відповідно максимальна версія firefox, необхідна для роботи розширення
0.1.2 - chrome.manifest, связуя зв'язуючим
chrome: // * ім'я пакета * / * тип пакета * / * шлях всередині пакету *
Основний пакет браузера так і називається - browser. Імена пакетів доповнень прописуються в chrome.manifest і зчитуються браузером при запуску. У нашому прикладі:
content myfirstextension content /
overlay chrome: //browser/content/browser.xul chrome: //myfirstextension/content/overlay.xul
Розберемося з цим. Рядок 1:
content - тип пакету, пакети бувають трьох типів - content, locale та skin
myfirstextension - ім'я пакета, бажано в нижньому регістрі (Firefox 2, Thunderbird 2, і SeaMonkey 1.1 не розуміють змішаний регістр, з того часу ця вимога залишилося правилом хорошого тону)
content / - шлях до цього пакета щодо файлу chrome.manifest, слеш в кінці рядка обов'язковий.
Якщо однією фразою, то ми вантажимо content-пакет, названий myfirstextension з папки content.
Реєстрація оверлею. Файл overlay.xul додається в інтерфейс браузера browser.xul.
0.1.3 - що таке XUL
Розберемо наш найпростіший overlay.xul
1.0 - Установка
Існує два способи установки:
1. В папці з Вашим профілем (dev_folder) знайти папку extensions (якщо її немає, то створити), всередині неї створити файл, назва якого має збігатися з id доповнення (в нашому випадку [email protected]), і всередину його записати повний шлях до папки з доповненням (має складатися тільки з латиниці і бажано не містити знаків підкреслення), не забувши в кінці написати слеш.
Якщо все зробити правильно, то при запуску Firefox запитає дозвіл встановити додаток, після установки і перезавантаження браузера доповнення запрацює.
2. Установка з файлу.
Цей спосіб мені подобається набагато більше. Все що потрібно - упакувати всю папку в zip-архів (install.rdf і chrome.manifest повинні знаходитися в кореневій папці архіву), змінити його розширення на xpi, встановити, перезавантажити браузер. Встановити можна теж різними способами, але суть їх одна:
Перетягнути файл у вікно firefox
Відкрити його (Ctrl + O або Файл -> Відкрити)
Через меню в управлінні доповненнями
Або просто відкрити цей файл через будь-який файловий менеджер за умови, якщо для відкриття xpi файлів Firefox призначений додатком за замовчуванням
В цьому випадку в папці extensions всередині dev_folder створиться папка або файл (в залежності від параметра em: unpack всередині install.rdf) з назвою, совпадаюшім з id доповнення.
1.1 - Виправлення.
Якщо Ви встановлювали додаток способом 1 (з пропискою шляху) або install.rdf має параметр true, то процес написання доповнення буде виглядати наступним чином - правка файлів всередині папки, перезавантаження Firefox, тестування, при необхідності повторити.
В іншому випадку доведеться після кожної зміни повторювати пункт 2 з голови 1.0.
Доповнення Addon Developer Helper може позбавити вас від необхідності перезавантажувати браузер після кожної зміни в коді.
Доповнення недоступно для останніх версій Firefox, змінену мною версію додатку можна завантажити за цим посиланням - в ній не виникає проблем.
Функціонал цього доповнення можна реалізувати двома іншими: