Ні про що →
Думаю, всі знають, що доповнення Firefox поширюються в вигляді xpi-файлів. xpi-файл являє собою zip-архів, усередині якого є якась кількість файлів і директорій. Файли можуть бути js, css, xul, файли зображень і, здається, навіть jar. У директорій зазвичай задаються стандартні назви, але жорстких вимог немає.
Думаю, Вам, не буде цікаво проходити той самий шлях, по якому йшов я, щоб створити всього лише «Hello, World», а Ви зможете взяти накопичену інформацію і відразу піде собі геть.
Підготовка до роботи
Мені подобається, коли працювати зручно. Тому я перейнявся пошуком відповідних інструментів під звичний мені стиль роботи. Працюю я під Windows 7, про нього і пишу.
Створити окремий профіль Firefox:
закрити Firefox, натиснути win + r і виконати firefox -P
При створенні профілю треба вибрати папку, яка буде легко доступна, наприклад:
D: \ experiments \ firefox
Завантажуємо і встановлюємо мій шаблонний проект helloworld.xpi. Після установки всередині директорії
з'явиться папка з назвою
Вміст архіву helloworld.xpi
Я не дуже добре знаю, для чого призначений кожен файл і тим більше кожне слово в ньому. Виділяю лише ті моменти, на які сам звернув увагу.
content \ overlay.xul
Це основний файл, він говорить, що кнопка повинна бути додана на панель BrowserToolbarPalette. Десь бачив, що все панелі мають ідентифікатори. В такому файлі можна створити не тільки кнопку, але і свою панель. Код написаний на мові XUL.
locale \ en-US \ overlay.dtd
Це просто довідник текстових констант.
У цій папці містяться зображення для кнопки і файл зі стилями
Очевидно, що це важливий файл, який конфигурирует роботу додатка. Детальніше не розбирався.
install.rdf
Відповідно до цього файлом відбувається установка доповнення. Цікавий тег id, ідентифікатор Firefox-а як продукту і без нього працювати не буде, а у Seamonkey інший ідентифікатор.
Робочий процес
Думаю, що робочий процес більшості JS-розробників виглядає як і мій: написав кілька рядків - подивився що вийшло. Щоб подивитися, що змінилося в XUL треба перевантажити Firefox. Це трохи напружує ... зовсім трохи. Тому що хочеться паралельно і документацію в інтернеті почитати. І перевантажувати виходить не швидко.
Я знайшов доповнення Extension Developer. Після установки на панель управління Firefox потрібно витягнути кнопку 'Reload all Chrome'. Зміни всередині коду розроблюваного дополенія вступлять в силу відразу після кліка по кнопці.
функція read
У плані роботи з файловою системою у мене виникла (здебільшого скопійована звідкись) функція:
Як я зрозумів, записувати у файли теж можна, але вже не розбирався.
висновок
Прохання до читачів не лаяти сильно, на роль «знає» людини не претендую і на додаткові питання навряд чи зможу відповісти.