» アドオン開発

Firefox3.6 Beta3 より XPCOM 経由で geolocation が利用できるようになりました。

すでに御存じの方もいらっしゃるでしょうが、geolocation の XPCOM interface が Firefox3.6 beta3 より実装されました。

使い方は簡単です。以下にコードサンプルを紹介します。

var geolocation=Components.classes["@mozilla.org/geolocation;1"]
                            .getService(Components.interfaces.nsIDOMGeoGeolocation);
geolocation.getCurrentPosition(function(position){
    Application.console.log(position.coords.latitude+','+position.coords.longitude);
});

詳細はmozilla developer centerをごらんください。

DomainTab version 0.1.4 公開

皆様こんにちは。私は yasusato といいます。

私の作った Firefox の拡張機能 DomainTab が version 0.1.4 になりましたので、この場を借りて宣伝をさせていただきます。

DomainTab は選択したリンクのリンク先がリンク元のサイトと異なるドメインのサイトの時に、新しいタブを開いて表示します。単機能アドオンなので、リンク先が別ドメインの場合に新しいタブで開くという機能を得るために使用しない他の機能をインストールする必要がありません。さらに、単機能でありながら、ステータスバーへのアイコンの表示 / 非表示、新しいタブを前面に表示するかどうかという細かい設定ができるので、各ユーザのブラウジングスタイルに合わせてお使いいただけると思います。

今回のバージョンアップでは、locale ファイルを追加した(hu-HU, mk-MK, sr-RS, tr-TR, zh-CN)だけですが、興味をもたれた方がいらっしゃいましたら、ぜひ使っていただけたらと思います。

https://addons.mozilla.org/ja/firefox/addon/13906

それでは、失礼しました。

拡張機能開発テクニック

このページでは拡張機能開発の Tips やツールなどの情報を集めています。

このサイトの殆どのページは誰でも自由に編集できます。他にもいい記事があればいわゆる「まとめサイト」の感覚で皆さんどんどん編集していってください。

note: Firefox 4 に向けた拡張機能開発情報はこちらのページでまとめています

拡張機能開発の基本ツール

デバッグテクニック

サンプルコード集

  • MDC – Code snippets
    • MDC には拡張機能などで利用できるコードサンプル集ページが用意されています。
  • jslibs – JavascriptTips
    • JavaScript 一般の Tips としては jslibs の Tips 集ページのコードが参考になります。

開発 Tips/Hacks

modest の投稿記事

アドオン開発者向けツール

アドオンの開発者に役立つ拡張機能やツールなどを紹介します

エディタ / 開発環境

アドオンの開発には UTF-8 に対応したエディタと ZIP ツールがあれば必要十分です。
エディタについては使い慣れたものを自由に使ってください。参考までにいくつか例を挙げておきます。

  • Windows 専用エディタ: 秀丸、サクラエディタ、TeraPad、EmEditor など
  • Mac OS X 専用エディタ: Jedit X, mi, KEdit, CotEditor, LightWayText など
  • マルチプラットフォーム対応エディタ: Eclipse, Netbeans, jEdit, Vim, Emacs など
  • 統合開発環境: Eclipse, Netbeans, Spket IDE など

自動生成ツール

AMO – アドオンビルダー (スケルトン生成ツール)

AMO に標準で用意されている拡張機能のスケルトン生成 Web ツールです。

Firefox 拡張簡単キット “マッチ FOX”

拡張機能用のスケルトンを生成してくれるアドオンだが、install.rdf などの基本的なファイルだけでなく、汎用的な js module なども同梱してくれるのが特徴的。詳しくは作者自身の紹介記事をご覧ください。

Spket IDE の “Firefox Extension” プロジェクト

Spket IDE では拡張機能用のプロジェクトをサポートしており、スケルトンの自動生成が行われるようです。

Netbeans の foxbeans プラグイン

スケルトンを自動生成してくれるものですが、試したところ残念ながら最新の Netbeans では使えませんでした (>_<)

デバッガ、バリデータ

AMO – アドオンバリデータ (自動検証ツール)

AMO でエディタがアドオンのレビューをする際にも使用されているアドオンのコードチェックツール。パッケージングの基本的なチェックや、eval() 関数呼び出しなどセキュリティ上注意が必要なコードを検出したりしてくれる。

Firebug

