Privacy companion extension for Chromium browsers (Chrome, Edge, Brave, Arc, Opera).
-
Cookie visualizer & cleaner — click the toolbar icon to see every cookie set on the current site, grouped by classification (essential / analytics / ads / other). Delete individual cookies or wipe all non-essential ones with one click. Toolbar badge shows the third-party cookie count.
-
Auto consent-banner handler — automatically clicks "Reject All" on supported CMPs (OneTrust, Cookiebot, Didomi, Sourcepoint, TrustArc, Quantcast, Osano, Usercentrics, Iubenda, plus generic fallbacks). Toggleable globally and per-site.
-
Tab-close site-data wipe — when you close the last tab for a domain, vizicookie wipes data for the entire registrable domain (so closing
app.example.comalso clearsexample.com,www.example.com, etc., for any of those origins you visited this session). Wiped categories: cookies, localStorage, IndexedDB, cacheStorage, service workers, fileSystems (legacy), WebSQL (legacy). Skipped if the registrable domain is whitelisted, or any tab on that domain is still open.Limitation: the browser's HTTP disk cache is not wiped per-domain because Chrome's
browsingDataAPI only allows global cache clears, which would impact every site. Cache entries are short-lived and rebuilt on next visit, so the privacy impact is small.
- Clone or download this repo to a folder on disk.
- Open
chrome://extensions(oredge://extensions). - Enable Developer mode (top-right).
- Click Load unpacked and select the
vizicookie/folder (the one containingmanifest.json). - Pin the extension to the toolbar so the popup is one click away.
The same unpacked folder works in Chrome, Edge, and any Chromium-based browser that supports MV3.
Three ways to add the current site to the keep-data whitelist:
- Popup — click the toolbar icon → "★ Keep data for this site".
- Right-click menu — anywhere on the page → "vizicookie: keep data for domain". Toggle again to remove.
- Keyboard —
Alt+Shift+W(rebind atchrome://extensions/shortcuts).
When you toggle via the keyboard or right-click menu, the toolbar icon briefly shows a green ★ badge for ~1.5 seconds as confirmation, then returns to the third-party cookie count.
Other popup controls:
- Toggle "Auto-reject consent" per-site.
- Delete individual cookies, or "Delete all non-essential" in one click.
- Footer shows the most recent wipe — e.g.
Last wipe: example.com (3s ago) — 12 cookies, 4 origins— so you can verify what was cleared. - "Settings" button (or right-click the toolbar icon → Options) opens the full settings page.
Popup "delete" buttons — only cookies. Per-cookie or "delete all non-essential" (keeps auth/session cookies on the first-party domain).
Tab-close wipe (last tab of a registrable domain closes):
- Every cookie whose domain matches the registrable domain or any subdomain (
chrome.cookiesAPI, soDomain=.example.comcookies are caught too). - For every origin under that registrable domain that you visited this browser session:
localStorage,IndexedDB,cacheStorage(Cache API used by service workers), service worker registrations, fileSystems (legacy), WebSQL (legacy).
Explicitly NOT touched: browsing history, downloads, autofill / form data, saved passwords, the HTTP disk cache (browser limitation — see above), data on origins you didn't visit in tracked tabs.
Whitelist entries match by registrable domain (last two labels). Adding google.com covers mail.google.com, accounts.google.com, etc. The matching uses a simple last-two-labels heuristic, which is wrong for multi-label TLDs such as co.uk or com.au — adjust manually if you need that.
manifest.json
src/
background/ service worker, tab tracker, site-wipe logic
content/ consent-blocker (runs at document_idle)
lib/ shared helpers: storage, cookies, consent rules
popup/ toolbar popup UI
options/ full settings page
icons/ 16 / 48 / 128 PNG icons
No build step. Vanilla JS + HTML/CSS, ES modules in the popup/options/background.
- Tracker/fingerprint blocking (filter-list engine) is not yet implemented.
- Live request inspector is not yet implemented.
- Registrable-domain detection uses a 2-label heuristic; consider integrating a public-suffix-list lookup for accuracy.
- Consent rules cover the largest CMPs but not every banner; new selectors are easy to add in
src/lib/consent-rules.jsand the inlined list insrc/content/consent-blocker.js.