# Design a Mobile Browser: Chrome and Safari Style on iOS

Source: https://www.techinterview.org/post/3233475341/mobile-system-design-browser-chrome-safari-ios/
Updated: 2026-05-06 · techinterview.org

"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.
