突然ですが、私は軽く動作が早いソフトウェアが好きです。毎日のように使うWebブラウザはらばなおさら、きびきび動作する軽いシンプルなソフトウェアを選びたいものです。ただそういうシンプルなソフトウェアには自分に必要な機能がそろっていないのではないかと思うかもしれません。

そういう場合は、たいていのソフトウェアには機能を追加できるようになっています。それが「拡張機能」や「アドオン」、「マクロ」などと呼ばれる小さなプログラムたちです。そして有志の方が多くの追加機能を提供してくれています。そういったプログラムを探して使ってみるもの楽しみの1つです。

さらに拡張機能は自分で作ることができるようになっています。自分に必要な機能は自分で作って、ソフトウェアを自分好みに仕上げていくことはとても楽しいものです。そう、ソフトウェアは拡張しなければ意味がないのです!

今回紹介するFirefoxはオープンソース方式で開発されているWebブラウザです。誰でも無料でダウンロードしてすぐに利用できます。しかもWebの標準になるべく正しく準拠するよう配慮されているので表示が乱れるということはほとんどありませんし、Webブラウザに必要な機能を厳選して実装しているため動作が速いという特徴があります。そのためここ数年シェアが向上していて、欧米では3割近いシェアの地域もあります。

そしてFirefoxには拡張するための機能が用意されていることを忘れてはいけません。自分に必要な機能は後から追加できるのです。しかもそれを自分で作ることができます。私のようにソフトウェアを自分なりにカスタマイズして使いたい人間にとっては大変ありがたい機能です。

今回はこの拡張機能を順を追って作ってみましょう。

Firefoxの拡張機能

せっかく用意されているFirefoxの拡張機能ですが、いざ作ってみようかなと思っても残念なことに情報が不足していて、どう作ったらよいかわからない状況です。参考文書は、あることはあるのですが、英語で書かれていたり、内容が高度すぎたりして手軽に作ってみようという人にとっては難しすぎるのです。

そこで私としては、まずは公開されているものを使ってみることをお勧めします。mozillaのアドオンサイトではたくさんの拡張機能が分類されて紹介されています。そして同じページからすぐにインストールして動作を確認することもできます。うまく動作しなかったり、思っていた機能と違っていた場合は簡単に削除できるので気軽に試してみるとよいでしょう。

mozillaのアドオンサイト

Firefox用の拡張機能はオフィシャルなものだけでも数百登録されています。そして、やはり自分が必要な機能がみつからない、自分で作りたいと思ったときはもちろん自分で作ってみましょう。この記事の手順にしたがって作業を進めると"拡張機能を開発する"とは、どういう作業をすることなのかわかります。

拡張機能のしくみ

開発には、XMLとJavascriptの知識が必要になります。おおまかにいうとXMLでユーザインタフェースを作り、Javascriptでロジックを書きます。Firefoxにはアドオンマネージャという機能があり、これが拡張機能を管理しています。拡張機能のインストールや削除はアドオンマネージャを使って行います。拡張機能に自動更新機能を持たせることもできるのですが、そのような場合もアドオンマネージャが更新の管理を行います。 拡張機能で可能になること

・Firefox自体の機能の追加 ボタンを押すと特定のページを開いたり、RSSを処理したりといった標準のFirefoxにない機能を追加することができます。

・ページの中身をDOMを使って操作 Googleの検索結果にそのページの縮小画像を付けたりできます。

Greasemonkeyとの違い

Firefoxに詳しい人には、「Greasemonkey」という拡張機能との違いがよくわからないかもしれません。私は以下のような使い分けをしています。
・Greasemonkey 特定のページに、その内容について決まった処理をしたいときに手軽に設定できるツール
・拡張機能 DOMやXMLを使うので少し難しいのですが、Greasemonkeyよりさらに多くのことができる