What I don't get is that Chrome is hundreds of megabytes of just executable code, I assumed they statically linked half the userland. Also, I though tanh isn't a function, but an intrinsic emitted by the JS JIt that uses CPU instructions - which might be fingerprintable as well, but it's weird that for a math operation, you need to branch to a 'dlsym()' function.
Since Chromium 148, Math.tanh is now fingerprintable to link underlying OS
51–60 of 237 posts
Re: Since Chromium 148, Math.tanh is now fingerprintable to link underlying OS
#52I guess that's one more good reason to push for correctly rounded transcendental functions. I recently learned that they're basically solved now. [1] [1] https://arith2026.org/program.html (2nd keynote)
I never understood why fixed precision, and integer math isn't more popular. In engineering, we used fixed point all the time, it ran on much simpler hardware and the error is mathematically easy to model. IEEE 754 floats are not only suspect when it comes to theory, but are often outperformed with integers smaller than the mantissa (so less than 24 bits of int can beat a 32 bit float), when it comes to things like l…
Yes, fixed point can use simpler hardware. That's also a completely irrelevant consideration for software. The vast majority of processors are optimized for floats now and some operations (e.g. division) are actually faster.
The precision argument also falls apart. Any float with mantissa >= X+Y can get exactly the same results as a QX.Y fixed point. The float will actually perform better across the same range because you have to round it to perform like the fixed point. That means more precision, lower error, automatic normalization, better overflow behavior, a larger working range, etc. And it'll probably be just as fast, unless you're bottlenecked on memory bandwidth of inputs (unlikely). When you inevitably want an exp() or another special function, it's a heck of a lot easier to call libm than implement your own and it will perform better.
Floats are also much easier to get right for your coworkers that aren't numerical analysts.
Re: Since Chromium 148, Math.tanh is now fingerprintable to link underlying OS
#53Re: Since Chromium 148, Math.tanh is now fingerprintable to link underlying OS
#54Thanks for the writeup, claude
Re: Since Chromium 148, Math.tanh is now fingerprintable to link underlying OS
#55Re: Since Chromium 148, Math.tanh is now fingerprintable to link underlying OS
#56Thanks for the writeup, claude
> summarize+this+article+and+explain+how+scrapfly+helps+me+scrape+any+website+at+scale+and+bypass+anti-bot+systems+for+my+use+case:+https://scrapfly.dev/posts/browser-math-os-fingerprint/
Re: Since Chromium 148, Math.tanh is now fingerprintable to link underlying OS
#57Re: Since Chromium 148, Math.tanh is now fingerprintable to link underlying OS
#58Earlier quoted context omitted.
scraping, however, is not intrinsically a scam.
It is when you're doing it like the LLM companies are: at scale, to the degree that you're taking down my site, without my consent by masking your user-agent, for the purpose of stealing data I didn't authorize you to have.
Re: Since Chromium 148, Math.tanh is now fingerprintable to link underlying OS
#59Re: Since Chromium 148, Math.tanh is now fingerprintable to link underlying OS
#60just inject this with your favorite JS injection plugin let oldTanh = Math.tanh; Math.tanh = x => oldTanh(x) + Math.random()/10000000;
Great, now you'll be outed as "hides fingerprint", which is probably more identifying than if you returned a normal value.