New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FPP + RFP.pbMode applies RFP globally [1851816] #1717
Comments
can anyone else reproduce on nightly? |
Has Regression range (maybe, because I haven't tested the RFPLite prefs): |
yes #1716 (comment)
|
Can no-one else reproduce my bug with the exact same steps? I'm not making this up, look at the pic. I feel like I'm going mad I'm make sure to always close all instances of my TZP test and to then retest in a new tab. The pic shows two open at the same time, but they are different window modes, and I get the same result if I did close them - this was just done for the pic why: because some things are tied to the "cookie store" (not an actual cookie) and do affect some RFP results (such as css) - and workers can be long lived. IDK if that makes a difference exactly here, since we're only testing a binary RFP vs FPP. IMO these aren't really meant to be toggled mid session, and pages need reloading to take effect, and there may be some quirks. Of course just testing canvas may work on it's own: edit, nope, it fails (you do need to do a F5/reload or whatever) |
super simplified STR (ignore private windows)
for the love of pizza, can someone else reproduce? |
STR = steps to reproduce
yup, have edited my simple STR |
sorry for the thumbs up and tadas - I'm just elated someone else can replicate (otherwise I am going mad and was going to retire from the internet and give up), not elated that there is a bug |
reproduced in MX linux so yeah seems to be a FF bug |
Each time you run, the control test is random - i.e r, g and b values are anything from 0 to So even a cached spoofing will change every test, because the control is random The figures are just some old code I used to fingerprint the spoof. e.g. RFP just totally randomizes in a pattern. So the chances that all 400 pixels or cells change is very high, i.e to get a collision would require all four randomized r, g, b, a values in that cell to match my control ones, which is not mathematically impossible, but super unlikely. But as you can see, not every spoofed value is always different - 400 pixels x 4 values = 1600 data points so here, below, is RFP and it shows all 400 pixels were altered in some way, but not all of them for all 4 channels - e.g. r is 398, so the randomized r value on two pixels were the same, etc .. which is about right - 1 collision in 256
the other bit is by how much it changes the r, g, b , a value. a lot of extensions, and even built protections like RFP or brave's farbling, are pretty stable in these values: what channels are changed, % of pixels affected, % range of altering the value FPP seems to be always alter the value
anyway, the point of these was so I can fingerprint the anti-fingerprinting |
reproduced on my end as well (macOS) |
well, it could be that I have no idea what I'm doing and am completely wrong (wouldn't be the first time) |
Sorry. I should have mentioned that I did ran mozregression with the following prefs set {
"privacy.resistFingerprinting": false,
"privacy.resistFingerprinting.pbmode": true,
"privacy.fingerprintingProtection": true,
"privacy.fingerprintingProtection.pbmode": false
}
But if I ran https://ritter.vg/misc/ff/canvas.html with the same prefs I keep getting randomized canvas in a normal window, and canvas permission prompt every time I click on "Extract". How is that even possible? |
Nightly, Windows Fresh Profile:
FPP.pbmode On:
RFP.pbmode On:
So yes, I can reproduce this with canvas. I also tested with performance.now from https://arkenfox.github.io/TZP/tests/timing.html but I don't think this test is that helpful, I would expect it to just call perf.now() as quickly as it could, and with RFP we should see coarse delineated steps, and without RFP it would have much finer steps. As it is, it seems to be trying to give you 24 ms increments, which is hard to do the math on what you expect to see. I tried finding a page on TZP that just showed my timezone, but couldn't :-p I used https://everytimezone.com/ Nothing: expected value (local time) So it turns out that enabling RFP.pbmode, and FPP in regular mode causes the bug. You need both of those, individually they work as expected. Knowing this I went back and tested canvas, and got the same behavior. I'll look at this next week, I'll file a bug on Tuesday if you don't get to it first :) |
well it's right there ... https://arkenfox.github.io/TZP/tests/timezones.html - edit: you need to click
that's an old shitty test page, I plan (on my massive ToDo list) to make a much larger one that just iterates 50 different tests of whatever, so you just click run, and go make a cup of tea |
fwiw, just using the main TZP test as per both OP here and in the other issue, shows all the green RFP health checks, so it;s not like you need to check timezone separately |
so back then we had 100ms clamping. But even today, clicking it I can easily see if RFP is working
anyway, here's what TZP's main test does: examples
|
IDK. It's hard to follow and it's not my test - there's no easy way to tell if it's FPP, but the RFP one is easy to spot. Always F5 after changing the prefs |
patch landed in nightly (123) 3 hrs ago (sorry for the delay in letting you all know) .... just need to test it |
|
ok, I thought I had a false result, but now can't replicate - maybe the order of changes, or something tied to the "cookie store/jar" (like css) or whatever they call it, but I'm always careful to close all existing tabs and test in new ones closing for now |
https://bugzilla.mozilla.org/show_bug.cgi?id=1851816
set prefs
Set either of the following pref combos, they are the same, that is RFP in pb windows as it overrides everything else, and FPP in normal windows because RFP is not enabled there
one
two
test
results
I get RFP in both windows
expected results
normal windows should use FPP, pb windows should use
FPPRFPThe text was updated successfully, but these errors were encountered: