When enterprises (and others) are customizing Firefox, I get asked pretty much the same questions every time:
- How do I disable private browsing?
- How do I turn off Firefox Sync?
- How do I prevent access to about:config?
- How do I prevent the installation of add-ons?
- How do I prevent access to the add-ons manager?
Doing any of these things properly is actually quite difficult, because none of the people that developed these features ever thought that someone would want to disable them. I think the primary reason for this is that most people that create software have only ever experienced how one type of person uses a computer. They believe that everyone uses a computer like they do; they have full access to the computer, they can do whatever they want and they can customize the computer however they want. This narrow view causes them to create software for people like them.
The reality is that people use computers in many different ways. In many industries, organizations, governments and educational institutions, there is a need to prevent people from having too much access to the computer and the browser. And it’s not just things like kiosks. It could be shared computers at a hospital or bank, or it could be simply that the employees are not very computer literate and you want to make sure they have limited access. Or maybe the browser is used on a piece of equipment and you want to make sure it can’t be messed with. There are tons of reasons why someone would want to disable certain features.
Whenever you create a new feature, you should ask yourself this questions:
Is there a good reason why someone would want to disable this feature?
If the answer is yes, you should provide a single global preference that removes the entire feature. You should also ensure that when this preference is locked, any associated UI associated with that feature is disabled.
Asking this simple question before implementing a new feature will go a long way towards making sure Firefox is enterprise ready.