Pull to refresh

Создание расширения FireFox для начинающих

Firefox
В данной статье представлена пошаговая инструкция по разработке простейшего расширения для FireFox.
Это частичный перевод оригинальной статьи.

Это не моя статья, а моего друга (его мыльце: templar8@gmail.com). Он очень хочет попасть на Хабр. У меня самого не хватает кармы для инвайта.
Текст статьи
Total votes 104: ↑94 and ↓10 +84
Views 45K
Comments 33

My Yandex.Fotki Uploader (Myf) — начало открытого тестирования

Firefox
Здравствуй %USERNAME%. Прошло 10 суток с тех пор, как была опубликована статья про плагин, который загружает фотографии путем drag&drop на textarea графических файлов.

Описание для тех, кто не в курсе предыдущего поста:
Представим ситуацию — необходимо в ЖЖ (LiveJournal) или на форум разместить десяток фотографий. Если Вы используете Яндекс.Фотки для размещения фотографий в сети, то этот плагин Вам очень поможет. Перетащите на текстовое поле, где пишете сообщение, фотографии и дождитесь загрузки и появления html/bbcode тегов со ссылками на фотографии.

Интересности и сложности
Total votes 39: ↑36 and ↓3 +33
Views 1.4K
Comments 52

Авторы расширений, хакеры браузера, встречайте js-ctypes

Firefox
Tutorial
Translation
Что такое (можете спросить вы) js-ctypes? Скажем, пишете вы расширение на джаваскрипте, и ему нужно обратиться к местному коду (native code). Например, weave-crypto приходится обращаться к библиотеке NSS. А ваше расширение может пожелать, например, вызвать напрямую NSPR, libc, или функции Win32. Прямо сейчас есть два выхода: либо использовать скриптуемые XPCOM-интерфейсы (обеспечиваемые libxul), либо написать и реализовать собственные XPCOM-интерфейсы, то есть поставлять двоичный код в своём расширении. Если первый вариант не годится, остаётся только второй, но тогда поставлять расширение становится заметно сложнее: приходится отдельно компилировать двоичный код для каждой из поддерживаемых платформ, чтобы упаковать его внутрь вашего кросс-платформенного xpi.

Ответом на эту трудность поэтому станет библиотека js-ctypes: она позволяет джаваскрипту вызывать местный код (написанный на Си) и манипулировать сишными типами данных, без использования XPCOM, и нет необходимости компилировать ни одну строку кода. Это означает, что вам не придётся определять XPCOM-интерфейсы, и что можно будет использовать разделяемые библиотеки (shared libraries), подобные libc, напрямую. Есть и побочный положительный эффект: мы большей частью устраняем потери на преобразование типов данных, свойственные XPConnect, так что выполнение кода может становиться быстрее. (Сравнение скорости я приведу в одной из последующих блогозаписей.) Библиотека js-ctypes будет поставляться с Gecko 1.9.3, а эта платформа (если номера версий не переменятся) станет фундаментом для Firefox 3.7.

Вы можете спросить: «Но как...?». И вот примеры (они проверялись на 32-битных Линуксах x86 и содержат не кросс-платформенные части):

Читать дальше →
Total votes 55: ↑42 and ↓13 +29
Views 2K
Comments 41

My Yandex.Fotki Uploader (Myf) — важное обновление расширения

Firefox
image

Друзья, очень приятно, что многим понравился мой плагин. Я стараюсь его поддерживать в свободное время и проводить оптимизацию кода.

Когда вернулся из отпуска, то заметил странное поведение. Картинка отправляется на сервер яндекс.фотки и по каким-то причинам процесс ждал ответа от сервера. Много было проведено экспериментов, просмотр заголовков…
Читать дальше →
Total votes 28: ↑23 and ↓5 +18
Views 875
Comments 31

Изменения способа установки расширений в Firefox 4

Firefox
Translation
Следующая бета-версия Firefox 4 будет содержать изменения того способа, которым Firefox устанавливает и использует расширения. Прежде файлы, взятые из XPI-файла расширения, распаковывались в собственный каталог их (в файловой системе) и прочитывались оттуда, а теперь по умолчанию сохраняться будет просто XPI, а файлы будут читаться из него напрямую.

Множеству расширений эта перемена не принесёт проблем; однако, если код вашего расширения пытается напрямую читать его файлы, или если расширение содержит двоичный код, или поисковые плагины, или словари, или значки заголовков окон, тогда вам придётся либо внести в расширение изменения, поддерживающие новый метод установки, или же запросить, чтобы Firefox продолжал распаковывать файлы вашего расширения, используя директиву <em:unpack> в install.rdf.

Подробнее про это изменение и о способах, позволяющих поддерживать его в своём расширении, рассказано на странице «Firefox 4 for Developers».
Total votes 53: ↑41 and ↓12 +29
Views 1.5K
Comments 71