Bug 1898096 - Replace color settings with "contrast control". r=emilio,fluent-reviewers,settings-reviewers,accessibility-frontend-reviewers,morgan,bolsson,masayuki,mossop,pdfjs-reviewers,calixte
This patch changes the backing prefs by relying on the tristate offered
by browser.display.document_color_use instead of
browser.display.use_system_colors. This simplifies the color
decision tree, and offers a simplified UI.
The tristate preference offered to the user is as follows:
1. "Use platform's contrast settings" (document_color_use=0)
2. "Off" - never use HCM, regardless of platform setting (document_color_use=1)
3. "On" - always use HCM, regardless of platform setting (document_color_use=2)
Option 3 also reveals a colors UI for the user to choose the palette the
browser HCM will use (bg/text/link/visited).
There are three color palettes to choose from in light of the preference
above they are:
1. WIDGET_COLORS: The OS's configured colors used by its theme.
2. HARDCODED_COLORS: Colors deemed as standard and are hard coded into
Firefox (eg. white on black text, blue and purple links).
3. PREFERENCE_COLORS: Colors that are stored in preferences and are
configurable from the colors UI (eg. browser.visited_color and
browser.display.background_color)
The decision over which palette to use is as follows:
* If we are styling browser UI -> WIDGET_COLORS
* else, if resist fingerprinting is enabled -> HARDCODED_COLORS
* else, if document_color_use==0 AND OS HCM is on -> WIDGET_COLORS
* else, if document_color_use==2 -> PREFERENCE_COLORS
* else -> HARDCODED_COLORS
Differential Revision: https://phabricator.services.mozilla.com/D211115
This commit is contained in:
@@ -197,11 +197,9 @@
|
||||
if (
|
||||
Services.prefs.getIntPref("browser.display.document_color_use") == 2
|
||||
) {
|
||||
this.tabpanels.style.backgroundColor = Services.prefs.getBoolPref(
|
||||
"browser.display.use_system_colors"
|
||||
)
|
||||
? "canvas"
|
||||
: Services.prefs.getCharPref("browser.display.background_color");
|
||||
this.tabpanels.style.backgroundColor = Services.prefs.getCharPref(
|
||||
"browser.display.background_color"
|
||||
);
|
||||
}
|
||||
|
||||
this._setFindbarData();
|
||||
|
||||
Reference in New Issue
Block a user