Web 開発業界では標準となっているデバッガツール。基本的には Web ページなど Content 領域のデバッグ用ツールではあるが、Chromebug という拡張機能を使えば Firebug で Chrome 領域もデバッグできるようになるなど、拡張機能開発でもいろいろと役に立ちます。

Venkman JavaScript Debugger

JavaScript デバッガ。Firebug でできることが増えて徐々に相対的重要度は下がってきているが、拡張機能内部の JavaScript を本格的にデバッグするには今でもこのデバッガが一番強力。但し、始めは取っつきにくいところもある。

UxU – Unit.Text.XUL

拡張機能開発用の自動テストツールキット。

開発サポートアドオン

DOM Inspector (DOMi)

XUL や HTML などの DOM オブジェクトやツリーを解析、調査するためのツール。GUI 要素の id や class をはじめとした各種属性を確認したり、XBL による無名コンテントを含んだドキュメントツリー構造を確認したりするための必須ツール。

Quick Restart

ワンクリックで Firefox を再起動できるツールバーボタンを追加する。あるいはキーボードショートカット Ctrl+Alt+R で再起動することもできる。新規ウィンドウを開くだけではキャッシュが残ったりモジュールが再読込されなかったりすることがあり

Console 2

エラーコンソールはデバッグの基本であり、それを使いやすくするのはデバッグ効率化のお約束。標準のエラーコンソールに、エラーファイルの種類 (JS, CSS, XML) やコンテキスト (Chrome, Content) で絞り込むなど、ちょっと便利な機能が追加される。Content (Web ページ) のエラーを除外して Chrome のエラーだけ表示するのは特に便利。

Nightly Tester Tools

Nightly ビルド(最新開発版)のテスター向けのツールで、アドオンの対応バージョンチェックを無視してインストールする機能などがある。バージョンアップ対応時の強い味方。

Extension Developer

拡張機能開発者に便利なツールを色々集めた開発サポートツールキット。HTML/XUL のリアルタイム編集エディタ、JavaScript シェル、ファイルから読み込んで browser.xul などのコンテキストで実行する JavaScript Injector、正規表現や XPath のテストツールなどいろいろ入っています。

ExecuteJS

Browser.xul などのコンテキストで JavaScript を実行するコンソール。拡張機能内部で処理する JavaScript コードの部分的なテストや開発に便利。

SQLite Manager

履歴とブックマークを始めとして Firefox で広く使われている SQLite のデータベースの中身を GUI で簡単に確認できるツール。

Extdev Preferences

拡張機能開発向けのデフォルト設定値を有効に切り替えるだけの単機能アドオン。世界一単純なアドオンかも?

拡張機能パッケージスクリプト

拡張機能の xpi パッケージを作成するためのスクリプトは 拡張機能パッケージスクリプトページ で紹介しています。

開発ツール紹介リンク集

その他いろいろなツールの紹介をしているブログ投稿などを集めました。もっといろんなツールを試してみたい方はリンク先の各ページの紹介をご覧ください。

アドオン開発者向けリンク集

アドオン開発者向けの情報源となるサイトやブログなどのリンク集です。

他にもおすすめのサイトやブログなどがありましたらどんどん追加してください。自薦他薦は問いません。

note: Firefox 4 に向けた拡張機能開発情報はこちらのページでまとめています

公式サイト

コミュニティ

最新ニュースや動向紹介

アドオン紹介サイト

アドオンの紹介を頻繁にしているブログやサイトをリストしました。

個人のブログ

アドオン開発者自身のブログなど開発時の参考になるブログをリストしました。

開発者ブログフィード集

開発者のブログから記事を集約したフィードを紹介します。

開発体験談やチュートリアルなど

拡張機能の開発体験談やチュートリアル記事などを紹介します。

イベントや勉強会

イベントや勉強会についてはイベント情報ページをご覧ください。

Firefox 本体の開発情報

Mozilla の開発情報を伝えるブログなどを紹介します。

更新の停止しているサイト

最近あまり更新されていないが歴史的価値のあるサイト。

拡張機能開発入門

自分がブラウザに欲しい機能を簡単に追加できる拡張機能を作ってみようという人のため、チュートリアルやリファレンスなどのドキュメントを紹介します。

アドオン開発者ガイド

Firefox にはアドオン開発用の SDK が公開されており、SDK にはチュートリアルや API リファレンスなどの開発者ガイドも用意されています。現時点ではチュートリアル部分だけが日本語に翻訳されています。残りの部分については翻訳協力者を絶賛募集中です。

