
Lightweight, local-only MV3 Chrome extension for reducing common third-party web tracking.
Cleaner pages. Fewer trackers. Local-only.
GetBlocked! is a lightweight, local-only Chrome extension that helps reduce common third-party website tracking by blocking known tracker requests, cleaning tracking links, and explaining tracking attempts.
It is built as a small, inspectable Manifest V3 project for people who want a friendly privacy tool and for contributors who want quick, useful pull requests.
declarativeNetRequest.utm_source, fbclid, gclid, dclid, mc_cid, and similar campaign IDs.chrome.storage.local.GetBlocked! blocks a curated starter list of known third-party tracker domains and tracking URL parameters.
Current coverage includes:
The tracker list is intentionally conservative. Rules are limited to third-party requests to reduce website breakage.
GetBlocked! is:
GetBlocked! does not send browsing data to any server. The extension uses:
declarativeNetRequest for local Chrome-managed request blocking.chrome.storage.local for page report data.There are no external analytics, telemetry endpoints, remote logs, or bundled remote assets in the extension.
chrome://extensions.The production build avoids debug-only DNR feedback permissions. The popup uses local page signals plus Chrome's production DNR action-count badge as a page-level estimate, while blocking and URL-cleaning rules remain enforced by MV3 declarativeNetRequest.
The easiest way to contribute is to add one tracker domain.
npm run generate:rules.npm run test:evidence.PRs are welcome for tracker-domain additions, broken-site tests, UI polish, docs, and test improvements. You do not need to ask before opening a small, focused PR.
Tracker domains are maintained in shared/tracker-catalog.json.
Each tracker entry includes:
domaincategorylabelnotesTracking URL parameters are maintained in shared/tracking-params.json.
After changing the catalog or tracking parameter list, regenerate the derived extension files:
npm run generate:rules
This updates:
declarativeNetRequest.Do not edit generated rules/config by hand unless you also update the generator or source catalog.
Run the same local validation layers that CI uses:
npm run check
This regenerates rules, runs the evidence fixture, checks JavaScript syntax, parses JSON data files, verifies generated files are in sync, and runs the privacy/safety guardrails.
Useful individual checks:
npm run generate:rules
npm run test:evidence
npm run check:syntax
npm run check:json
npm run check:generated
npm run check:safety
After loading the unpacked extension, start a simple local server from this folder:
python -m http.server 8080
Then open:
http://localhost:8080/test/manual-test.html?utm_source=demo&utm_medium=test&fbclid=manual
With GetBlocked! enabled, the tracking parameters should be removed from the page URL and the popup should show page-level tracker activity. For a before/after check, compare the browser Network panel with the extension disabled and then enabled.
MIT License. See LICENSE.