What's Changed
Major Features & Improvements
-
Automatic Filter Updates with Smart Scheduling (
e0b48ea
,c2bddfc
,72e2d89
,953df60
,49e9a6a
)
wBlock now performs serverless background filter updates to keep your blocking rules current automatically. You can configure update intervals from 1 hour to 7 days, or disable auto-updates entirely in Settings. The system uses HTTP ETag and Last-Modified headers for efficient update checks, downloading only when filters have actually changed. (dcd4209
,6f94954
). -
Enhanced Userscript System with Greasemonkey API Support (
778cb1d
,3b1efe9
,353a0e1
,88f3b62
)
The userscript engine now implements the full Greasemonkey API, includinggetValue
,setValue
,deleteValue
,listValues
,getResourceURL
,openInTab
,notification
, and properunsafeWindow
support for accessing page context. The@require
directive now works correctly, automatically downloading and prepending external script dependencies (c3bdb3d
). iOS userscript injection has been fixed by correcting the action name mismatch, and duplicate detection now prevents conflicts when multiple scripts share the same name (6a12557
,2fa6936
,4a770de
). -
Streamlined Update and Apply Flow (
e02ea84
)
The filter application process now automatically checks for and downloads updates before applying changes, which eliminates the need for a separate manual update step. The progress UI displays phases (updating, processing, applying) with clearer visual feedback throughout the entire operation. -
iOS Rule Capacity Increased to 150,000 Rules Per Extension (
f1e24f2
)
Following AdGuard's v4.5.1 update, I realized that iOS content blocker extensions now support 150,000 rules each, up from the previous 50,000 limit. Combined with wBlock's five-extension architecture, this brings the total iOS capacity to 750,000 rules, a 50% increase from the previous 500,000 limit, with half the number of extensions. -
All-New Liquid Glass UI Design (
cfc4354
,a16ff29
,26b2de5
,8d8af50
)
The app has been completely redesigned with a modern liquid glass aesthetic featuring translucent backgrounds, elegant blur effects, tabviews, and refined visual polish. All popovers and sheets now use a unified design system for consistency across the entire interface. -
iOS Filter Category Unification (
b1c7c7d
)
iOS content blocker targets have been restructured into five categories: Ads & Privacy, Security & Multipurpose, Annoyances, Foreign & Experimental, and Custom. This change simplifies filter management and ensures consistent naming and structure across both iOS and macOS platforms. -
Smart Filter Category Reset with User Notification (#92,
4bd16ed
)
When applying filters exceeds Safari's rule limits, wBlock now intelligently resets affected categories to their defaults and displays notifications showing exactly which categories were reset. This prevents silent failures and helps you understand why certain filters weren't applied.
Performance & Reliability Upgrades
-
Migration to Protocol Buffers for Data Storage (
3131975
,57d76e7
,2aadd77
,7761e6a
,b2c5f49
,f40523f
,dcc3cc9
,8b664a6
)
wBlock has completely migrated from UserDefaults and SwiftData to Protocol Buffers for all app data storage. Data serialization now happens off the main thread, writes are debounced and atomic to prevent excessive I/O, unchanged data is skipped entirely, and LZ4 compression reduces disk usage. The migration provides massive performance improvements, better type safety, and more maintainable code across the entire codebase. -
Memory-Efficient Filter Processing (
a0bbaf1
,50d995c
,18e7b39
,5445ad6
)
The filter conversion process has been refactored for memory efficiency using grouped processing with streaming I/O instead of loading entire filter lists into memory at once. Network requests now use custom URLSession configurations with proper timeouts and resource management rather than shared sessions. All potential memory leaks have been eliminated, allowing wBlock to handle enormous filter lists without consuming excessive memory. -
Throttled Progress Updates to Eliminate Freezing (
7347c25
,bb14de7
,65587f2
)
Progress updates during filter application are now throttled and consolidated through a dedicated ViewModel rather than updating on every single operation. This prevents excessive SwiftUI re-renders that previously caused UI freezing, ensuring smooth animations and responsive controls even during intensive operations. -
Enhanced Apply Changes Progress Tracking (
e02ea84
,bb14de7
,a21c805
)
The apply changes UI now provides detailed phase tracking for each stage (updating, processing, applying) with better visual feedback and refined statistics presentation. Graphics strain has been reduced during filter application by adding a UI delay before heavy work begins, ensuring the progress sheet renders fully before processing starts.
Visual & Usability Upgrades
-
New Settings Screen with Customization Options (
5df855c
,dcd4209
,a1a0579
)
A Settings screen has been added with controls for badge counters, auto-update intervals, notification preferences, and more. The interface features clean organization with platform-specific controls and provides immediate feedback when values change. -
Enhanced Onboarding Experience (
6f94954
,d55bfc3
,61ec10f
)
The onboarding flow now includes regional filter selection, notification preference setup on iOS, and improved filter list recommendations based on your language and region. Onboarding now waits for data loading to complete before displaying, preventing UI glitches. Userscript setup has been optimized to use batch operations for better performance (6592841
). -
Revamped Add Filter and Add Userscript Views (
8e74702
)
The interfaces for adding custom filter lists and userscripts have been redesigned with a sheet-based UI, improved input validation, contextual requirements and feedback, and enhanced clipboard support for pasting URLs or code directly. -
Improved Whitelist and Userscript Manager Views (
0f88990
,a1a0579
,3f867e4
)
The whitelist and userscript managers now feature redesigned layouts with better error handling and more intuitive controls. The userscript manager includes right-justified toggles and enhanced visual hierarchy for easier navigation. -
Comprehensive Logging System (
625b1ca
,6a07292
)
The logging system has been completely restructured for better diagnostics and troubleshooting. The logs view now combines emoji indicators with text labels for easy scanning, with log levels clearly displayed for each entry. -
UI Polish and Refinements (
01210e6
,034c27c
,4ee3cb8
,ff81bab
,7450f5e
,5a3e371
,554b9c8
,fe97187
)
Numerous small improvements have been made across the app: fixed white bars appearing in settings on iOS, resolved text disappearance on long press, right-justified all toggle switches for consistency, improved padding and spacing on iOS, and refined context menu styling.
Filter List Management
-
Updated Default and Recommended Filter Lists (
2d35fa0
,61070dd
,d62ccff
,2c759bd
,762347a
,169d532
,46dae5b
)
The default filter list selection has been refined for better out-of-the-box blocking performance. Notable additions include the AdGuard URL Tracking Filter for enhanced privacy protection, AdGuard Mobile App Banners for iOS users, EasyPrivacy and AdGuard Mobile Ads as essential filters on iOS, and a plethora of foreign filter lists. -
"Last Updated" Timestamps (
892dcc9
)
Filter lists now display "Last Updated" timestamps, allowing you to track when your blocking rules were last refreshed and identify outdated lists.
Compatibility, Dependencies & Maintenance
-
Updated Dependencies (
61702eb
,5cbc47f
,e1eb764
,20732fb
)
Core libraries have been updated to their latest versions: SafariConverterLib v4.0.4 (from v4.0.0), AdGuard Scriptlets v2.2.9, and SwiftProtobuf v1.3.0. These updates bring bug fixes, performance improvements, and new features from upstream projects. -
iOS Platform Refinements (
b1c7c7d
,787a3fd
,c7815ae
,57b3824
)
Multiple iOS-specific improvements include unified content blocker targets, persistence specifiers added to manifest.json for proper extension persistence, updated Info.plist values, and background processing configuration for auto-updates (e30143b
). -
Element Zapper Fixes (
b15b9bf
,0659c5a
,c9c41cf
)
Several bug fixes ensure the Element Zapper tool works reliably across all platforms. Redundant code has been removed for cleaner maintenance and reduced code complexity. -
Icon and Asset Updates (
eeea9b6
,643d654
,034c27c
,3286cbc
,77fc7e2
)
Icons have been adapted using Icon Composer for better platform consistency. Design credits have been added to the README, wBlock Scripts assets have been updated, images have been optimized with ImgBot (36.46% size reduction), and toolbar item labels have been updated for clarity. -
Build and Project Configuration (
6b4219f
,e5f18f0
,3219df1
,2ba4c65
,47ac7ae
)
The marketing version has been bumped to 1.0.1 across all targets. A TestFlight beta release scheme has been added for easier testing distribution, unnecessary entitlements have been removed, and project scheme organization has been improved. -
Documentation and Community (
3add4f2
,a30892a
,643d654
,4b57057
,637977c
, multiple README updates)
A Privacy Policy has been added to comply with App Store requirements. The donation link and icon design credits have been updated in the README. Discord webhook notifications have been implemented for GitHub activity (commits, issues, PRs), and system requirements documentation has been updated. -
Removed "Complete" Blocking Mode (
2d35fa0
)
The "Complete" blocking level has been removed from onboarding to simplify user choices and reduce the risk of excessive site breakage that could frustrate new users. -
Accessibility Improvements (
d8a905e
)
Accessibility labels have been added to all menu bar buttons to improve VoiceOver support for users who rely on screen readers. -
Bug Fixes and Code Quality (
eac7c77
,2dd1196
,f965499
,85dc631
,04ca4dd
,0672ed2
,6e3b841
,1401ee8
,28bebde
,7fe9f64
)
Fixed navigation bar visibility issues on macOS, improved persistence handling to prevent data loss, refactored UserScriptManager to use a singleton pattern for better resource management, removed unnecessary calls that were impacting performance, cleaned up error displays that were confusing users, corrected badge counter setting keys to match across the app, and improved data and async handling for better reliability.
Notes
wBlock v1.0.1 focuses on automation, performance, and polish. Automatic filter updates, comprehensive Greasemonkey API support, and Protocol Buffers migration make this the most powerful and responsive version yet.
Your feedback is invaluable. If you encounter issues or have suggestions, please open an issue on GitHub.
Thank you for supporting wBlock and helping make Safari the best browsing experience possible!
Download
iOS - Now Available on the App Store!
Download from the App Store: https://apps.apple.com/app/wblock/id6746388723
macOS - TestFlight (Temporary)
Unfortunately, Apple has been giving me a hard time with the macOS App Store review process. The app has been rejected for reasons that don't seem to align with the guidelines, and they have been ghosting my follow-ups. The app is currently "in review," which prevents me from updating the existing TestFlight build.
I realize the current public TestFlight build is broken. In the meantime, there is nothing I can do as I cannot seed new TestFlight builds. If you need a temporary solution, I recommend installing AdGuard for Safari, which is also free.
Thank you so much for your patience and understanding during this frustrating process. Your support means the world to me, and I'm doing everything I can to get wBlock officially on the Mac App Store.