v148 · PWA · Web APIs

PWA origin migration

A new manifest field lets developers migrate an installed Progressive Web App from one same-site origin to another — preserving user trust, permissions, and the installed app identity — without forcing users to uninstall and reinstall.

concepts

  1. Manifest Config Explorer

    Side-by-side manifest and association-file builder for the migrate_to / migrate_from handshake, including same-site and allow_migration validation.

  2. Migration Timeline

    Step-by-step animated walkthrough of what happens when a user with the app installed visits the old origin after migration is declared: browser detection, service worker handoff, and identity transfer.

  3. Origin Validator

    Enter a source and destination origin to check whether the pair meets the same-site requirement. Valid pairs generate ready-to-paste migrate_to, migrate_from, and association-file snippets.

  4. Service Worker Bridge

    A visual inventory of 6 SW migration items (Cache API, Background Sync, Push Subscription, Notification Permission, IndexedDB, PWA Install) with click-to-expand transfer mechanisms. An animated 3-step migration simulation shows the old SW intercepting navigation, transferring the cache via postMessage, and the new SW receiving the handoff.

  5. Data Preservation Sim

    Animated simulation showing which PWA data types survive the manifest migration handshake automatically, which require manual application or service worker handoff code, and which need a reset or re-authentication plan.

why it shipped

Installed PWAs bind their identity — permissions, home screen placement, session data — tightly to their web origin. When a company rebrands, restructures domains, or migrates infrastructure, this binding became a painful break: the old app had to be abandoned and users nudged to reinstall from scratch. PWA origin migration introduces a manifest-level declaration on the old origin that points to the new one, plus a corresponding declaration on the new origin confirming the relationship. Chrome 150 uses this mutual claim to transfer the installed app's identity transparently, letting users continue using the app without noticing any change.

references