How duckduckgo/macos-browser works
This repository is the DuckDuckGo macOS browser. Its broad user workflow is browsing pages in tabs, with privacy protections and browser features such as bookmarks, downloads, and tab cleanup; it also includes data import/export, AI Chat, and Data Broker Protection. The tree establishes these product areas, but most implementation files were not sampled, so the graph avoids asserting their internal wiring. The sampled code does show drag-and-drop managers dispatching mutations and the Data Broker Protection operation manager invoking scan/opt-out runners and recording state.
Main entry points: ContentBlocking.swift Web content · DataBrokerProfileQueryOperationManager.swift Profile operations · BookmarkManager.swift Bookmarks · Application.swift Application
Components 20
Browser shell
- Application
DuckDuckGo/Application/Application.swift - Tab management
DuckDuckGo/TabBar/View/TabDragAndDropManager.swift - Tab preview
DuckDuckGo/TabPreview/TabPreviewWindowController.swift
Browsing and privacy
- Web content
DuckDuckGo/ContentBlocker/ContentBlocking.swift - Tracker blocking
DuckDuckGo/ContentBlocker/ContentBlockerRulesLists.swift - Consent handling
DuckDuckGo/Autoconsent/AutoconsentManagement.swift - Fire cleanup
DuckDuckGo/Fire/Model/Fire.swift
Browser data
- Bookmarks
DuckDuckGo/Bookmarks/Model/BookmarkManager.swift - Bookmark storage
DuckDuckGo/Bookmarks/Services/LocalBookmarkStore.swift - Bookmark drag-drop
DuckDuckGo/Bookmarks/Model/BookmarkDragDropManager.swift - Data import
DuckDuckGo/DataImport/DataImportExtension.swift - Data export
DuckDuckGo/DataExport/BookmarksExporter.swift - Downloads
DuckDuckGo/FileDownload/Model/FileDownloadManager.swift
Additional features
- AI Chat
DuckDuckGo/AIChat/UserScript/AIChatUserScript.swift - Broker protection
DuckDuckGo/DBP/DataBrokerProtectionManager.swift - Profile operations
LocalPackages/DataBrokerProtection/Sources/DataBrokerProtection/Shared/Operations/DataBrokerProfileQueryOperationManager.swift - Protection state
LocalPackages/DataBrokerProtection/Sources/DataBrokerProtection/Shared/Operations/DataBrokerProfileQueryOperationManager.swift - Scan opt-out runner
LocalPackages/DataBrokerProtection/Sources/DataBrokerProtection/Shared/Operations/DataBrokerProfileQueryOperationManager.swift
Other components
- Browser user
- Data brokers
Connections 19
- Browser user → Application: uses
- Application → Tab management: manages tabs
- Tab management → Tab preview: shows preview
- Browser user → Web content: browses
- Web content → Tracker blocking: applies rules
- Web content → Consent handling: handles consent
- Browser user → Bookmarks: organizes pages
- Bookmark drag-drop → Bookmarks: moves items
- Bookmarks → Bookmark storage: persists bookmarks
- Browser user → Data import: imports data
- Browser user → Data export: exports bookmarks
- Browser user → Downloads: downloads files
- Browser user → Fire cleanup: clears browsing data
- Browser user → AI Chat: opens assistant
- Browser user → Broker protection: uses protection
- Broker protection → Profile operations: schedules operations
- Profile operations → Scan opt-out runner: runs scan or opt-out
- Profile operations → Protection state: records state
- Data brokers → Scan opt-out runner: provides profiles