How irmak-b/browser-v0.1 works
Browser Core is an Electron desktop browser: the user enters an address or search, the trusted UI sends commands to the main process, and main-owned browser state manages isolated site contents, navigation, permissions, filtering, and results. The graph includes documented tab, popup, download, history, page-tool, and resource-management capabilities, plus the character/theme UI branch. Several source excerpts are partial, so edges are limited to shown references or README statements; unsampled behavior is not inferred.
Main entry points: tab-manager.ts Tab manager · controller.ts Browser controller · site-sessions.ts Site contents · ThemeProvider.tsx Theme provider
Components 28
User Interface
- Browser UI
src/renderer/dev/main.tsx - Preload API
src/preload/index.ts - Shared contracts
src/shared/contracts.ts
Browser Runtime
- Electron startup
src/main/index.ts - Command IPC
src/main/ipc.ts - Browser controller
src/main/browser/controller.ts - Tab manager
src/main/browser/tab-manager.ts - Site contents
src/main/browser/site-sessions.ts
Site Controls
- Address policy
src/main/browser/policy.ts - Permission policy
src/main/browser/permission-policy.ts - Site permissions
src/main/browser/site-permissions.ts - Resource policy
src/main/browser/resource-policy.ts - Popup policy
src/main/browser/popup-policy.ts - Ad blocker
src/main/browser/ad-blocker.ts - Filter engine
src/main/browser/ad-filter-engine.ts - Ad scriptlets
src/main/browser/ad-scriptlets.ts
Browser Services
- Download manager
src/main/browser/downloads.ts - History service
src/main/browser/history.ts - Closed tabs
src/main/browser/closed-tabs.ts - Page freezer
src/main/browser/page-freezer.ts - Idle workers
src/main/browser/idle-workers.ts - Renderer watchdog
src/main/browser/renderer-watchdog.ts
Character Theme
- Theme provider
src/renderer/theme/ThemeProvider.tsx - Character profile
src/renderer/onboarding/profileStore.ts - Theme definitions
src/renderer/theme/themes.ts - Character types
src/shared/character.ts
Other components
- Browser user
- Web destinations
Connections 29
- Browser user → Browser UI: enters address
README.md - Browser UI → Preload API: uses browser API
- Electron startup → Browser controller: creates
src/main/index.ts - Electron startup → Command IPC: registers
src/main/index.ts - Electron startup → Browser UI: loads UI
src/main/index.ts - Command IPC → Browser controller: dispatches commands
src/main/ipc.ts - Browser controller → Address policy: resolves input
src/main/browser/controller.ts - Browser controller → Tab manager: delegates tab actions
src/main/browser/controller.ts - Browser controller → Site contents: creates sessions
src/main/browser/controller.ts - Browser controller → Download manager: manages downloads
src/main/browser/controller.ts - Tab manager → Web destinations: navigates pages
README.md - Tab manager → Popup policy: checks popup intent
src/main/browser/tab-manager.ts - Tab manager → Closed tabs: restores tabs
src/main/browser/tab-manager.ts - Tab manager → Page freezer: uses page freezer
src/main/browser/tab-manager.ts - Tab manager → Renderer watchdog: checks health
src/main/browser/tab-manager.ts - Site contents → Permission policy: denies permissions
src/main/browser/site-sessions.ts - Site contents → Resource policy: checks scripts
src/main/browser/site-sessions.ts - Site contents → Ad blocker: creates filter
src/main/browser/site-sessions.ts - Site contents → Site permissions: uses permissions
src/main/browser/site-sessions.ts - Site contents → Idle workers: manages workers
src/main/browser/site-sessions.ts - Ad blocker → Filter engine: uses engine
src/main/browser/ad-blocker.ts - Ad blocker → Ad scriptlets: uses scriptlets
src/main/browser/ad-blocker.ts - Browser UI → Theme provider: renders within
src/renderer/dev/main.tsx - Theme provider → Character profile: loads and saves
src/renderer/theme/ThemeProvider.tsx - Theme provider → Theme definitions: selects theme
src/renderer/theme/ThemeProvider.tsx - Theme provider → Character types: uses profile types
src/renderer/theme/ThemeProvider.tsx - Character profile → Character types: stores profile
src/renderer/onboarding/profileStore.ts - Browser controller → History service: uses history
src/main/browser/controller.ts - Tab manager → Resource policy: uses resource policy
src/main/browser/tab-manager.ts