SnapSurf is a macOS-first CEF browser starter focused on maximum Chromium compatibility.
- CEF browser process + renderer process wiring (
BrowserApp) - Desktop app bundle build via CMake (
SnapSurf.app) - Browser shell orchestration (
BrowserWindow) - Core modules
TabManagerNavigationControllerDownloadServiceBookmarkStore(persistent local storage)
- Public contracts implemented in code
openUrl(url),goBack(tabId),goForward(tabId),reload(tabId)createTab(url?),closeTab(tabId),activateTab(tabId)startDownload(url, suggestedFilename?),cancelDownload(downloadId)addBookmark(url, title),removeBookmark(id),listBookmarks()
- macOS 12+
- CMake 3.24+
- Xcode command line tools
- CEF binary distribution extracted locally
cmake -S . -B build -G Xcode -DSNAPSURF_CEF_ROOT=/absolute/path/to/cef_binary_XXX_macosx64
cmake --build build --config ReleaseThe app bundle is produced under:
build/Release/SnapSurf.appopen build/Release/SnapSurf.appOptional start URL:
build/Release/SnapSurf.app/Contents/MacOS/SnapSurf --start-url=https://www.chromium.org- Browser state and logs:
~/Library/Application Support/SnapSurf - Downloads target dir:
~/Downloads - Bookmarks file:
~/Library/Application Support/SnapSurf/bookmarks.tsv
- Sandbox is enabled when
cef_sandboxis available; otherwise no-sandbox is used. - User-Agent stays Chromium default for compatibility.
- Popup requests are handled with a tab-policy baseline in
BrowserClient. - UI shell is intentionally minimal in this bootstrap; service APIs are ready for attaching tab/address toolbar UI next.