Skip to content

ArdaBilgehan743/WallBreaker

Repository files navigation

Anti-Adblock Killer

A Chrome Manifest V3 extension that silently removes anti-adblock walls, overlays, modals, and paywalls — the nags that appear when a website detects you're running an adblocker.

Features

  • Multi-layer defense — DNR network rules + document_start spoof layer + document_idle overlay cleanup + persistent MutationObserver.
  • Per-site rules — Targeted selectors and text phrases for known offenders (Forbes, Wired, YouTube, Business Insider, Tom's Guide, The Atlantic + Turkish news: Hürriyet, Sözcü, Milliyet, Sabah, Haberturk, Akşam, Posta).
  • Remote rule updates — Background service worker fetches a shared rule list every 6 hours via chrome.alarms, so new patterns don't require a manual update.
  • Whitelist per site — One-click "Disable on this site" in the popup. Stored in chrome.storage.local.
  • Stats — Counts walls removed all-time; shows number of built-in + remote rules and last sync time.
  • Consent-banner safe — Cookie/GDPR/KVKK banners are matched against known class and text patterns and left untouched to prevent false positives.
  • Shadow-DOM aware — Selector sweep walks up to 3 levels of shadow roots.
  • Playwright regression suitenpm test launches real Chrome with the extension loaded and verifies walls are gone on 12 known sites.

Install

  1. Clone or download this repo
  2. Open chrome://extensions
  3. Enable Developer mode
  4. Click Load unpacked and select the adblockkiller/ folder

The extension activates on every page automatically.

How It Works

Three layers run in order:

  1. content-early.js (runs at document_start, MAIN world) — Patches HTMLElement.prototype dimension getters so bait elements report non-zero size, and pre-defines window.canRunAds, window.adsbygoogle, etc. so detection scripts believe ads are present.
  2. DNR rules (rules/net-rules.json, rules/ad-rules.json) — Block known adblock-detector and ad-delivery network requests at the browser level.
  3. content.js (runs at document_idle, isolated world) — Injects a broad CSS blocklist for known overlay classes, then runs a per-site targeted pass, a global text-heuristic pass, and a high-z-index sweep. A MutationObserver repeats the cleanup for dynamically injected walls. Consent banners are detected and skipped.

Architecture

adblockkiller/
├── manifest.json          MV3 config
├── background.js          Service worker — alarms, remote fetch, stats, whitelist
├── content-early.js       Pre-page spoof layer (MAIN world)
├── content.js             Main overlay remover + MutationObserver
├── popup.html / popup.js  UI — status, counter, whitelist, rule stats
├── rules/
│   ├── net-rules.json     DNR rules: adblock detector blocklist
│   ├── ad-rules.json      DNR rules: ad-server blocklist
│   ├── cosmetic-data.js   Global rule table loaded into content scripts
│   └── sites/index.js     Per-site targeted rules
├── surrogates/            Stub scripts for ad SDKs (GPT, adsbygoogle)
└── test.js                Playwright regression suite

Debugging

Open DevTools Console on any page and filter for [AAK]. Every action (selector match, text heuristic, high-z sweep) is logged.

Testing

npm install
npm test

Launches headed Chrome, visits 12 known ad-wall sites, takes screenshots, reports pass/fail.

Known Limitations

  • Server-side detection — If a site checks impressions via their own backend, client-side spoofing can't help.
  • Hard redirects — Sites that redirect to a "disable adblock" landing page at the HTTP level bypass this extension entirely.
  • First page load — Very aggressive walls that block content before document_idle may flash briefly before removal.
  • Remote rule URL — Currently points to a placeholder raw-content URL; update RULE_UPDATE_URL in background.js if you self-host the rule feed.

License

MIT

About

Chrome & Firefox MV3 extension that silently removes anti-adblock walls, overlays, and paywalls. Works alongside your existing adblocker.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors