Free · No account · No configuration
Jas Adblock strips ad and tracker requests out of every page, stops popup and popunder windows the instant a script tries to open them, and removes YouTube's video ads at the source — not just skips past them.
Free. Live on the Chrome Web Store.
What it stops
Nothing to turn on. Each of these is active from the moment you install it.
A curated network-level blocklist stops known ad and tracker domains on every site — not just the ones a page owner discloses.
Any window.open() call not tied to a real click or key press is refused — the same rule real browsers use, so a genuine sign-in popup still opens fine.
Ad placements are removed from YouTube's own player data before the page ever schedules them — most ads never load, rather than loading and getting skipped.
The "are you using an ad blocker?" interruptions are detected by their wording and dismissed automatically, along with the playback pause that comes with them.
One tap in the toolbar turns blocking off for whichever site you're on, no settings menu required — and back on again just as easily.
How it actually works
There's nothing to hide here — the source is open, downloadable from this page, and every technique below is one you could read yourself in about ten minutes. Here's exactly what runs.
A bundled list of 213 known ad and tracker domain rules is handed to
Chrome's own declarativeNetRequest engine, which
matches and blocks requests before they leave the browser. The
extension supplies the list; Chrome does the actual matching, so
it never sees or logs the URLs involved.
window.open() is wrapped so it only forwards the
call if it's fired shortly after a pointerdown,
mousedown, click, keydown,
or touchstart event with isTrusted set
— a flag the browser itself sets on real input and that no
page script can forge. A popup ad calling window.open()
from a timer or immediately on page load has no trusted event to
point to, so the call returns null instead. A real
"open in new tab" triggered by an actual click still goes through
untouched.
YouTube's player loads its ad schedule from a handful of JSON
keys — adPlacements, playerAds,
adSlots, adBreakHeartbeatParams —
inside both the page's initial ytInitialPlayerResponse
object and its internal /youtubei/v1/player and
/get_watch API responses. Instead of parsing that
JSON, editing it, and re-serializing it (which sounds safer but
is slow enough on YouTube's multi-megabyte responses to visibly
freeze the tab — confirmed the hard way, twice), the
extension does a single plain-text find-and-rename on the raw
response body: those four keys become harmless names before the
player ever reads them. No ad keys, no ad schedule, nothing
scheduled. It's the same rename-not-parse technique behind
uBlock Origin's own public YouTube filters — not a secret
technique, just a fast and safe one.
For the one case that data rewrite can't reach — ads stitched directly into the video stream itself on some livestreams, where there's no separate ad data to remove — a fallback watches the player's own ad-state signal, mutes the video, fast-forwards it (up to 64x, however fast Chrome allows), covers it with a black overlay so the ad frame is never actually visible, and clicks Skip the moment a skip button exists.
The toolbar popup
Permissions
This is the exact justification submitted with the Chrome Web Store listing — nothing paraphrased for this page.
| Permission | Why it's requested |
|---|---|
| declarativeNetRequest | Lets Chrome block ad/tracker requests using the bundled rule list, without the extension reading or logging what you request. |
| host_permissions <all_urls> | Ad and tracker domains appear on virtually any site, so the blocklist and the popup blocker both need to be able to run anywhere — scoped strictly to ad/tracker patterns and ungestured popup calls. |
| storage | Saves your on/off preferences and allow list locally (and via your own Chrome sync) so they persist between sessions. |
| tabs | Reads the active tab's hostname only, so the toolbar popup can show the right "allow this site" toggle. |
Privacy
chrome.storage.sync
— the same mechanism your bookmarks use. It stays inside your own
Google account's Chrome sync and is never routed through a server we
operate, because this extension doesn't operate one.
Install
One click, no configuration needed afterward — it's on by default the moment it's installed.
Add to Chrome →Contact