このページでは Firefox 開発ツール へコントリビュートするシンプルな方法を説明します。この方法であれば、Firefox をビルドしたり特別な環境を用意する必要はありません。
準備として必要なのは、Firefox のソースコードと Firefox Nightly をダウンロードすることだけです。ダウンロードが終わったら、ソースコードから開発ツールを起動するように Nightly を設定します。ソースコードを編集した際には、シンプルなショートカットキーを Nightly で入力するだけで、自分の書いた新しいソースコードが開発ツールに反映されます。
Firefox のソースコードをダウンロード
GitHub でミラーリングされている https://github.com/mozilla/gecko-dev をクローンします。
git clone --depth 1 https://github.com/mozilla/gecko-dev.git
--depth 1
を付けることでダウンロード時間を大幅に短縮できます(1MB/s の接続環境であれば、1 時間から 5 分に短縮されます)。こうすると、リポジトリの履歴全体を確認できなくなりますが、初めてパッチを書く際には問題とならないはずです。
Firefox Nightly のインストール
Firefox Nightly は こちら からダウンロードできます(コピー & ペーストできるリンクが必要であれば こちら も利用できます)。
Firefox に開発用のプロファイルを設定
Firefox の開発用に個別のプロファイルを用意すると、以下のようなことが可能となります。
- 異なる Firefox のインスタンスを 2 つ同時に実行できます(1 つは通常のブラウジング用、もう 1 つはハッキング用)。
- クラッシュの検証時に開発用のプロファイルを利用していれば、ブックマークや履歴などの重要なデータを失わずに済みます。
この設定画面を表示させるには、コマンドライン引数に "-no-remote -P
" を与えて Firefox を実行するだけであり、非常に簡単です。
Windows の場合は Firefox を起動するショートカットをデスクトップに作成し、この引数が渡るようにリンクを編集します。それにはまずショートカットを右クリックし、「プロパティ」を選択し、「リンク先」の末尾に " -no-remote -P
" を追加します。
詳しくは こちらのドキュメント を参照してください。
Nightly の開発ツールをソースコードから読み込む
それでは開発用のプロファイルで Nightly を起動し、タブの URL に about:debugging
を入力します。続いて、
- Add-ons パネルが選択されていることを確認し、"Load Temporary Add-on" をクリックします。
- 先程クローンした git リポジトリのルートディレクトリに移動し、"devtools" フォルダをダブルクリックし、
- "install.rdf" ファイルを選択します。
- 以上です! アドオンが登録されてリストに表示されているのを確認できるはずです。
- 開発ツールを起動します。この時点でローカルのソースコードが読み込まれています。コードベースに 編集・検証を加え、ショートカットキー CTRL+ALT+R を押下して開発ツールをリロードします。再度開発ツールを起動すれば、自分の加えた変更が反映されているはずです。
開発時の利便性を向上させる設定項目がこのアドオンによって有効化されています。
- "devtools.chrome.enabled=true" と "devtools.debugger.remote-enabled=true" によって ブラウザツールボックス が有効になります(これらは開発ツールにおいてブラウザとアドオンのデバッガを有効 とリモートデバッガを有効 の 設定項目 と等価です)。
- "devtools.debugger.prompt-connection=false" によってブラウザーツールボックスへの警告ダイアログが抑制されます。
Nightly とソースコードを最新版に同期
注意: Nightly を更新した際はソースコードも更新することが重要です。Firefox を更新する毎にローカルのソースコードも更新すべきです。
ソースコードを更新する際には以下を実行します。
git fetch origin
これによりリモートの更新がローカルにダウンロードされます。
これが終わったら、以下の 2 通りの方法で自分のファイルを更新します。
- ローカルに変更を何も加えていない場合
git checkout origin/master
- ローカルに加えた変更を保存したい場合
git rebase -i origin/master
git の利用方法に関する詳細は git のドキュメント を参照してください。
コントリビュート
この素早いワークフローを利用して開発ツールにコントリビュートすることができます。 このワークフローは通常の長いプロセスと非常に似ていますが、ここまで説明したように必要な準備が短い点で異なります。通常では時間のかかる段階をスキップして、直接 バグの修正 に取り掛かることが可能になります。