2
1
In Firefox config (about:config
) I have a value highlighted in bold:
font.internaluseonly.changed user set boolean true
What is this setting for and what does the value mean?
Firefox 40.0
2
1
In Firefox config (about:config
) I have a value highlighted in bold:
font.internaluseonly.changed user set boolean true
What is this setting for and what does the value mean?
Firefox 40.0
3
After reading some pieces of the Firefox source code related to the preference and a Bugzilla ticket that's related to it, I've come to the conclusion that the preference works serves as a kind of "trigger" when the fonts installed on a computer change.
Web pages can specify what font should be used for (parts of) a web page, and to which font a browser should fall back if that font is unavailable. To quote the Mozilla Developer Network article about this:
The
font-family
CSS property lets you specify a prioritized list of font family names and/or generic family names for the selected element. Values are separated by a comma to indicate that they are alternatives. The browser will select the first font on the list that is installed on the computer or that can be downloaded using a@font-face
at-rule.
But what will happen if somebody installs or removes a font while Firefox is running? Well, turns out the Firefox developers have thought of that. Firefox is asking the operating system to notify it if the list of installed fonts changes and, if that happens, it will notify the parts of the browser responsible for rendering the correct fonts on web pages that they should re-fetch the font list and use that for determining which fonts to show.
But how will get the "font change listener" get that information across to the parts of Firefox where it's needed? Apparently, the easiest way to do that is by flipping a preference (from true to false or from false to true, doesn't matter); Firefox components can easily watch a preference for changes, and if it changes, the components responsible for font handling know they should re-fetch the font list.