“Design a mobile browser” is a senior+ mobile-system-design prompt that probes whether you understand the platform constraints (especially iOS WebKit), tab and history management, sync, and the privacy-first product engineering of Safari, Chrome, Firefox, Brave, and Arc. This guide covers what an interviewer actually probes.
The iOS constraint
Until recently, all iOS browsers were required to use WebKit. iOS 17.4 in 2024 allowed alternative engines in the EU under DMA; outside the EU, the constraint stands. This shapes the design:
- iOS Chrome / Firefox / Brave / Arc on iOS = WebKit + custom UI
- Cannot ship V8/Blink rendering on iOS outside EU
- Sync, tabs, profiles, privacy — all are UI/services on top of WebKit
- Android: full Chromium / Gecko / WebKit options available
Tab management
- Tab grid with thumbnails (Safari-style) or tab strip (Chrome-style)
- Tab groups (Arc, Chrome) — saved sets of tabs
- Tab freeze: inactive tabs unloaded after time / memory pressure
- Restore on memory: snapshot URL + scroll position; rehydrate when activated
The session model
What does the browser persist?
- Open tabs (URL, scroll, history per tab)
- History (URL, title, visit count, last visit)
- Bookmarks
- Saved passwords (in OS keychain)
- Form auto-fill (addresses, payment cards)
- Cookies and site data per profile
- Permissions (camera, mic, location per origin)
Sync architecture
- End-to-end-encrypted sync of tabs, history, bookmarks, passwords
- Conflict resolution: last-write-wins for most data; merge for bookmark folders
- Server stores ciphertext; user controls a passphrase or device-key
- Apple iCloud Keychain / Google Account sync are the references
Privacy features
- Tracker blocking (built-in lists, custom lists)
- Cookie isolation per top-level site
- Fingerprint resistance
- Private browsing mode (no history persistence)
- Lockable private tabs (Face ID gate on Safari iOS)
- Apple’s Intelligent Tracking Prevention (ITP) is the iOS reference
The address bar / omnibox
- URL bar + search input combined
- Suggestions: history matches, bookmark matches, search suggestions, top sites
- Debounced input; cancel in-flight
- Touch ID / Face ID for autofill of passwords
Web view integration
- iOS: WKWebView (the system WebKit)
- Android: WebView (system Chromium) or bundled engine
- Custom user agent
- JavaScript bridge for native features (download, share, password fill)
- Pull-to-refresh, swipe-from-edge for back/forward
Performance
- Tab freezing under memory pressure
- Pre-warm rendering for top sites in the omnibox suggestions
- Disk cache for assets; share across origins where safe
- Pre-connect / pre-fetch for likely-next sites
Battery considerations
- Background tabs throttled (timers, network)
- Video tabs in background paused if offscreen
- Push notifications via Web Push (now supported on iOS Safari)
Downloads
- Native download UI; supports background download via OS APIs
- Files saved to OS Files app on iOS, Downloads on Android
- Resume after disconnect
Reader mode
- Heuristic content extraction (Mozilla Readability is the OSS reference)
- Reformatted typography; focus on text
- Save for offline reading
The “share” and integration story
- System share sheet from any page
- Open in Reader / Save to Reading List / Add to Home Screen
- App-link interception (deep link to native apps when available)
Web Push (iOS-specific)
- iOS 16.4+ supports Web Push for installed PWAs
- User must add to Home Screen first; then push works
- Notification routes via Apple Push Notification service
Multi-account / profile
- Chrome, Brave, Arc support multiple profiles with isolated data
- Safari does not (yet) support per-profile
- Per-profile sync, history, bookmarks, extensions
Extensions
- iOS Safari extensions are macOS-style with native-app wrappers (Apple’s policy)
- Android Chrome does not support extensions (mobile)
- Firefox on Android supports a curated set of extensions
What separates senior from staff
Senior candidates discuss the WebKit constraint and tab management. Staff candidates discuss the sync architecture (E2E encryption, conflict resolution), the privacy primitives (tracker blocking, ITP-style), and the perf tradeoffs (tab freeze, memory pressure). Principal candidates address the regulatory side (DMA, App Store policy, Web Push restrictions).
Frequently Asked Questions
Should I implement my own rendering engine?
For iOS outside EU, no — required to use WebKit. For Android or EU iOS, possible but enormous undertaking. Most browsers wrap an existing engine and differentiate on UX.
How do I handle deeply nested PWA tab restoration?
Persist tab tree to disk on each navigation; rehydrate on launch. Cap restore complexity (lazy-load all tabs except the foregrounded one).
What about the AI-browser trend (Arc, Comet, Brave Leo)?
Modern wave: integrated LLM that reads the page, summarizes, drafts replies. Out of scope for the core browser-design question, but worth mentioning as a 2025–2026 differentiator.