github 0xCUB3/wBlock 2.2.0
v2.2.0

9 hours ago

What's Changed

Major Features & Improvements

  • Userstyle (.user.css) Support (67741ac)
    wBlock can now manage and apply userstyles alongside userscripts.
  • Filter Update Shortcut Action (ea7445d, #410)
    Added a Shortcuts action that triggers filter updates with structured outcomes, apply progress, and a delayed apply flow that waits for filters to load.
  • In-app Pause Blocking Toggle (efd0c95, 15f6509, #439)
    Added a global Pause Blocking toggle that empties all content blockers and suppresses userscript/userstyle injection until resumed without toggling the Safari extension on/off switch or its per-tab disable behavior. The pause flag lives in the app group so the host app, extensions, and the update agent share one source of truth, and applyChanges short-circuits while paused so manual apply and fast disabled-site updates never silently re-enable blocking.
  • Per-site Settings with Zapper and Userscript Toggles (993fd08)
    Replaced the separate whitelist and zapper rule managers with a single Site Settings view. Zapper rules gained a per-domain disable flag that the popup now writes through to protobuf, and per-site userscript exceptions moved out of UserDefaults into protobuf so backup and iCloud sync carry both.
  • Extension Rebuild on Scriptlets 2.4.3 and safari-extension 4.3.0 (88278e5, 31d5870)
    The extension JS now ships minified bundles from the new extension-src sources. Scriptlet gains GoogleIma3Dai redirect, jsonPruneFetchResponse, prevent-fetch responseConfig, prevent-setTimeout/Interval delay ranges, and JSONPath support in json-prune/trusted-json-set; fixes XHR response headers, a stack overflow in trusted-json-set, and an infinite loop in getRecursiveCandidates.
  • URL Tracking Protection and Cleanup (10de33c, 7645bd1, 446a32e, a901b06)
    Added a URL tracking protection default, URL parameter cleanup support, a referral allowlist filter, and a URL shortener default, covering shortener/tracking domains directly in the blocking pipeline.
  • Survive Safari Restarts with Persisted Script Configs (e8679d7)
    Userscript configurations now persist so injection state survives Safari restarts instead of being rebuilt from scratch.

Performance & Reliability

  • Cloud Sync and Local Userscript Safety (6101836, 08de812, ae76340, #438, #412, #437)
    Never-synced local userscripts are now preserved during a Cloud Sync download, fixing the case where enabling Cloud Sync made a freshly-added custom userscript disappear. Duplicate deleted-marker primitives in CloudSyncManager were consolidated so deletion state is tracked consistently.
  • Atomic Shared-State Writes (216a261, 884d6cb)
    Auto-update running flag writes and the read-then-write paths for tab data and filter validators (updateTabBlockedCount, setTabDisabled, removeTabData, clearOldTabData, both setFilterValidators overloads) now use atomic read-modify-write under file locks, preventing cross-process clobbering when the app, extension, and update helper write concurrently.
  • Safari Affinity Grouper (09c47b3)
    Switched to Safari's affinity grouper for more consistent userscript grouping across tabs.

Bug Fixes

  • Safari Userscript Timing on NameMC (11d0f86)
    Fixed a userscript timing issue that broke injection on NameMC.
  • Skip Onboarding After Backup Restore (1f0cfe0, #415)
    Restoring a backup now marks setup complete so the onboarding wizard does not reappear; step 1 also offers a direct import path.
  • Apply Progress Localization (2e25c60)
    Fixed localization of the apply progress strings.
  • Homebrew Tap Instructions (382e5e7)
    Corrected the Homebrew tap install instructions.

UI/UX Improvements

  • Popup Userscript Management (6c03299, 64ce008, 03280f2, f482dc4, afc9b83)
    Page userscripts are now surfaced in the popup, and the userscript list collapses with compacted, simplified rows that render sooner.
  • Onboarding Defaults and Regional Copy (a901b06, dd1ddab, 93bc834, 63f29a8, 1d1e1cd)
    tinyShield is now enabled by default, onboarding userscripts are grouped, the regional filters step always shows with an expanded regional filter catalog, the language selection screen is clearer, and the regional filter copy was refined.
  • Custom Filter Categories (d3c2569)
    Custom filter categories can now be edited in place.
  • Foreign Filter Renaming (b47c52e)
    Foreign filters were renamed in the UI for clarity.
  • Element Zapper and Toolbar State (17a5683, 3960fa0)
    Hardened element zapper messaging and switched to a muted disabled toolbar state.
  • Userscript Editor Import (66b01af)
    The userscript editor can import existing scripts.

Localization

  • Turkish Localization (4459e58, 704db44, d0d0207, 7e0b315, b4ab515, 244ec51, 6087b7f, 7d12f26, #419, #420, #425, #430, #436)
    Multiple passes refining and updating the Turkish translation.
  • Apply Progress Strings (2e25c60)
    Fixed localization of the apply progress text.

Documentation

  • Twitch Ads via AdGuard Extra (16f2e55)
    Documented blocking Twitch ads via AdGuard Extra in the FAQ.
  • Ad Blocker Comparison Updates (b9541f5, 79941a3, f340b87, 7a2ae31, 2af714b)
    Broadened and deepened the Safari blocker comparison, added AdGuard for iOS, adjusted the default filter lists, and noted that extra filter lists rarely improve blocking.
  • Minimum OS Version Badge (2c978a3, 9c64d0e)
    Corrected the minimum OS version badge in documentation.

Download

Download from the App Store: https://apps.apple.com/app/wblock/id6746388723

Join the Discord: https://discord.gg/Y3yTFPpbXr

Don't miss a new wBlock release

NewReleases is sending notifications on new releases.