v150 · pwa · web-app-manifest · install
PWA origin migration
Chrome 150 introduces a mechanism for installed Progressive Web Apps to migrate to a new same-site origin without requiring the user to uninstall and reinstall. The app at the old origin can declare a migration target in its manifest; Chrome presents a prompt to update the installed app's origin while preserving user trust and permissions.
at a glance
| Shipped in | Chrome 150 (Enabled by default) |
|---|---|
| Status | Enabled by default |
| API change | Web App Manifest — new migration_targets field (or similar) |
| Standards position (Firefox) | No signal |
| Standards position (Safari) | No signal |
| ChromeStatus | 5123349239955456 — PWA origin migration |
why it exists
An installed PWA's identity is anchored to its web origin. Renaming a domain, restructuring subdomains, or re-hosting an app on a new origin previously required users to manually uninstall the old app and install from the new URL — losing any locally stored data, losing home screen placement, and creating friction that often results in permanent user loss.
Chrome 150 adds a migration path: when a developer moves a PWA from one same-site origin to another (for example, from app.example.com to www.example.com/app), they can declare this in the old app's Web App Manifest. Chrome detects the migration signal and prompts the user to update the installed app to the new origin, seamlessly carrying over the installation metadata.
Enterprise constraint: apps that are force-installed by an enterprise WebAppInstallForceList policy cannot be migrated — Chrome instead shows a banner explaining that migration is blocked by policy.
constraints
| Requirement | Detail |
|---|---|
| Same-site migration only | The new origin must share the same registrable domain (eTLD+1) as the old origin |
| Manifest declaration required | The old origin's manifest must declare the new origin as the migration target |
| Enterprise policy | Force-installed apps block migration; a UI banner notifies the user |
| User consent | Chrome prompts the user; migration does not happen silently |
browser support
| Browser | Support | Notes |
|---|---|---|
| Chrome 150+ | Enabled by default | Desktop and Android |
| Firefox | No signal | — |
| Safari | No signal | — |