A Safari content blocker for macOS, iOS, and iPadOS utilizing declarative content blocking rules.
Supports 750,000 rules across 5 extensions with Protocol Buffer storage and LZ4 compression.
Performance Architecture
- 750,000 rule capacity utilizing 5 Safari content blocking extensions per platform (150k rules each)
- ~40 MB RAM footprint at idle via Safari's native content blocking API
- Protocol Buffers serialization with LZ4 compression for filter storage
- Off-thread I/O operations with streaming serialization to minimize main thread blocking
- HTTP conditional requests (If-Modified-Since/ETag) for efficient filter update detection
Content Modification
- Element Zapper (macOS only) generates persistent CSS selectors for manual element removal
- Userscript engine implements Greasemonkey API (GM_getValue, GM_setValue, GM_xmlhttpRequest)
- Custom filter list ingestion supports AdGuard-syntax blocklists via URL import
- Category-based filter organization with per-list toggle and automatic rule distribution
- Filter list validation with automatic disabling on Safari's 150k rule limit per extension
|
Blocking Capabilities
- Network request blocking via declarative content blocking rules (advertisements, trackers)
- Cookie and local storage filtering through Safari content blocker rule actions
- CSS injection for cosmetic filtering and element hiding
- Script blocking for unwanted software and JavaScript execution
- Pop-up and redirect prevention using Safari content blocking patterns
Configuration & Management
- Configurable auto-update intervals from 1 hour to 7 days with background refresh
- Per-site blocking controls through Safari's content blocker enable/disable API
- Whitelist management for trusted domains with Safari extension state persistence
- Regional filter support with preset lists for language-specific content blocking
- Filter compilation monitoring with real-time rule count and compilation status
- Background update notifications (optional) for filter list refresh events
|