ProtoConsent is a Chromium extension (GPL-3.0+, in review at Chrome Web Store, Edge, and Opera) that sends Sec-GPC: 1 conditionally, based on per-purpose user preferences rather than as a global toggle.
The extension defines six data-processing purpose categories aligned with the Consent Commons taxonomy. Three of them trigger GPC when denied: ads, third-party sharing, and advanced tracking. Functional, analytics, and personalisation do not. If any triggering purpose is denied for a site, GPC is sent; if all are allowed, it is not. The decision is per-site.
Implementation uses declarativeNetRequest modifyHeaders for the Sec-GPC: 1 header and a MAIN-world content script for navigator.globalPrivacyControl, both per-site.
Happy to discuss the approach.
Architecture (§10 covers GPC integration): https://github.com/ProtoConsent/ProtoConsent/blob/main/design/architecture.md#10-global-privacy-control-gpc
Source: https://github.com/ProtoConsent/ProtoConsent
Consent Commons taxonomy: https://consentcommons.com/
ProtoConsent is a Chromium extension (GPL-3.0+, in review at Chrome Web Store, Edge, and Opera) that sends Sec-GPC: 1 conditionally, based on per-purpose user preferences rather than as a global toggle.
The extension defines six data-processing purpose categories aligned with the Consent Commons taxonomy. Three of them trigger GPC when denied: ads, third-party sharing, and advanced tracking. Functional, analytics, and personalisation do not. If any triggering purpose is denied for a site, GPC is sent; if all are allowed, it is not. The decision is per-site.
Implementation uses declarativeNetRequest modifyHeaders for the Sec-GPC: 1 header and a MAIN-world content script for navigator.globalPrivacyControl, both per-site.
Happy to discuss the approach.
Architecture (§10 covers GPC integration): https://github.com/ProtoConsent/ProtoConsent/blob/main/design/architecture.md#10-global-privacy-control-gpc
Source: https://github.com/ProtoConsent/ProtoConsent
Consent Commons taxonomy: https://consentcommons.com/