How driceroland/search works
Search is a lightweight macOS WebKit browser. The main workflow is entering an address or search in the browser field, opening it in a tab, and displaying the page; the browser also manages local browsing state and built-in privacy and convenience features. The README documents major capabilities not visible in the sampled excerpts, so those are represented at subsystem level using their exact source paths. Some internal wiring is omitted where excerpts do not establish the caller.
Main entry points: Browser.swift Browser coordinator · Extensions.swift Extension manager · Tab.swift Tab and page · App.swift Window and commands
Components 30
Window and controls
- Window and commands
Sources/Search/App.swift - Tab layout
Sources/Search/TabBar.swift
Pages and tabs
- Browser coordinator
Sources/Search/Browser.swift - Address handling
Sources/Search/Address.swift - Search field
Sources/Search/Omnibox.swift - Search providers
Sources/Search/Engine.swift - Tab and page
Sources/Search/Tab.swift - Reading mode
Sources/Search/Reader.swift - Floating video
Sources/Search/Float.swift
Privacy and identity
- Network blocker
Sources/Search/Shield.swift - Hidden elements
Sources/Search/Hidden.swift - Saved accounts
Sources/Search/Accounts.swift - Password vault
Sources/Search/Vault.swift - Passkeys
Sources/Search/Passkeys.swift
Local browser data
- Bookmarks
Sources/Search/Bookmarks.swift - History
Sources/Search/History.swift - Session restore
Sources/Search/Session.swift - Local JSON store
Sources/Search/Store.swift - Quiet updater
Sources/Search/Updater.swift
Extension support
- Extension manager
Sources/Search/Extensions.swift - CRX installer
Sources/Search/Crx.swift - Chrome API shims
Sources/Search/ExtensionShims.swift - Native extension APIs
Sources/Search/ExtensionNative.swift
Other components
- User
- WebKit engine
- Web pages
- macOS keychain
- WebKit extensions
- Extension data store
- Update service
Connections 31
- User → Window and commands: uses
- Window and commands → Browser coordinator: commands
- Window and commands → Tab layout: displays
- Browser coordinator → Search field: reads input
- Search field → Address handling: resolves
- Search field → Search providers: builds search
- Browser coordinator → Tab and page: opens pages
- Tab and page → WebKit engine: hosts page
- WebKit engine → Web pages: loads
- Reading mode → Tab and page: transforms page
- Network blocker → WebKit engine: blocks requests
- Hidden elements → WebKit engine: injects selectors
- Floating video → Tab and page: floats video
- Saved accounts → Password vault: offers credentials
- Password vault → macOS keychain: reads and writes
- Passkeys → WebKit engine: handles credentials
- Bookmarks → Local JSON store: persists
- History → Local JSON store: persists
- Session restore → Local JSON store: reads and writes
- Browser coordinator → Bookmarks: manages
- Browser coordinator → History: records visits
- Browser coordinator → Session restore: restores tabs
- Browser coordinator → Network blocker: configures
- Browser coordinator → Extension manager: starts manager
- Extension manager → CRX installer: installs package
- Extension manager → WebKit extensions: registers extensions
- Extension manager → Chrome API shims: prepares scripts
- Chrome API shims → Native extension APIs: dispatches API calls
- WebKit extensions → Extension data store: stores extension data
- Browser coordinator → Quiet updater: checks updates
- Quiet updater → Update service: checks and downloads