Compare Revisions

Hacking Firefox

Change Revisions

Revision 46650:

Revision 46650 by sean_morrisey on

Revision 46651:

Revision 46651 by igstan on

Title:
Hacking Firefox
Hacking Firefox
Slug:
Hacking_Firefox
Hacking_Firefox
Content:

Revision 46650
Revision 46651
n51      The next problem is "where does the app/front-end code liven51      The next problem is "where does the app/front-end code live
>?". You can navigate and search through the full source code onli>?". You can navigate and search through the full source code onli
>ne in <a class=" external" href="http://mxr.mozilla.org/mozilla-c>ne in <a class="external" href="http://mxr.mozilla.org/mozilla-ce
>entral/" title="http://mxr.mozilla.org/mozilla-central/">MXR</a>,>ntral/" title="http://mxr.mozilla.org/mozilla-central/">MXR</a>, 
> which also makes it easy to link to specific files or lines in t>which also makes it easy to link to specific files or lines in th
>he source. The code is organized into various <a class=" external>e source. The code is organized into various <a class="external" 
>" href="http://mxr.mozilla.org/mozilla-central/source/" title="ht>href="http://mxr.mozilla.org/mozilla-central/source/" title="http
>tp://mxr.mozilla.org/mozilla-central/source/">top-level folders</>://mxr.mozilla.org/mozilla-central/source/">top-level folders</a>
>a>. The front-end code lives in <a class="external" href="http://>. The front-end code lives in <a class="external" href="http://mx
>mxr.mozilla.org/mozilla-central/source/browser/" title="http://mx>r.mozilla.org/mozilla-central/source/browser/" title="http://mxr.
>r.mozilla.org/mozilla-central/source/browser/">browser/</a> (In y>mozilla.org/mozilla-central/source/browser/">browser/</a> (In you
>our HG tree, it would be <code>mozilla/browser/</code>). For a qu>r HG tree, it would be <code>mozilla/browser/</code>). For a quic
>ick start, the most important files that you probably want to pok>k start, the most important files that you probably want to poke 
>e around are:>around are:
n54      <li>main front-end code: <a class=" external" href="http://n54      <li>main front-end code: <a class="external" href="http://m
>mxr.mozilla.org/mozilla-central/source/browser/base/content/brows>xr.mozilla.org/mozilla-central/source/browser/base/content/browse
>er.js" title="http://mxr.mozilla.org/mozilla-central/source/brows>r.js" title="http://mxr.mozilla.org/mozilla-central/source/browse
>er/base/content/browser.js">browser.js</a>>r/base/content/browser.js">browser.js</a>
n56      <li>structure:&nbsp;<a class=" external" href="http://mxr.mn56      <li>structure:&nbsp;<a class="external" href="http://mxr.mo
>ozilla.org/mozilla-central/source/browser/base/content/browser.xu>zilla.org/mozilla-central/source/browser/base/content/browser.xul
>l" title="http://mxr.mozilla.org/mozilla-central/source/browser/b>" title="http://mxr.mozilla.org/mozilla-central/source/browser/ba
>ase/content/browser.xul">browser.xul</a>>se/content/browser.xul">browser.xul</a>
n58      <li>tabs-related code: <a class=" external" href="http://mxn58      <li>tabs-related code: <a class="external" href="http://mxr
>r.mozilla.org/mozilla-central/source/browser/base/content/tabbrow>.mozilla.org/mozilla-central/source/browser/base/content/tabbrows
>ser.xml" title="http://mxr.mozilla.org/mozilla-central/source/bro>er.xml" title="http://mxr.mozilla.org/mozilla-central/source/brow
>wser/base/content/tabbrowser.xml">tabbrowser.xml</a>>ser/base/content/tabbrowser.xml">tabbrowser.xml</a>
n60      <li>general appeareance: <a class=" external" href="http://n60      <li>general appeareance: <a class="external" href="http://m
>mxr.mozilla.org/mozilla-central/source/browser/base/content/brows>xr.mozilla.org/mozilla-central/source/browser/base/content/browse
>er.css" title="http://mxr.mozilla.org/mozilla-central/source/brow>r.css" title="http://mxr.mozilla.org/mozilla-central/source/brows
>ser/base/content/browser.css">browser.css</a>>er/base/content/browser.css">browser.css</a>
n62      <li>OS specific appearance: <a class=" external" href="httpn62      <li>OS specific appearance: <a class="external" href="http:
>://mxr.mozilla.org/mozilla-central/source/browser/themes/winstrip>//mxr.mozilla.org/mozilla-central/source/browser/themes/winstripe
>e/browser/browser.css" title="http://mxr.mozilla.org/mozilla-cent>/browser/browser.css" title="http://mxr.mozilla.org/mozilla-centr
>ral/source/browser/themes/winstripe/browser/browser.css">windows<>al/source/browser/themes/winstripe/browser/browser.css">windows</
>/a> (<a class=" external" href="http://mxr.mozilla.org/mozilla-ce>a> (<a class="external" href="http://mxr.mozilla.org/mozilla-cent
>ntral/source/browser/themes/winstripe/browser/browser-aero.css" t>ral/source/browser/themes/winstripe/browser/browser-aero.css" tit
>itle="http://mxr.mozilla.org/mozilla-central/source/browser/theme>le="http://mxr.mozilla.org/mozilla-central/source/browser/themes/
>s/winstripe/browser/browser-aero.css">2</a>), <a class=" external>winstripe/browser/browser-aero.css">2</a>), <a class="external" h
>" href="http://mxr.mozilla.org/mozilla-central/source/browser/the>ref="http://mxr.mozilla.org/mozilla-central/source/browser/themes
>mes/pinstripe/browser/browser.css" title="http://mxr.mozilla.org/>/pinstripe/browser/browser.css" title="http://mxr.mozilla.org/moz
>mozilla-central/source/browser/themes/pinstripe/browser/browser.c>illa-central/source/browser/themes/pinstripe/browser/browser.css"
>ss">mac</a>, <a class=" external" href="http://mxr.mozilla.org/mo>>mac</a>, <a class="external" href="http://mxr.mozilla.org/mozill
>zilla-central/source/browser/themes/gnomestripe/browser/browser.c>a-central/source/browser/themes/gnomestripe/browser/browser.css" 
>ss" title="http://mxr.mozilla.org/mozilla-central/source/browser/>title="http://mxr.mozilla.org/mozilla-central/source/browser/them
>themes/gnomestripe/browser/browser.css">linux</a>>es/gnomestripe/browser/browser.css">linux</a>
n75      There are many ways to find interesting things to work on. n75      There are many ways to find interesting things to work on. 
>One good way is to search Bugzilla for <a class=" link-https" hre>One good way is to search Bugzilla for <a class="link-https" href
>f="https://bugzilla.mozilla.org/buglist.cgi?status_whiteboard_typ>="https://bugzilla.mozilla.org/buglist.cgi?status_whiteboard_type
>e=allwordssubstr&amp;status_whiteboard=%5Bgood%20first%20bug%5D&a>=allwordssubstr&amp;status_whiteboard=%5Bgood%20first%20bug%5D&am
>mp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED>p;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&
>&amp;list_id=314531" title="https://bugzilla.mozilla.org/buglist.>amp;list_id=314531" title="https://bugzilla.mozilla.org/buglist.c
>cgi?status_whiteboard_type=allwordssubstr&amp;status_whiteboard=[>gi?status_whiteboard_type=allwordssubstr&amp;status_whiteboard=[g
>good first bug]&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bu>ood first bug]&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug
>g_status=REOPENED&amp;list_id=314531">bugs marked as [good first >_status=REOPENED&amp;list_id=314531">bugs marked as [good first b
>bug]</a>. In addition, the UX&nbsp;team always have lists of new >ug]</a>. In addition, the UX&nbsp;team always have lists of new f
>features and improvements wanted for Firefox. Here is a handy lis>eatures and improvements wanted for Firefox. Here is a handy list
>t prepared for the <a class=" external" href="http://etherpad.moz> prepared for the <a class="external" href="http://etherpad.mozil
>illa.com:9000/stanford" title="http://etherpad.mozilla.com:9000/s>la.com:9000/stanford" title="http://etherpad.mozilla.com:9000/sta
>tanford">Stanford Bootcamp</a>. Other than that, feel free to ask>nford">Stanford Bootcamp</a>. Other than that, feel free to ask a
> around: there's no shortage of things to work on, and people wil>round: there's no shortage of things to work on, and people will 
>l point you in the right directions.>point you in the right directions.
n81      When you're ready to start coding, there are many tools andn81      When you're ready to start coding, there are many tools and
> add-ons to help you. <a class=" link-https" href="https://addons> add-ons to help you. <a class="link-https" href="https://addons.
>.mozilla.org/en-US/firefox/addon/dom-inspector-6622/" title="http>mozilla.org/en-US/firefox/addon/dom-inspector-6622/" title="https
>s://addons.mozilla.org/en-US/firefox/addon/dom-inspector-6622/">D>://addons.mozilla.org/en-US/firefox/addon/dom-inspector-6622/">DO
>OM inspector</a> will show you the whole structure of the browser>M inspector</a> will show you the whole structure of the browser 
> window and allow you to change properties and styles. The <a hre>window and allow you to change properties and styles. The <a href
>f="/en/Error_Console" title="https://developer.mozilla.org/en/Err>="/en/Error_Console" title="https://developer.mozilla.org/en/Erro
>or_Console">Error Console</a> and the <a class=" link-https" href>r_Console">Error Console</a> and the <a class="link-https" href="
>="https://addons.mozilla.org/en-US/firefox/addon/extension-develo>https://addons.mozilla.org/en-US/firefox/addon/extension-develope
>per/" title="https://addons.mozilla.org/en-US/firefox/addon/exten>r/" title="https://addons.mozilla.org/en-US/firefox/addon/extensi
>sion-developer/">Javascript Shell</a> allow you to quickly experi>on-developer/">Javascript Shell</a> allow you to quickly experime
>ment and execute JS code in the running Firefox instance. <a clas>nt and execute JS code in the running Firefox instance. <a class=
>s=" external" href="http://getfirebug.com/wiki/index.php/Chromebu>"external" href="http://getfirebug.com/wiki/index.php/Chromebug" 
>g" title="http://getfirebug.com/wiki/index.php/Chromebug">Chromeb>title="http://getfirebug.com/wiki/index.php/Chromebug">Chromebug<
>ug</a> allows you to debug the code in a similar fashion as Fireb>/a> allows you to debug the code in a similar fashion as Firebug 
>ug does for webpages.>does for webpages.
n87make -C browsern87make -f client.mk build MOZ_CURRENT_PROJECT=browser
t93      Bonus: these are two interesting <a class=" link-https" hret93      Bonus: these are two interesting <a class="link-https" href
>f="https://blog.mozilla.com/jorendorff/2011/04/18/how-to-fix-a-bu>="https://blog.mozilla.com/jorendorff/2011/04/18/how-to-fix-a-bug
>g-episode-434494-part-1/" title="https://blog.mozilla.com/jorendo>-episode-434494-part-1/" title="https://blog.mozilla.com/jorendor
>rff/2011/04/18/how-to-fix-a-bug-episode-434494-part-1/">blog</a> >ff/2011/04/18/how-to-fix-a-bug-episode-434494-part-1/">blog</a> <
><a class=" external" href="http://blog.mozilla.com/jorendorff/201>a class="external" href="http://blog.mozilla.com/jorendorff/2011/
>1/04/20/how-to-fix-a-bug-episode-434494-part-2/" title="http://bl>04/20/how-to-fix-a-bug-episode-434494-part-2/" title="http://blog
>og.mozilla.com/jorendorff/2011/04/20/how-to-fix-a-bug-episode-434>.mozilla.com/jorendorff/2011/04/20/how-to-fix-a-bug-episode-43449
>494-part-2/">posts</a> on the process of working in a Firefox fro>4-part-2/">posts</a> on the process of working in a Firefox front
>nt-end bug.>-end bug.

Back to History