これから Firefox のアドオン開発を始める方はまずこのチュートリアルをご覧いただくことをオススメします。

Add-on SDK で始めるアドオン開発

knagato さんにがチュートリアル形式で Add-on SDK を開設した連載投稿です。

Firefox Hacks Rebooted

O’Reilly の “Firefox Hacks Rebooted” では Add-on SDK を使ったアドオン開発(3章)と、SDK を使わずに再起動不要アドオンを開発する Bootstrapped アドオンの開発手順が解説されています。

Jetpack 開発入門

Firefox 4 からは Jetpack と呼ばれる新しい拡張機能開発の仕組みが導入されます。Jetpack では JavaScirpt API を使用して JavaScirpt だけでも簡単に Firefox のバージョンが上がっても動作する拡張機能を作成できるようになります。

その他 Firefox 4 に向けた拡張機能開発情報はこちらのページでまとめています。

拡張機能開発ワークショップ用資料 (XUL アドオン用)

半日などの短期間で拡張機能開発を学ぶためのワークショップ用に作成された資料とサンプル拡張機能のソースコードを公開しています。

Firefox 3.5 以降を対象として、拡張機能開発環境の準備手順など非常に基本的なところから詳細に解説しています。ざっくりと拡張機能開発を体験して全体像が見えるようになったら、続けて他のチュートリアルや MDC のリファレンスを見ながら、自分の欲しい機能をどんどん実現していってください。

Firefox 拡張機能開発チュートリアル (XUL アドオン用)

Software Design誌2007年4月号第2特集「Firefox拡張機能開発チュートリアル」を元に、Firefox の拡張機能開発を始める方のためのチュートリアル冊子が作成されました。この冊子では JavaScript や CSS など Web 開発で一般的な基本さえ知っていれば Firefox の拡張機能開発を行えるように、XUL の書き方の基礎から XPCOM による高度な処理まで詳しく解説しています。また、デバッガの紹介や OSS ライセンスの解説も巻末付録として含められています。

当初 Firefox 2 向けに書かれ、その後 Firefox 3 向けにアップデートされています。残念ながら最新の Firefox で追加された新機能や変更点に関する説明はありませんが、拡張機能開発の基本については今でも変わりなく、最も網羅的な開発入門ドキュメントになっています。

Firefox 3 ではじめる拡張機能開発 (XUL アドオン用)

技術評論社サイトで公開されている、Scrapbook などの拡張機能作者として有名な Gomita さんによる拡張機能開発の連載記事です。

こちらもやはり Firefox 3 向けの記事ではありますが、今でも基本的なところは変わりないし、適度な分量でとても上手くまとめられています。

Mozilla Developer Center

Mozilla の開発者向け公式情報サイトは Mozilla Developer Center (通称 MDC または DevMo) と呼ばれている Wiki サイトです。

MDC には開発者向けの様々な情報が書かれており、拡張機能についてもチュートリアルや FAQ、コードサンプルなどが用意されています。

また、Firefox 本体同様に拡張機能の中で使用する XML ベースのユーザインターフェイス言語 XUL について、XUL の特徴や利点の解説、リファレンスなどが用意されています。

localmdc

MDC のドキュメントをオフラインでも参照できるよう、Gemma さんがスナップショットアーカイブを作成してくださっています。ダウンロード可能な ZIP パッケージと、ブラウザで参照する HTML、Windows のヘルプファイル、Unix 向けに Textinfo など各種形式で公開されているので、必要に応じてご利用ください。

/localmdc/

Addons for Firefox (AMO)

Mozilla 公式のアドオン配布サイト Addons for Firefox (AMO) では誰でも簡単に自分の作った拡張機能を登録、配布できるだけでなく、アドオン開発者向けのツールやドキュメントの紹介なども用意されています。

困ったときは

困ったときには他の拡張機能開発者も集まるフォーラムで質問してみるか、この modest サイトの投稿機能を使って悩みなどを書いてみてください。経験豊富な開発者達がきっとあなたの疑問に答えてくれます。

その他

拡張機能の開発に必要な基本的情報はここまでに紹介した資料やサイトにすべて書かれています。これ以上の情報が欲しいというあなたは、もう拡張機能開発入門は卒業です。一人前の拡張機能開発者として拡張機能開発テクニックを学びながらバリバリ開発を行っていってください。