Hacking Firefox

もし C++ の神のような達人である場合、ここはあなたが来るべき場所ではありません。 もしあなたがこれからフロントエンドのコードのハッキングを行おうとしている普通の方ならばならば、私はそのような人たちにフロントエンドのコードを直接いじるようなことはお勧めしません。私たちはいつも プラットフォームを構築する に当たり、さまざまなツールを使うことができるため、私はそのような方法をお勧めします。  フロントエンドのハッキングには、コーディングスキルだけではなくユーザインターフェースや、何層にも積み重なったレイヤーに関する洞察力が必要です。しかし、フロントエンドをちょっと覗いてみる程度であれば比較的簡単です。C++/JavaScript/XML の基本についての十分な知識があれば XPCOM やその類に関して十分な調査をしなくてもはじめることができます。もちろん、物事には順序と言うものがありますが。。

基本からはじめよう

ハッキングを始める前に、どうっやって Bugzilla を使うかを知っておく必要があります。

Bugzilla で 2 週間かそれ以上の時間をかけて、どのバグが深刻なのか順序付けをする(トリアージ)、QA、バグを探すといった作業に携わることは Firefox をハッキングするための必要最低条件です。プロジェクトがどのように動いているのか知ること、重要な事柄が何かを見つけそこに力を注ぐということを学ぶこと、最初のトリアージの過程で学んだことを応用することはレビューや、チェックインを通して自分のやり方を見つけるまで、この先長い間役に立つことでしょう。非常によく管理されているプロジェクトや、更なる注意が必要となるプロジェクトを見るということも、ハッキングを開始するのにいいスタートポイントになります。

Firefox をビルドする

他人によって書かれたより優れたコードをビルドすることもできますが、私はそのようにはしません。ここ にある一般的なインストラクションに沿い、CVS のトランクを使って、ビルドを行ってください。次のステップに進む前に、この作業ができるようになる必要があります。もちろん、Mozilla の CVS から何かをビルドするという作業は、取るに足らないような作業でありません。しかし、もしヘルプを見ながらですらできないとすれば、あなたはおそらくまだ準備ができていないと言えます。しかし、1 時間程度勉強すれば、「コンパイルしたことがない」というレベルから、「Win32 でビルドする」というレベルまで達することができます。

ソースコードの管理

次の問題はどこに app/front-end コードがあるかと言うことです。Firefox 特有のコードは ここ にあります。そして一般的なFE ツールキットコードは ここ にあります。(あなたのCVSツリーにおいては、<tt>mozilla/brower</tt> と <tt>mozilla/toolkit</tt> にそれぞれあります。)

自分が従事するバグを選ぶ

問題点を指摘し、分類する。それ自体が時々簡単なことがある。そして、もし比較的簡単なバグがあればそれに取り組む。また、ステータスホワイトボードの中に「よい初期のバグ」を含むバグはやはり、初心者が取り組むのによい場所でしょう。そしてもちろん、あなたを煩わせているバグから取り組むと言うのもいいでしょう。よい個人的な満足感がそこにはあるでしょう。

どこでヘルプを探せばいいのか

もし自分で理解できないことがあれば、Mozilla IRC server 上の開発者に聞くのがよいでしょう。しかし、実際に人に聞く前に、lxr/bonsai/Google (と、この wiki)といった他の資料をまず隈なく調べてください。もし、あなたのケースについてディスカッションする用意ができておらず、UI がどのように見えるべきなのかという質問であれば、Mike Connor や他のFirefox ピアー達 に聞くのがおそらく最も最良の方法でしょう。

ユーザエクスペリエンスを変える

もし新しい特徴の実装、あるいはユーザエキスペリエンスに影響を与えるような動作の変更を考えている場合、そのプロジェクトを始める前に、それに関与する人からのフィードバックを得るのがよいでしょう。Mike Connor やFirefox ピアー の一人と話をし、反応を得たり、調整を行いましょう。もし彼らが(この役に携わっていない人々がレビューに対してどのような反応をしたかに基づいて)ノーと言った場合は、残念ですが、あきらめざるを得ません。

Document Tags and Contributors

Contributors to this page: Shimono, Foximer
最終更新者: Shimono,