Content Blocking
Flow Browser includes a powerful content blocker powered by the Ghostery adblocker engine.Blocking Modes
The content blocker offers three filtering levels:All
Block all ads, trackers, annoyances, and other unwanted content
Ads & Trackers
Block advertisements and tracking scripts only
Ads Only
Block only advertisements, allow trackers
How It Works
The content blocker uses Ghostery’s@ghostery/adblocker-electron package:
src/main/modules/content-blocker.ts:23-53.
Session-Based Blocking
Content blocking is applied per-session (per-profile):src/main/modules/content-blocker.ts:74-86.
Each profile can have different content blocking settings, giving you granular control over privacy levels.
Blocked Request Logging
The content blocker logs blocked requests for debugging:Dynamic Configuration
The content blocker automatically updates when settings change:src/main/modules/content-blocker.ts:91-108.
Profile Isolation
Each profile in Flow Browser is completely isolated with separate:Browsing Data
Browsing Data
- Cookies
- Cache
- Local Storage
- Session Storage
- IndexedDB
- Service Workers
Security State
Security State
- HTTPS certificates
- Authentication tokens
- Site permissions
- Password storage
Extensions
Extensions
- Separate extension installations
- Independent extension data
- Profile-specific extension settings
Implementation
Profiles use Chromium’s built-in profile system:src/main/controllers/profiles-controller/raw.ts:82-83.
Each profile directory contains:
Cache/- HTTP cacheCookies- Cookie databaseLocal Storage/- localStorage dataSession Storage/- sessionStorage dataExtensions/- Installed extensionsPreferences- Chromium preferences
DRM Support (Widevine)
Flow Browser supports Widevine DRM for streaming services like Netflix, Spotify, and Disney+.Castlabs Electron
The browser uses a special build of Electron with Widevine support:package.json in the source repository.
Supported Services
With Widevine DRM, Flow Browser supports:- Netflix
- Spotify Web Player
- Disney+
- Hulu
- HBO Max
- Amazon Prime Video
- And other DRM-protected content
Web Security Features
Sandbox Mode
All web content runs in a sandbox for security:src/main/controllers/tabs-controller/tab.ts:90-107.
Sandbox
Renderer processes run in a restricted sandbox
Context Isolation
Preload scripts isolated from web content
No Node Integration
Web pages can’t access Node.js APIs
Web Security
Same-origin policy and CORS enforced
Safe Dialogs
Dialog bombing protection is enabled:Scroll Bounce
macOS-style scroll bounce is enabled:Navigation Security
Drag & Drop Navigation
Navigating by dragging files is enabled:External Protocol Handling
External protocols (likemailto:, tel:) are handled safely through the operating system.
Settings-Based Privacy
The content blocker integrates with the settings system:src/main/modules/content-blocker.ts:118-125.
Initialization
The content blocker initializes after settings are loaded:src/main/modules/content-blocker.ts:133-136.
Privacy Best Practices
Disable Blocking for Sites
Currently, the content blocker applies globally per-profile. Per-site exceptions are not yet implemented but could be added by extending the
ContentBlocker class.- Create a separate profile without content blocking
- Switch to that profile when visiting the site
- Or temporarily disable content blocking in settings
Technical Architecture
Unified Web Requests
The content blocker uses a unified web request system to avoid conflicts:Session Keys
Each blocker instance uses a unique session key:Blocker Instance Lifecycle
- Creation: Blocker loads prebuilt filter lists
- Attachment: Blocker attaches to session web requests
- Filtering: Requests are checked against filter lists
- Blocking: Matching requests are blocked
- Events:
request-blockedevents are emitted - Detachment: On disable, blocker detaches from session
- Cleanup: Instance is disposed and memory freed
Future Privacy Features
Potential future enhancements:- Per-site content blocking exceptions
- Fingerprinting protection
- User-agent spoofing
- Cookie auto-deletion
- Private browsing mode
- VPN integration
- Encrypted profile storage
Related Features
- Profiles - Profile isolation provides privacy boundaries
- Extensions - Review extension permissions for privacy
- Tabs - Each tab respects profile privacy settings