Mouse Lock Implementation FAQ
Introduction
This page is a catch-all for questions about the work to implement Mouse Lock. Ask or answer any questions below using the style already started. Questions relating to anything around this work are acceptable (development issues, build problems, source code questions, spec issues, etc.). Don't be afraid, just ask! Don't judge others, just answer!
Questions
Why are we using github instead of Mozilla's Mercurial repo?
So that we don't have to learn yet another version control system. We've already learned git and github, why switch now? Mozilla's Mercurial repo is mirrored on github, and our repo is a fork of this. The main github repo (e.g., https://github.com/doublec/mozilla-central) gets updated regularly, so you can pull from it to keep your fork in sync.
How do I build Firefox?
See https://developer.mozilla.org/En/Developer_Guide/Build_Instructions
What's the difference between a DEBUG and RELEASE build?
With a DEBUG build you can attach a debugger or use various logging and instrumentation in order to see how your source code works. A RELEASE build removes this, and optimizes your code.
How do I create a DEBUG build?
You need to add info to your .mozconfig file, see https://developer.mozilla.org/en/Configuring_Build_Options
ac_add_options --disable-optimize ac_add_options --enable-debug
How do I get my build to go faster?
Use Linux if you can (faster I/O), use more RAM if you can. Make sure you enable parallel make jobs so you can take advantage of your CPU cores. In your .mozconfig, add a j value that is 2*cores+1 or at least 2:
mk_add_options MOZ_MAKE_FLAGS=-j5