Internal test pages for verifying Adblock end-to-end blocking behaviour in Chrome.
googletagmanager.com/gtag/js. Expected: blocked.google-analytics.com/collect. Expected: blocked.doubleclick.net ad iframe (iframe navigation block). Expected: blocked.googletagmanager.com (CSS request block). Expected: blocked.navigator.sendBeacon POST to google-analytics.com/collect (POST beacon path). Expected: blocked.fetch with mode: 'cors' to google-analytics.com/collect (XHR/fetch path). Expected: blocked.WebSocket upgrade to stats.g.doubleclick.net (WS upgrade block). Expected: blocked.Worker sourced from googletagmanager.com (worker-script fetch). Expected: blocked.<video> source from googleads.g.doubleclick.net (video-element URL block). Expected: blocked.preconnect/dns-prefetch to doubleclick.net with verification fetch (preconnect/DNS suppression). Expected: blocked.<meta name="referrer" content="no-referrer">; forces the proxy's ResolveTopLevelUrl heuristic to fall through to the request URL. Expected: blocked (rule has no $domain modifier), with host-level source-URL divergence in source-url-diff.summary.json.<div class="banner-ad">. EasyList's generic-hide rule ##.banner-ad should resolve the element to display: none. Expected: document loads, .banner-ad hidden.<div class="ad-wrapper"> (##.ad-wrapper). Expected: .ad-wrapper hidden.<div class="ad-slot"> (##.ad-slot). Expected: .ad-slot hidden.<div class="ad-unit"> (##.ad-unit). Expected: .ad-unit hidden.<div class="ad-zone"> (##.ad-zone). Expected: .ad-zone hidden.<div id="AdBanner"> (###AdBanner); exercises the ID-selector branch. Expected: #AdBanner hidden.<div class="article-body"> not in any filter list. Expected: stays visible ("everything is hidden" over-blocking canary).Curated list of real-world sites the release-tests crawler can visit. Served as JSON from /phase4-sites (parsed from pages/phase4-sites.yaml).
Pages whose expected verdict flips with the user's
filter_encrypted_traffic setting. The runner drives
them once with the toggle on and once with it off, asserting opposite
verdicts.
gtm.js subresource as third-party-script, named to signal it's the HTTPS-on/off canary. Expected: blocked when HTTPS filtering is on; loaded (and served from real upstream) when off..banner-ad (EasyList ##.banner-ad) to exercise generic-hide cosmetic filtering. Expected: hidden when HTTPS filtering is on; visible when off (proxy can't inject styles on a stream it doesn't decrypt).BlockingRecorder in Adblock.ReleaseTests. They report verdicts via window.__adblockTestResult and are evaluated against CDP Network.loadingFailed events. Manual visits are fine for sanity checks; meaningful pass/fail comes from the automated runner. See Linear ENG-682 (page suite), ENG-697 (cosmetic phase 3), ENG-698 (phase 4 real-site list), ENG-848 (HTTPS toggle canaries).