Repository navigation
v1.2.0 — Brave-style Shields (the adblocker grows up)
The headline
The root cause of the YouTube blank page is found and fixed. The old integration injected 30 anti-adblock scriptlets into youtube.com; on Electron timing they hijacked the page's own JS plumbing and killed YouTube's bootstrap entirely — the document ended up as a single 257 KB <script> node with no title, no body, zero console output.
What's new
- Brave's two-tier Shields model — STANDARD (default): network blocking + cosmetic CSS only (CSP-safe). AGGRESSIVE (opt-in): adds the scriptlet tier for anti-adblock walls, with a breakage warning.
- Per-site Shields popup in the toolbar: shield button with live blocked-count badge, per-site on/off, per-site + total counters, top blocked hosts.
- Custom filter lists: uBlock presets (Ads / Privacy / Badware) + any
https://list URL, fetched fresh at boot with offline cache. - Site diagnostics tooling:
AETHER_PROBE=<url>+AETHER_SHIELDS_VERBOSE/NO_*env bisection kept as permanent support tools. - Safety by design: main frames are never blocked (v1.1.6 error pages stay truthful); Node fetch (AI/Ollama/search) never touches session webRequest — the AI pipeline is immune.
Verification
- YouTube renders fully (title/ytcfg/polymer OK, 1.17 MB app) while ad/tracker requests are blocked per boot
- 237 unit tests green across 9 suites; headless smoke asserts shields IPC + deterministic block counters
- CI runs the full suite on Ubuntu / Windows / macOS for every push
Full changelog: see commit history — every version since v0.1.0 is tagged.