Как самому сделать любимый браузер еще лучше
30.04.2010
—
Новости Hi-Tech
|
Мы с вами плавно и незаметно завершаем разговор о создании расширений для второго по популярности в мире браузера Mozilla Firefox. Надеюсь, вы еще не успели окончательно забыть все то, о чем мы говорили в Закончили в прошлый раз на том, каким образом можно опробовать созданное расширение "в боевых условиях", то есть, в браузере. Наверное, на этом можно было бы и завершить разговор о расширениях к Mozilla Firefox, но он тогда получился бы, скажем так, не совсем полным. Почему? Ну, во-первых, в таком виде, в каком оно есть, наше расширение отдавать пользователям ещё нельзя, его нужно "запихнуть" в XPI-пакет. Во-вторых, есть некоторые более сложные аспекты создания расширений, о которых мы с вами пока что не говорили, но которые, тем не менее, вполне заслуживают того, чтобы быть хотя бы вскользь упомянутыми в ходе нашего разговора о создании расширений к Firefox.
После того, как расширение создано, его упаковывают в XPI-пакет, который браузер сам потом распаковывает таким образом, чтобы расширение было нормально установлено. Все расширения к браузеру распространяются именно в таком виде, и, в общем-то, вполне понятно почему - так банально удобнее. Но это зависит от разработчика некоторых дополнительных телодвижений - не сказать, впрочем, чтобы сильно напрягающих его. Как я уже говорил, XPI-пакет представляет собой, по сути, обычный ZIP-архив. Сегодня это уже достаточно распространенная практика - сохранять различную информацию внутрь ZIP-файла. Именно таким образом организованы форматы документов новых версий Microsoft Office, а также некоторых других приложений, например, известной математической среды MathCAD. Как сделать XPI-пакет из папки, в которой находится ваше расширение? Очень просто. Для этого нужно запаковать её содержимое (не саму папку, а именно то, что в ней, то есть в корневой директории архива, должно содержаться - все дерево папок и файлов, которые лежат уже в папке с расширением) любым доступным вам ZIP-архиватором, хоть WinZIP'ом, хоть тем, который встроен в Total Commander. Можно воспользоваться инструментом Extension Builder ( Получившийся ZIP-архив нужно переименовать таким образом, чтобы он имел расширение XPI, а при загрузке его на сервер установить MIME-тип application/x-xpinstall, чтобы браузер правильно интерпретировал назначение данного пакета. Собственно, пожалуй, на этом "обязательная программа" разработки расширения для Firefox подходит к концу и начинается программа вольная. Не всегда то, о чем я расскажу ниже, понадобится вам при создании расширений для Firefox, но иметь это все в виду будет весьма и весьма полезно. И, возможно, даже местами интересно.
Когда-то давно тому назад (еще в 2006 году) я уже рассказывал читателям "Компьютерных вестей" о замечательной и очень полезной технологии XPCOM, которая может применяться для создания кросс-платформенных приложений. В свое время эту технологию разработала для своих нужд тогда еще великая и могучая корпорация Netscape, и использовалась она, конечно же, и в браузере, который разрабатывала эта корпорация. Mozilla Firefox, как известно, имеет своим дальним предком именно браузер Netscape Navigator. Поэтому нет ничего удивительного в том, что эта технология сейчас используется и в этом браузере. Используется она, кстати говоря, и в ряде других свободных программных продуктов, например, в широко известном офисном пакете OpenOffice.org. Но сейчас мы, конечно, вспоминаем её вовсе не потому, что она такая хорошая и замечательная и много где используется, а потому, что от неё есть непосредственная польза и нам, разработчикам расширений для браузера Mozilla Firefox. Подробнее об XPCOM можно почитать в уже упоминавшейся статье "Введение в XPCOM" (см. "КВ" № В расширениях к браузеру могут находиться XPCOM-компоненты, которые можно писать на JavaScript'е или C++. Это очень хорошая новость для тех, кто хочет создать какое-то действительно нестандартное и нетривиальное расширение, функциональность которого нельзя обеспечить средствами обычных XUL-слоев и стандартных элементов управления XUL. Но, правда, нужно приготовиться к тому, что и разработчику будет не слишком просто, потому что разработку XPCOM-компонентов для Firefox'а без опыта вряд ли можно считать легким делом. Впрочем, и пугаться не стоит - как мудро говорится в пословице, смелым сопутствует удача. Если вдруг вы действительно соберетесь делать свой собственный XPCOM-компонент для включения его в Firefox'овское расширение и выберете для этой цели язык C++, то вам понадобится Gecko SDK, который расположен по следующему адресу: Впрочем, XPCOM - вещь для расширений не обязательная. Чего не скажешь об их отладке. К сожалению, даже чрезвычайно талантливые разработчики редко пишут код, который вообще не нуждается в отладке. Так что отладка - весьма насущный при создании расширений к Firefox вопрос.
Отладка расширений сводится, по большому счету, к отладке JavaScript'а, реализующего логику работы расширений. Можно, конечно, говорить как об отладке и о доведении до ума XUL-файлов, описывающих интерфейс расширения, но это все-таки, мне кажется, до неё немного не дотягивает. Отладка XPCOM-компонентов, если они присутствуют в вашем расширении, - вообще отдельный разговор, который сейчас лучше даже не начинать. На тему отладки JavaScript'а для начала рекомендую посмотреть Вам могут пригодиться для этого некоторые дополнительные инструменты. В первую очередь, наверное, DOM Inspector - Не нужно, конечно, забывать и о "детстве" человечества - то есть, о такой простой, но эффективной технике, как "printf debugging", то есть, о банальном ведении лога или выводе сообщений о тех или иных результатах тех или иных действий скрипта на экран. Зачастую вам даже не придется делать никаких более сложных и глубоких шагов: ведь, как известно, понимание того, где скрывается проблема, - уже, как минимум, треть её решения. В качестве "экстремального" способа отладки в англоязычных статьях по созданию расширений рекомендуют использовать отладочную сборку самого браузера, в которую устанавливать создаваемое расширение. Это уже, кстати, ближе к методам отладки XPCOM-компонентов. Авторы англоязычных статей обещают, что для опытных разработчиков это будет самым простым и быстрым путем для понимания и устранения ошибок. Насколько этот путь подходит вам лично - судить, опять же, только вам. Так что, как видите, возможностей отладки расширений у разработчика много, нужно только грамотно ими пользоваться.
Что ж, пока что все. Вряд ли, конечно, все, кто прочитал все пять статей, кинутся сразу же создавать свое расширение, но, думаю, рассказ был для вас полезен. А те, кто действительно имеет какие-то задумки по поводу улучшения функциональности любимого браузера (которым, конечно же, всенепременно является именно Mozilla Firefox), возможно, получили толчок к реализации своих задумок. В любом случае, если у вас созрели планы по поводу собственного расширения, не стоит откладывать их в долгий ящик, потому что иначе они имеют тенденцию не реализовываться. Вадим СТАНКЕВИЧ, Чтобы разместить новость на сайте или в блоге скопируйте код:
На вашем ресурсе это будет выглядеть так
Создаем расширения к Mozilla Firefox
|
|