Closed Bug 1715507 Opened 6 months ago Closed 2 months ago

Split the layout.css.font-visibility.level pref into separate settings for different browsing modes


(Core :: Layout: Text and Fonts, enhancement)




94 Branch
Tracking Status
firefox94 --- fixed


(Reporter: jfkthame, Assigned: jfkthame)


(Blocks 1 open bug)



(1 file)

To enable a more flexible roll-out/deployment of fingerprinting protections, we'd like to split the current "global" font-visibility pref into separate prefs for different modes, distinguishing between Standard vs Strict tracking protection, and between normal and Private browsing contexts.

This will allow us to experiment with different levels of restriction depending on the user's tracking-protection/privacy mode.

Depends on: 1715501
Assignee: nobody → jfkthame
Pushed by
Support different levels of font-visibility per context, depending on tracking/fingerprinting protection settings. r=emilio

Backed out for causing mochitest failures on test_bug418986-2.html

Flags: needinfo?(jfkthame)

That test changes the privacy.resistFingerprinting pref; I guess the fact that we now observe that change and trigger reflow (which we should have done before, but failed to actually register the observer!) is upsetting this test. Probably we need to somehow ensure the pref-change is fully handled before the test proceeds.

Flags: needinfo?(jfkthame)

You probably need to tweak this line.

Yeah, that looks plausible. :) Meanwhile, I noticed there's another pref that nsPresContext also wants to observe (and which likewise is supposed to affect media queries), but it forgot to actually register. So after verifying things on try, I'm intending to fix up its pref-observing behavior as a separate, standalone bug (which will include fixing this test); then we can safely re-land here.

Can we keep layout.css.font-visibility.level as a global override so each mode doesn't have to be changed separately? This pref is a common workaround for font issues and it's much easier to communicate a single change to users rather than four. Existing users will also want to retain it and since there is no migration to the new prefs, it would avoid them losing protection and having to reapply it.

When you say "a global override", how would you expect it to interact with the separate per-browsing-mode prefs? Would it have an "unset" state, but if set it simply overrides them all? Or would it override lower values, or higher ones (in effect "clamping" their values to either a min or max setting)? It's unclear to me what would be the most useful type of interaction here.

Pushed by
Support different levels of font-visibility per context, depending on tracking/fingerprinting protection settings. r=emilio
Closed: 2 months ago
Resolution: --- → FIXED
Target Milestone: --- → 94 Branch
Blocks: 1736005
You need to log in before you can comment on or make changes to this bug.