kkapsner / CanvasBlocker

A Firefox extension to protect from being fingerprinted.
https://canvasblocker.kkapsner.de
Mozilla Public License 2.0
1.17k stars 87 forks source link

TZP: isPoint* returns a type error (when checked) #696

Closed Thorin-Oakenpants closed 7 months ago

Thorin-Oakenpants commented 7 months ago

see

undefined

kkapsner commented 7 months ago

I'm not able to reproduce your problem. What are your settings? Which Version of FF and CB are you using?

Thorin-Oakenpants commented 7 months ago

Oh, it's been doing it for years (I assumed you knew and it was some limitation) and in any setting where I have isPoint* protected

lemme set up a new FF124 profile and install CB and leave at defaults .. brb

Thorin-Oakenpants commented 7 months ago

OK, visually all the settings look identical, I even had nightly and FF124 side by side looking at the settings for CB in each one

Anyway - nightly has had CB in for about a year (new machine) and I've played a few times with all sorts of canvas settings. But in my old machine I also saw this. This is the "bad" one. The good one is a brand new profile and a brand new CB install (except I turned on some UI stuff and disabled everything except default canvas)

The diffs appear to be bad

    "protectedAPIFeatures": {
        "length @ history": false,
        "mozGetAsFile @ canvas": true,
        "toBlob @ canvas": true,
        "convertToBlob @ canvas": true,
        "toDataURL @ canvas": true,
        "getImageData @ canvas": true,
        "isPointInPath @ canvas": true,
        "isPointInStroke @ canvas": true,
        "getContext @ canvas": true,
        "strokeText @ canvas": true,
        "fillText @ canvas": true
    },

vs good

    "protectedAPIFeatures": {
        "length @ history": false
    },

and yes the good one is protecting the values.

brb.. I have an idea. I think all you need to do is toggle the options

Thorin-Oakenpants commented 7 months ago

I think all you need to do is toggle the options

nope. Anyway, I imported bad into good and I get the issue.

Here are the two files

kkapsner commented 7 months ago

It's the persistent rng.

Thorin-Oakenpants commented 7 months ago

hmm .. where is that settings .. AFAICT I have "manually" reset things to default regards canvas - and the settings UI are identical (maybe I am blind)

OK, I'm blind. Man I think you should label non-persistent as the default

kkapsner commented 7 months ago

What do you exactly mean by "label"?

Something like this? image

kkapsner commented 7 months ago

Check the latest version at https://canvasblocker.kkapsner.de/versions/

spodermenpls commented 7 months ago

@kkapsner Maybe a good occasion to finally hyphenate "non-persistent" and "nicht-persistent".

Thorin-Oakenpants commented 7 months ago

Something like this

yup

kkapsner commented 7 months ago

@kkapsner Maybe a good occasion to finally hyphenate "non-persistent" and "nicht-persistent".

does it really need to be hyphenated? Both my German and English Grammar regarding this are quite vague. What is the rule? What is the difference to "Canvas API"?

yup

I do not quite like the extra noise in the text... especially when I do it for all drop downs: image

spodermenpls commented 7 months ago

@kkapsner I am not a licensed English or German language surgeon, but I am very certain that one can use "nonpersistent" or "non-persistent" in English, but not "non persistent", without an hyphen. In German one might be able to use "nicht persistent", but I figure "nicht-persistent" looks more professional (and more harmonious to the English locale's "non-persistent"). "Canvas API" consists of two nouns, which form an "open compound word" without a hyphen, "non-persistent" however is a prefix and an adjective, whose compound does get written as one word or hyphenated (if you want to read more about it: https://www.scribbr.com/language-rules/hyphens/#prefixes-suffixes)

Regarding the other change, how about "(default)"/"(Standard)" only gets displayed in the dropdowns when the default setting is not selected? 😅

Thorin-Oakenpants commented 7 months ago

I do not quite like the extra noise in the text... especially when I do it for all drop downs

you do you :) 🧀

just wasn't paying attention, it's not like I test CB often - and when I do I totally change everything to see what happens. I should just use the reset feature in future - I kinda think I set that persistent rng a while ago not thinking it was to do with the generator but rather that a same canvas result is persistent (per session + eTLD etc = as per TZP's notations) - in other words I am overworked and under-drinking 🍺 and should have known it was cached anyway

kkapsner commented 7 months ago

@Thorin-Oakenpants : I like the idea of being able to tell which settings were changed and which not. I just do not like the execution. I think it will involve the idea of @spodermenpls in the end.

@spodermenpls: I will talk to an English teacher tomorrow and act after that.

kkapsner commented 7 months ago

I think I quite like this approach: image

Having a way to search for all changed settings with the :changed tag and then have the default value be marked as such in the drop down. But not having the marking when the default is selected: image

kkapsner commented 7 months ago

The current beta version is my candidate for 1.10.1 - please test it.

spodermenpls commented 7 months ago

@kkapsner I have to correct myself. First of all "non-persistent" consists of a prefix and an adjective, got myself loopy there yesterday morning. 😅 I read further up on it, in German, "nicht-persistent" would be in fact wrong (I probably read it written that way too many times in the past), only "nichtpersistent" and "nicht persistent" being right. In English "non-persistent" is correct ("non persistent" being indeed wrong), but more so in a British English style, with American English one is usually refraining from using hyphens. My final proposal therefore is connecting the words in our locales, "nichtpersistent" and "nonpersistent".

Regarding the "default"/"Standard" thing, I think this solution is quite slick.

Thorin-Oakenpants commented 7 months ago

hyphenation of a prefix in english is pretty simple

e.g

you're doing just fine :) have some 🧀

Thorin-Oakenpants commented 7 months ago

while you're on a tidying up bender

info

nits

here's what chameleon did (to be fair, none of these lines wrap: edit, by that I mean they don't need to whereas some of yours are longer, but I still think it's an improvement)

chameleon

using - be better at least for the more info section

canvas:
- https://www.browserleaks.com/canvas
audio:
- https://audiofingerprint.openwpm.com/ (very poorly written = slow)
- https://webtransparency.cs.princeton.edu/webcensus/#audio-fp
DOMRect:
- http://jcarlosnorte.com/security/2016/03/06/advanced-tor-browser-fingerprinting.html
- https://browserleaks.com/rects