TL;DR: If you want to customize Firefox using Enterprise Polices, you can create customized policies via the handy Enterprise Policy Generator. You can also browse a collection of policies I created, available for download.
You can also watch a video.
Background
I have posted various Firefox setup guides, and while they are easy to follow, it would be a lot simpler for you to download a file to get my preferred setup.
That’s the premise behind user.js overrides like Arkenfox and Betterfox.
user.js
is a way to override Firefox preferences, but it can be annoying to troubleshoot and is not the preferred method for managing Firefox configurations centrally. For that, we look to Enterprise Policies for Firefox.
Since Mozilla actively supports it, there are some niceties built into Firefox that make enterprise policies easier to troubleshoot, like the about:policies page, and the notification that appears in the settings page when policies are active.
While I had planned a tutorial on enterprise policies in Firefox for years, mostly as a response to user.js
projects, I never got around to writing it up, as it is fiddlier than pointing and clicking on buttons in Firefox – too much work for not a lot of gain.
Beyond that, it is a bit weird to want or need to manage your tools in the way an enterprise would - that feels almost like willingly putting on a straitjacket - why would I want to restrict myself in this way?
For the geeky among us, people curate, store and deploy their dotfiles in order to preserve settings - especially complex ones – people on a *nix shell may manage custom .bashrc
or .aliases
files, and Git users likely have a custom .gitconfig
that they’d rather not recreate across installs.
Still, that isn’t something I as an end user had a whole lot of interest in for Firefox - I run the Nightly release channel, and I like playing with the new bits and bobs - my inclination isn’t to “manage” Firefox, it is to explore it as a living project.
Still, I wanted to post something to enable people who are currently using dodgy user.js
files and forks without security teams to use the mainline version of Firefox, just tweaked in known safe ways.
I support Firefox, so people suffering from subpar experiences on the web that reflect poorly on the browser (because they are using dodgy user.js
overrides) is a problem that we should try to solve.
If you want to manage your Firefox settings (or just want a pre-configured setup), read on.
Building your own policies
For this tutorial, I’m focusing on managing Firefox using policies.json, as they are portable across all OSes that Firefox supports.
You can refer to the documentation for the policy templates to build your policies file.
If you prefer a point and click method to customize your settings, you can instead try Enterprise Policy Generator, an excellent extension that lists policy settings, allows you to customize them, and lets you export a ready-to-use policies.json
file.
If you’d rather download a file to get an optimized setup, read on.
My recommended policies
I went through the options available in the Enterprise Policy Generator extension, and pored through Mozilla’s documentation, along with lists of tweaks (like on r/firefox), and ended up with three personas.
-
I wanted to create a setup for my friends and family, for people who want something that just works. These are people that may be using Chrome or Edge today. Firefox is already more user focused than those browsers - my setup just tweaks it a bit more. This is the Home persona.
-
If you are interested in privacy or more technical features, I created policies for an Enthusiast persona. This might feel similar to something like Brave.
-
If you really into privacy, you can instead choose my Amnesiac persona - this one sets up Firefox to not delete cookies on browser restart, and enables some additional privacy features. If you are interested in browsers like LibreWolf, this setup will get you most of what you want, without a lot of the downside.
The table below shows how the policies are setup.
Each of the policies have two variations - the default “relaxed” version and the “enforcing” one. In the relaxed setup, most of what I have configured can be changed if you don’t share my preferences. The relaxed versions are what I would want to use - I don’t want to feel like I am in a straitjacket. The enforcing versions - which are indicated by a 🔒 in the filename and in the locked preference (shown below) make it impossible to modify the preference. This is useful when you would rather not accidentally change a setting - or if you simply want to ensure that it remains locked.
Obviously, not every setting will be one you will agree with, so feel free to fork them.
Home | Enthusiast | Amnesiac |
---|---|---|
Privacy and Security
|
Privacy and Security
|
Privacy and Security
|
Fixed Annoyances
|
Fixed Annoyances
|
Fixed Annoyances
|
Miscellaneous
|
Miscellaneous
|
Miscellaneous
|
Getting the policies installed
Now that you have the policies, how do you install them?
Here’s Mozilla’s documentation:
To implement this policy support, a
policies.json
file needs to be created.On Windows, create a directory called distribution where the EXE is located and place the file there.
On Mac, the file goes into
Firefox.app/Contents/Resources/distribution
.On Linux, the file goes into
firefox/distribution
, where Firefox is the installation directory for Firefox, which varies by distribution - or you can specify system-wide policy by placing the file in/etc/firefox/policies
.
Please feel free to reach out with any feedback, and I’d love to hear about how you are using these policies - drop me a message!
If you liked this material, please consider supporting me. You can message me or follow this blog on Mastodon.