拡張機能開発テクニック
このページでは拡張機能開発の Tips やツールなどの情報を集めています。
このサイトの殆どのページは誰でも自由に編集できます。他にもいい記事があればいわゆる「まとめサイト」の感覚で皆さんどんどん編集していってください。
note: Firefox 4 に向けた拡張機能開発情報はこちらのページでまとめています
拡張機能開発の基本ツール
- 拡張機能のベースとなるファイルを自動生成する
- 開発者向けツールページで自動生成ツールやサービスを紹介しています
- 拡張機能のファイルから xpi パッケージを自動生成する
- 拡張機能パッケージスクリプトページで紹介しています
- ブラウザやドキュメントの構造 (DOM, CSS, JS …) 解析ツール – DOM Inspector
- 開発者向けツールページで DOM Inspector の使い方を解説したサイトを紹介しています
- その他の開発者向けツール
- 開発者向けツールページをご覧ください
デバッグテクニック
- 拡張機能デバッグインターフェイスのサンプルコード
- エラーコンソールや Firebug のコンソールにログ出力したりするためのインターフェイスを定義したサンプルコードです。
- エラーコンソールにログを出力する – nsIConsoleService
- 拡張機能からエラーコンソールにメッセージを出力する方法は、MDC に解説記事があります。
- その他のデバッグツール
- JavaScript デバッガなどについては 開発者向けツールページをご覧ください
サンプルコード集
- MDC – Code snippets
- MDC には拡張機能などで利用できるコードサンプル集ページが用意されています。
- jslibs – JavascriptTips
- JavaScript 一般の Tips としては jslibs の Tips 集ページのコードが参考になります。
開発 Tips/Hacks
- ユーザ設定操作インターフェイスのサンプルコード
- ユーザ設定 (preferences) の読み書きを簡単に行うためのインターフェイスを定義したサンプルコードです。
- XMLHttpRequest のサンプルコード
- Web ページや RESTAPI などからデータを取得するときに使うコードのサンプルです。
- ステータスバーに独自の要素を追加する
- ステータスバーにカスタム要素を追加する方法は、MDC で解説されています。
- タブを操作するコード
- タブブラウザ関連のコードサンプルが、MDC に掲載されています。
- window.open および window.openDialog と 引数 features の説明
- ウィンドウやダイアログを開くメソッドの引数について、MDC に解説記事があります。
- XUL textbox のオートコンプリート
- autocompletesearch 属性を使ってフォームの自動補完を実現する方法について、cou929_la さんが書いています。
- Web ページの拡大率を取得する
- 拡張機能などから、ブラウザのコンテンツエリアに表示された Web ページの拡大率を調べる方法について、Gomita さんが書いています。
- Firefox を再起動する
- 拡張機能から Firefox を再起動する方法について、Gomita さんが書いています。
- nsISafeOutputStream で安全なファイルの書き込み
- 書き込み中のクラッシュなどでファイルが破損しないよう安全にファイル書き込みする方法について、Gomita さんが書いています。
- HTMLDocument の動的な生成
- HTML のソース文字列から HTMLDocument オブジェクトと DOM ツリーを構築する方法について、nanot_vi さんが書いています。
- 選択範囲のリンクを取得する
- DOM 2 Range を使って選択範囲中のリンクを取得する方法について、nanot_vi さんが書いています。
modest の投稿記事
-
- XPCOM 経由で geolocation API を操作する方法について、mitsugu さんが書いています。
- 自分のサイトで配 布しているアドオンを AMO に登録する
- 配布元を自分のサイトにしたまま AMO にも登録する際の手順を、Gomita さんが書いています。
- 画面の描画内容を一時的にロック する方法
- ウィンドの描画を一時停止、再開させる方法について、Piro さんが書いています。
- クリックされたタブや ボタンを確実に取得する方法
- 要素が複雑な入れ子になっていてもクリックされた対象を適切に判断する方法について、Piro さんが書いています。
- 機能が呼び出されたことを他のアド オンに通知する
- DOM Level2 Events を用いてアドオン間で連携する方法について、Piro さんが書いています。
- 機能を他の アドオンからキャンセルできるようにする
- アドオン間で連携して他のアドオンの処理を途中でキャンセルさせる方法について、Piro さんが書いています。
- ダウンロードマネージャに進捗状況を表示させつつダウンロードする
- nsIDownloadManager インターフェイスを用いて拡張機能からダウンロードマネージャを利用する方法について、Gomita さんが書いています。
-
- NetUtil.jsm という JS モジュールを使ってファイル書き込みを別スレッドで行う方法について、Gomita さんが書いています。
- ブラウザウィンドウのサムネイルを描画する
- ブラウザウィンドウのサムネイル画像を描画する方法について、Gomita さんが書いています。
- タブ切り替えパネル風 の半透明ポップアップ
- panel 要素で半透明のポップアップを実現する方法について、Gomita さんが書いています。
- nsIPrefはFirefox 3.7以降では利用できません
- Firefox 3.7 以降では nsIPref インターフェイスが使用できなくなる件について、mkato さんが書いています。
- FUEL の仕様変更予定 (Application.getExtensions)
- Firefox 3.7 以降では FUEL の Application.extensions.get() が使用できなくなる件について、dynamis さんが書いています。
- 拡 張アンインストール時になんらかの処理を行う
- 拡張機能のアンインストール時に uninstall イベントハンドラで処理する方法について、mitsugu さんが書いています。
- Firefox 3.7 でのナビゲーションツールバーのアイコン画像サイズ
- Firefox 3.7 でツールバーのアイコン画像サイズが変更される件について、Gomita さんが書いています。
- Firefox 3.7でのjs-ctypes
- Firefox 3.7 以降での js-ctypes で構造体を引数に持つ関数の呼び出し方法について、mkato さんが書いています。