Desktop PWA installation: Chrome, Edge, and beyond
Published
In one line: Chrome and Edge on Windows, macOS, Linux, and ChromeOS let users
install PWAs as standalone desktop apps with their own windows, taskbar/dock entries,
and OS-level integration — triggered via beforeinstallprompt or the browser’s
ambient install icon.
Install triggers on desktop
Section titled “Install triggers on desktop”Unlike Android, desktop Chromium does not show a mini-infobar. The install affordances are:
- Address bar icon — a small “install” icon (a screen with a download arrow) appears in Chrome’s address bar or Edge’s address bar once the PWA meets the installability criteria.
- Browser menu — Chrome: three-dot menu → “Install [App Name]…”; Edge: three-dot menu → Apps → Install [App Name].
- Custom in-page prompt — your code captures
beforeinstallprompt, stores it, and callsprompt()from a click handler. This is the recommended approach for controlled install UX.
beforeinstallprompt fires on desktop just as it does on Android; the same code path
works across platforms.
Window management after install
Section titled “Window management after install”After installation, a PWA opens in its own app window (an OS window with no browser tabs, no address bar, no browser toolbar). The window is managed by the browser engine but presented by the OS:
- Windows: The app appears in the taskbar. Alt+Tab switches to it. Can be pinned to Start.
- macOS: The app appears in the Dock. Cmd+Tab includes it. Spotlight finds it.
- Linux: Appears in the application launcher (GNOME, KDE, etc.) as a
.desktopentry. - ChromeOS: Appears in the launcher shelf and in search.
The window title and icon come from the manifest’s name and icons. The window’s
behavior (size, position) follows the manifest’s launch_handler and
window_controls_overlay settings when specified.
Window Controls Overlay (WCO)
Section titled “Window Controls Overlay (WCO)”Chrome and Edge on desktop support window-controls-overlay in display_override,
which lets your web content extend into the title bar area. The OS-native close/minimize/
maximize buttons remain in place; your HTML fills the rest of the title bar:
{ "display": "standalone", "display_override": ["window-controls-overlay"]}.title-bar { /* Position content in the title bar region */ position: fixed; top: env(titlebar-area-y); left: env(titlebar-area-x); width: env(titlebar-area-width); height: env(titlebar-area-height);}WCO is desktop-only; on mobile it has no effect and falls back to standalone.
Per-platform notes
Section titled “Per-platform notes”Windows (Chrome / Edge)
Section titled “Windows (Chrome / Edge)”Both Chrome and Edge support PWA installation on Windows 10 and 11. Edge additionally
registers the PWA with the Windows Shell (Start menu, jump lists) more deeply than
Chrome. Both generate a .lnk shortcut in the user’s apps folder. Edge’s “Apps” hub
(edge://apps) manages installed PWAs.
macOS (Chrome / Edge)
Section titled “macOS (Chrome / Edge)”On macOS, both Chrome and Edge create an app bundle in ~/Applications/Chrome Apps/
or ~/Applications/Microsoft Edge Apps/. The app appears in Spotlight and the Finder.
Native macOS features like full-screen mode and Spaces work. The app does not appear
in the Mac App Store.
Linux (Chrome)
Section titled “Linux (Chrome)”Chrome creates a .desktop file in ~/.local/share/applications/. The app appears in
the system launcher. Edge on Linux also supports PWA install (Chromium-based).
ChromeOS
Section titled “ChromeOS”ChromeOS is tightly integrated with PWA installation. PWAs installed via Chrome on ChromeOS appear in the ChromeOS launcher, can be pinned to the shelf, and behave as first-class apps. ChromeOS also has native integration with the Google Play Store for TWAs (see TWA reference).
macOS / Windows Safari
Section titled “macOS / Windows Safari”Safari on macOS (Sonoma / 14+) introduced Web Apps — users can install websites
from Safari’s File menu → “Add to Dock”. The installed app opens in a Safari-based
window without the address bar. beforeinstallprompt does not fire in Safari; the
install is entirely user-driven from Safari’s menus. The feature was introduced in
macOS Sonoma (14.0, late 2023). Safari on Windows does not exist as a supported platform.
Firefox (Desktop)
Section titled “Firefox (Desktop)”Firefox desktop does not support PWA installation. The address bar install icon
and beforeinstallprompt are absent. Users can bookmark the site but cannot install
it as a standalone app.
Detecting standalone mode on desktop
Section titled “Detecting standalone mode on desktop”const isStandalone = window.matchMedia('(display-mode: standalone)').matches || window.matchMedia('(display-mode: window-controls-overlay)').matches;Use this to hide the install button when the user is already using the installed app.
Compatibility
Section titled “Compatibility”For current per-browser installation support figures, see /compatibility/.
Practical checklist
Section titled “Practical checklist”- Manifest has
display: standalone(or WCO for title-bar apps). - Icons include at least 192 × 192 and 512 × 512 PNGs; consider an SVG
any maskablevariant. -
beforeinstallpromptis captured and triggered from a user gesture. - Standalone detection suppresses the install button when already installed.
- If targeting macOS Sonoma Safari, test the File → “Add to Dock” path separately (no JS API).
- Test window resize and
env(titlebar-area-*)CSS if using WCO.