From f8f625fe33f2baaca9937dff239a6de11e9c1eee Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Fri, 21 Aug 2026 11:31:23 +0000 Subject: [PATCH 1/3] Make site breakage recovery obvious for casual users. Show a plain-language Page not working? card in the popup with one-click pause and reload, upgrade it when Static has a compatibility warning, and actually let paused sites through the global fingerprint/CAPTCHA network lists. --- CHANGELOG.md | 3 + README.md | 14 ++- disabled.html | 2 +- disabled.js | 2 +- popup.html | 76 ++++++++---- popup.js | 113 ++++++++++++----- service_worker.js | 190 ++++++++++++++++++++++++++++- tests/extension-behavior.spec.js | 173 ++++++++++++++++++++++++++ tests/network-header-spoof.spec.js | 6 +- 9 files changed, 516 insertions(+), 63 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2a97a37..fbfbe6f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,9 @@ Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Versioning: [S ### Added +- Plain-language **Page not working?** recovery card in the popup for the current site, with one-click **Pause this site and reload** / **Turn protection back on**. A detected compatibility warning upgrades the same card instead of using separate technical copy. +- Pausing a site now also installs a high-priority DNR `allow` rule for that initiator host, so fingerprint/CAPTCHA vendor network blocks no longer keep breaking logins after a per-site pause. +- Toolbar badge shows `!` when the current site has a fresh compatibility warning, so casual users get a cue to open the popup without an in-page banner. - Noise-mode decoy `manifest.json` bodies are now **ID-seeded**: known store IDs return real-looking extension names (e.g. Bitwarden, uBlock Origin), and unknown IDs get a stable per-ID name/version so multi-ID probe dumps no longer collapse to one generic `"Browser Extension"` string. - Noise fetch/XHR image decoys now serve format-matched bodies and `Content-Type` for PNG, GIF, JPEG, and SVG (path extension, headers, and magic bytes stay aligned). Formats Static cannot synthesize correctly (e.g. WebP) stay fail-closed. - DNR fingerprint vendor rules for HUMAN legacy `whiteops.com`, Sift root `sift.com`, Accertify (`accertify.com`), and Group-IB (`group-ib.com`) (rule IDs 73–76). diff --git a/README.md b/README.md index 6d77de7..df87d05 100644 --- a/README.md +++ b/README.md @@ -85,13 +85,21 @@ Firefox needs MAIN-world content scripts (128+) and built-in data-collection con 7. **Replay poisoning (opt-in).** When a likely session-replay SDK is detected in page script, Static can proxy only that recorder's event listeners so they see redacted form values and jittered coordinates while ordinary page handlers still receive the real events. 8. **Iframe attribute hardening.** Extension probes and fingerprinting scripts can infer browser capabilities from the shape of `