HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
explainers-by-googlers
reduce-accept-language
OPEN SOURCE2025–2025
explainers-by-googlers / reduce-accept-language

reduce-accept-language

This repository hosts explainer for reducing passive fingerprinting in the Accept-Language header.

2Distinct people
2Mentions
0Explicit recommenders
27GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

This repository hosts explainer for reducing passive fingerprinting in the Accept-Language header.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by hour2 dated mentions

Observed mentions: 2025-11-22 20:35:05 UTC to 2025-11-23 10:07:08 UTC.

012025-11-22 20:00:00 UTC to 2025-11-22 21:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsNov 22, 20:002025-11-22 21:00:00 UTC to 2025-11-22 22:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-11-22 22:00:00 UTC to 2025-11-22 23:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-11-22 23:00:00 UTC to 2025-11-23 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-11-23 00:00:00 UTC to 2025-11-23 01:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-11-23 01:00:00 UTC to 2025-11-23 02:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-11-23 02:00:00 UTC to 2025-11-23 03:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-11-23 03:00:00 UTC to 2025-11-23 04:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsNov 23, 03:002025-11-23 04:00:00 UTC to 2025-11-23 05:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-11-23 05:00:00 UTC to 2025-11-23 06:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-11-23 06:00:00 UTC to 2025-11-23 07:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-11-23 07:00:00 UTC to 2025-11-23 08:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-11-23 08:00:00 UTC to 2025-11-23 09:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-11-23 09:00:00 UTC to 2025-11-23 10:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-11-23 10:00:00 UTC to 2025-11-23 11:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsNov 23, 10:00

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Nov 22, 20:002025-11-22 20:00:00 UTC2025-11-22 21:00:00 UTC101
Nov 22, 21:002025-11-22 21:00:00 UTC2025-11-22 22:00:00 UTC000
Nov 22, 22:002025-11-22 22:00:00 UTC2025-11-22 23:00:00 UTC000
Nov 22, 23:002025-11-22 23:00:00 UTC2025-11-23 00:00:00 UTC000
Nov 23, 00:002025-11-23 00:00:00 UTC2025-11-23 01:00:00 UTC000
Nov 23, 01:002025-11-23 01:00:00 UTC2025-11-23 02:00:00 UTC000
Nov 23, 02:002025-11-23 02:00:00 UTC2025-11-23 03:00:00 UTC000
Nov 23, 03:002025-11-23 03:00:00 UTC2025-11-23 04:00:00 UTC000
Nov 23, 04:002025-11-23 04:00:00 UTC2025-11-23 05:00:00 UTC000
Nov 23, 05:002025-11-23 05:00:00 UTC2025-11-23 06:00:00 UTC000
Nov 23, 06:002025-11-23 06:00:00 UTC2025-11-23 07:00:00 UTC000
Nov 23, 07:002025-11-23 07:00:00 UTC2025-11-23 08:00:00 UTC000
Nov 23, 08:002025-11-23 08:00:00 UTC2025-11-23 09:00:00 UTC000
Nov 23, 09:002025-11-23 09:00:00 UTC2025-11-23 10:00:00 UTC000
Nov 23, 10:002025-11-23 10:00:00 UTC2025-11-23 11:00:00 UTC101

What Hacker News says

2 sources
As someone who used to work on Chrome, I can confirm that browser fingerprinting is indeed a nightmare. Back in the early days of Privacy Sandbox, before that crashed and burned against the UK CMA not even letting Google remove third-party cookie support [0], there was a lot of optimism about how we were going to completely solve cross-site tracking, even in the face of determined adversaries. This had several ingredients; the biggest ones I can remember are: 1. Remove third-party cookie support 2. Remove unpartitioned storage support 3. IP protection at scale 4. Solving fingerprinting In the end, well... at least we got 2, which has some security benefits, even if Chrome gave up on 1, 3, and 4, and thus on privacy. Anyway, everyone could tell that 4 was going to be the hardest. The closest I saw to an overarching plan was the "privacy bu
Read the rest
dget" proposal [1], which would catalogue all the APIs that could be used for fingerprinting, and start breaking them (or hiding them behind a permission prompt, maybe?) if a site used too many of them in a row. I think most people were pretty skeptical of this, and the main person driving it moved off of Chrome in 2022. Mozilla has an analysis suggesting it's impractical at [2]. Some code seems to still exist! [3] A key prerequisite of the privacy budget proposal was trying to remove passive fingerprinting surfaces in favor of active ones. That involved removing data that is sent to the server automatically, or freezing APIs like `navigator.userAgent` which are assumed infallible, and then trying to replace them with flows like client hints where the server needed to request data, or promise-based APIs which could more clearly fail or even generate a permissions prompt. This was quite an uphill battle, as web developers (both in ad tech and outside) would fight us every step of the way, because it made various APIs less convenient. Elsewhere people have cited one example, of reducing Accept-Language [4]. The other big one was the user agent client hints headers/API [5], which generated whole new genres of trolls on the W3C forums. As Privacy Sandbox slumped more and more towards its current defeated state, people backed off from the original vision of a brilliant technical solution that worked even in the face of determined adversaries. Instead they retreated to stances like "if we just make it hard enough to fingerprint, it'll be obvious that fingerprinting scripts are doing something wrong, and we can block those scripts"; see e.g. [6]. Maybe that would have worked, I don't know, but it becomes much more of a cat-and-mouse game, e.g. needing to detect bundled or obfuscated scripts. And now of course it's all over; the ad tech industry, backed by the UK CMA, has won and forced Google to keep third-party cookies forever, and with those in place, there's not really any point in funding the anti-fingerprinting work, so it's getting wound down [7]. The individual engineers and teams are probably still passionate about launching opt-in or Incognito-only privacy protections, but I doubt that align with product plans. I'm sure Google doesn't mind the end result all that much either, as having to migrate the world to privacy-preserving ad tech was going to be a big lift. Now all that eng power can instead focus on AI instead of privacy. [0]: https://privacysandbox.com/news/privacy-sandbox-next-steps/ [1]: https://github.com/mikewest/privacy-budget [2]: https://mozilla.github.io/ppa-docs/privacy-budget.pdf [3]: https://chromium.googlesource.com/chromium/src/+/36dc3642bee... [4]: https://github.com/explainers-by-googlers/reduce-accept-lang... [5]: https://developer.mozilla.org/en-US/docs/Web/API/User-Agent_... [6]: https://privacysandbox.google.com/protections/script-blockin... [7]: https://privacysandbox.com/news/update-on-plans-for-privacy-...
In The privacy nightmare of browser fingerprinting
Some time ago I noticed that in Chrome, every time you click "Never translate $language", $language quietly gets added to the Accept-Language header that Chrome sends to every website! My header ended up looking like a permuted version of this: en-US,en;q=0.9,zh-CN;q=0.8,de;q=0.7,ja;q=0.6 I never manually configured any of those extra languages in the browser settings. All I had done was tell Chrome not to translate a few pages on some foreign news sites. Chrome then turned those one-off choices into persistent signals attached to every request. I'd be surprised if anyone in my vicinity share my exact combination of languages in that exact order, so this seems like a pretty strong fingerprinting vector. There was even a proposal to reduce this surface area, but it wasn't adopted: https://github.com/explainers-by-googlers/reduce-accept-
Read the rest
In The privacy nightmare of browser fingerprinting

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.