Summary
- Ghostery now sends the Global Privacy Control (GPC) signal to websites
- Resolved issues with DNR ruleset processing and CSS injection for more reliable ad-blocking
- Updated autoconsent and tracker detection databases for broader coverage
What's Changed
- fix(adblocker): split logic into separate files by @smalluban in #3277
- fix(lottie): use light build to drop eval-based expression engine by @chrmod in #3281
- perf(build): disable gzip size reporting by @chrmod in #3282
- chore(deps-dev): bump fast-xml-parser from 5.5.7 to 5.7.1 by @dependabot[bot] in #3283
- fix(build): group DNR rules while downloading rulesets by @smalluban in #3285
- fix(adblocker): suppress CSS injection error when frame is destroyed before injection by @smalluban in #3292
- chore(deps): bump @sentry/browser from 10.49.0 to 10.50.0 by @dependabot[bot] in #3289
- chore(deps-dev): bump vite from 8.0.8 to 8.0.10 by @dependabot[bot] in #3290
- chore(deps): bump @duckduckgo/autoconsent from 14.72.0 to 14.75.0 by @dependabot[bot] in #3291
- chore(deps-dev): bump eslint from 10.2.0 to 10.2.1 in the eslint group by @dependabot[bot] in #3286
- feat(autoconsent): support GPC header by @smalluban in #3284
- chore(deps): bump @whotracksme/reporting from 8.0.0 to 8.0.1 by @dependabot[bot] in #3287
- feat(safari): strip DNR rules WebKit cannot compile by @chrmod in #3280
- feat(ci): concurrent dnr rulesets download by @seia-soto in #3272
- fix(dnr): fix preprocessors not applied when enabling rulesets by @smalluban in #3293
- feat(telemetry): add onboarding complete parameter by @smalluban in #3294
- fix(build): filter unsupported preprocessor envs from DNR metadata by @smalluban in #3297
- chore(deps): bump npm dependencies to latest by @smalluban in #3299
- fix: Never-Consent autoconsent sync and missing GPC Request import by @smalluban in #3305
- chore(deps): refresh npm dependencies by @smalluban in #3306
- fix(redirect-protection): align Firefox main_frame matching with DNR by @chrmod in #3298
- fix(build): filter DNR metadata entries whose preprocessor is always true by @smalluban in #3303