Contribute/Firefox

Contributing to Mozilla Firefox

Step 0: Download and install the prerequisites

https://developer.mozilla.org/en-US/docs/Simple_Firefox_build

Step 1: Download the code

1.1 Mozilla Firefox development uses Mercurial for code management.

hg clone https://hg.mozilla.org/mozilla-central

This will create a folder called mozilla-central which holds all the necessary code to build firefox.

1.2 Create a config file

cd /path/to/mozilla-central touch .mozconfig

Add options to the file:

https://developer.mozilla.org/en/docs/Configuring_Build_Options

1.3 Build the code

make -f client.mk build

OR

./mach build

1.4 Run Firefox

./obj-[...]/dist/bin/firefox

2. Create a Bugzilla account

Go to https://bugzilla.mozilla.org/createaccount.cgi Enter your email address. Confirm it, and login to bugzilla.

3. Search for bugs / File bugs

Good first bugs:

https://bugzilla.mozilla.org/buglist.cgi?quicksearch=sw%3A[good%20first%20bug];list_id=5083823

Student projects:

https://bugzilla.mozilla.org/buglist.cgi?quicksearch=kw%3Astudent-project;list_id=5083824

Recommended:

For first timers, the best bugs are fixing warnings. The next level would be telemetry bugs (just search for "add telemetry" on bugzilla)

If a bug doesn't exist, file one.

4. Fix the bug

This might tricky, especially for newbies. If you don't know where you should start, first try posting on the bug and asking for more information. The fastest way to get some information is to ask on the #developers channel on irc.mozilla.org

5. Post the patch on bugzilla

https://developer.mozilla.org/en-US/docs/Developer_Guide/How_to_Submit_a_Patch

6. Get feedback

Make sure you follow the Coding Style: https://developer.mozilla.org/en-US/docs/Developer_Guide/Coding_Style

7. Mark the bug with Checkin needed

The patch will be merged by someone else as soon as possible.

8. Additional resources

MXR

MXR is the code browsing tool used by the Firefox.

http://mxr.mozilla.org/mozilla-central/

An alternative is DXR, which is supposed to be the a more evolved version of MXR.

http://dxr.mozilla.org/

MDN

Also known as Mozilla Developer Network, this is a good place to get more info about what you need to do.

https://developer.mozilla.org/en-US/docs/Introduction