Color Management in Firefox

03 April 2020

I recently switched from Google Chrome to Mozilla's Firefox to use a more privacy friendly browser with more considered defaults. Mozilla have put a lot of effort into making Firefox an excellent choice and I was pleasantly surprised with how well it holds up - I cannot imagine switching back to a Chromium based browser anytime soon.

There is, however, one aspect to Firefox that did come as a surprise - the default colour management settings leads to dramatically oversaturated colours on a wide gamut monitor such as the MacBook Pro.

There is a way to fix it for general web content and images not tagged with ICC color profiles.

How to set Firefox to be fully color managed

Open Firefox and go to the configuration by entering about:config into the addressbar. You'll be warned about dragons behind the closed door but just click the button to proceed.

Search for color_management to filter the list of settings. You're looking for two in particular.

Firefox color management settings

Change gfx.color_management.enablev4 from false to true.

Change gfx.color_management.mode from 2 to 1.

Restart Firefox and your browser will now be fully colour managed.

A few days after I published this article Firefox Nightly released version 77. The default setting for gfx.color_management.mode in that Nightly build has been set to 1 meaning it will hopefully be set to fully managed in a future stable release.

Firefox color management settings explained

On a default install the mode is set to 2 meaning that colour management will only be applied to images tagged with an ICC color profile. Everything else is rendered without using your colour profile leading to over saturated text and images. Changing this to 1 sets Firefox to be fully colour managed meaning everything rendered by Firefox (including page elements, CSS colours, tagged images and untagged images) will be colour corrected based on your monitor's colour profile.

The enablev4 setting simply allows the use of ICC V4 profiles instead of the default V2 profiles.

You can read up more on the color correction settings on the Mozilla blog. Note that the last information I could find regarding these settings stretches all the way back to Firefox 3.5 released on 30 June 2009 showing just how long nothing has changed.

Examples of differences between Firefox and Chrome

Firefox with no color correction (default settings)

Nintendo site with no color correction settings on Firefox

Note how oversaturated the colours are on Firefox's default settings - especially in the reds. If you look at the colour picker, you should see the red in the header is rendered at #E60012. This is the exact HEX value given in the CSS but on a wide gamut monitor it should be colour corrected to display the red the way it was meant to be shown.

Chrome (default settings)

Nintendo site with default color management settings on Chrome

Chrome uses my MacBook Pro's color profile to apply color correction to the contents rendered on a wide gamut display.

Fully color managed Firefox

Nintendo site with full color management settings on Firefox

Here we have Firefox with the color management settings changed to ensure content Firefox renders is fully managed. This unfortunately does not include videos such as YouTube or Netflix. Sadly, Firefox does not yet apply proper color correction to video content the way Chromium browsers do.

Firefox comparison

Nintendo site with full color management settings on Firefox

This side by side should show the dramatic difference between Firefox settings.

Share this article
Was this post helpful?
Buy me a coffeeBuy me a coffee
About
I am a London based web developer currently focused on JavaScript, Node and React. Get in touch if you wish to compare eslint configs or debate the deadliest enemy in videogame history (spoiler alert: it was the first goomba).
© 39digits 2020