Skip to content
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

some pixels slightly different color in firefox private browsing #346

Open
henryszp opened this issue Jul 25, 2024 · 3 comments
Open

some pixels slightly different color in firefox private browsing #346

henryszp opened this issue Jul 25, 2024 · 3 comments

Comments

@henryszp
Copy link

In firefox private browsing, some pixels placed by various features are slightly different in color. This can be clearly seen using the paint bucket tool. For instance, when using the handles to change the size of the image, some of the newly created white pixels are slightly off (by around 1 to 3 on one of their RGB values), and using the paint bucket tool will uncover a random sparse arrangement of miscolored pixels. From what I've seen so far this bug affects pixels placed by the resize handles, the paint bucket itself, the shape tool, the brush, and the pencil. This behavior does not happen in regular firefox.

Attached is a picture made with jspaint in firefox private browsing; whitish pixels were placed by two resizes and reddish pixels were placed by the rectangle tool. the density of miscolored pixels seems to depend on some mysterious combination of factors:
test2

@henryszp
Copy link
Author

P.S. the firefox version is 128.0 (64-bit), and I don't know how to send my config settings, but I never did anything weird with them

@14725
Copy link

14725 commented Jul 27, 2024

Maybe it's the effect of the "private browsing" trying to resist fingerprintng based on <canvas /> ...

@1j01
Copy link
Owner

1j01 commented Aug 16, 2024

Yes, this looks like fingerprinting resistance, specifically a feature called "canvas farbling"
Intended to avoid trackers using subtle differences between GPU's rendering as information to distinguish people, it also screws up legitimate use cases like JS Paint. (JS Paint doesn't include any advertisements / trackers.)
I have already extensive code in JS Paint dedicated to dealing with this annoyance. Probably I need to increase the threshold values to account for Firefox's (presumable) new implementation.

I am able to reproduce this, and I tried disabling DuckDuckGo Privacy Essentials, and other extensions, and adding https://jspaint.app as an exception in Firefox's fingerprinting settings, but it didn't help.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants