How fazza-abiyyu/yue-browser works
Yue Browser is an Android browser built around Compose and Android System WebView. Its main workflow is user navigation through the browser UI, managed tab/session state, and page rendering, with privacy and ad blocking applied during browsing. Separate branches cover remotely synchronized ad-block rules, browser data, downloads, scripts, and media. The tree and README establish these product areas, but most UI-to-domain wiring was not sampled; uncertain call edges are omitted.
Main entry points: SystemWebViewEngine.kt System WebView · BrowserViewModel.kt Browser state · AdBlockEngine.kt Ad-block engine · FilterSyncEngine.kt Rule synchronization
Components 29
Browser interface
- Browser screen
app/src/main/java/com/yue/browser/presentation/ui/MainBrowserScreen.kt - Browser state
app/src/main/java/com/yue/browser/presentation/BrowserViewModel.kt - Tab switcher
app/src/main/java/com/yue/browser/presentation/ui/tabswitcher/TabSwitcherScreen.kt
Browsing runtime
- System WebView
app/src/main/java/com/yue/browser/data/engine/SystemWebViewEngine.kt - WebView client
app/src/main/java/com/yue/browser/data/engine/SystemWebViewClient.kt - Browser session
app/src/main/java/com/yue/browser/data/engine/SystemWebViewSession.kt - Engine contract
app/src/main/java/com/yue/browser/domain/engine/BrowserEngine.kt
Privacy and blocking
- Ad-block manager
app/src/main/java/com/yue/browser/data/engine/AdBlockManager.kt - Ad-block engine
app/src/main/java/com/yue/browser/data/adblock/AdBlockEngine.kt - Strategy pipeline
app/src/main/java/com/yue/browser/data/adblock/pipeline/StrategyPipeline.kt - Decision engine
app/src/main/java/com/yue/browser/data/adblock/pipeline/DecisionEngine.kt - Cosmetic filters
app/src/main/java/com/yue/browser/data/adblock/engine/CosmeticFilterEngine.kt - Rule synchronization
app/src/main/java/com/yue/browser/data/adblock/sync/FilterSyncEngine.kt - Strategy API
app/src/main/java/com/yue/browser/data/adblock/remote/StrategyApi.kt - Policy and rules
app/src/main/java/com/yue/browser/data/adblock/config/StrategyStore.kt
Browser data
- Tab repository
app/src/main/java/com/yue/browser/data/repository/TabRepositoryImpl.kt - Tab state files
app/src/main/java/com/yue/browser/data/repository/TabStorageHelper.kt - Settings repository
app/src/main/java/com/yue/browser/data/repository/SettingsRepositoryImpl.kt
Browser features
- Download manager
app/src/main/java/com/yue/browser/presentation/ui/downloads/DownloadsScreen.kt - Download repository
app/src/main/java/com/yue/browser/data/repository/DownloadRepositoryImpl.kt - User scripts
app/src/main/java/com/yue/browser/data/engine/UserScriptEngine.kt - Script repository
app/src/main/java/com/yue/browser/data/repository/UserScriptRepositoryImpl.kt - Media playback
app/src/main/java/com/yue/browser/data/engine/MediaSessionManager.kt - YouTube ad handling
app/src/main/java/com/yue/browser/data/adblock/service/YouTubeService.kt - Bookmarks screen
app/src/main/java/com/yue/browser/presentation/ui/BookmarksScreen.kt - History screen
app/src/main/java/com/yue/browser/presentation/ui/HistoryScreen.kt - Offline pages
app/src/main/java/com/yue/browser/presentation/ui/OfflinePagesScreen.kt
Other components
- Browser user
- Strategy Center
Connections 28
- Browser user → Browser screen: uses
- Browser user → Tab switcher: switches tabs
- Browser screen → Browser state: drives state
- Browser state → Engine contract: creates sessions
- Engine contract → System WebView: implemented by
- System WebView → Browser session: creates
- System WebView → WebView client: handles navigation
- WebView client → Ad-block manager: checks requests
- Ad-block manager → Ad-block engine: delegates blocking
- Ad-block engine → Rule synchronization: initializes sync
- Rule synchronization → Strategy API: fetches policy and rules
- Rule synchronization → Policy and rules: loads and saves policy
- Strategy API → Strategy Center: requests rules
- Strategy pipeline → Decision engine: evaluates signals
- Ad-block engine → Strategy pipeline: evaluates requests
- Ad-block engine → Cosmetic filters: provides cosmetic filtering
- Browser state → Tab repository: manages tabs
- Tab repository → Tab state files: persists tab state
- Browser state → Settings repository: uses settings
- Browser user → Download manager: manages downloads
- Download manager → Download repository: uses repository
- System WebView → User scripts: runs page scripts
- User scripts → Script repository: uses scripts
- System WebView → Media playback: supports playback
- System WebView → YouTube ad handling: applies site ad handling
- Browser user → Bookmarks screen: opens library
- Browser user → History screen: opens library
- Browser user → Offline pages: opens saved pages