Chrome 150 で PWA Origin Migration が使える。インストール済み PWA の識別子はオリジンに強く結びつくため、これまで www.example.com/social から social.example.com のような同一サイト内の再配置では、利用者に旧アプリの手動アンインストールと新規インストールを強いていた。新旧オリジンが双方向で移行を宣言すると、アプリ更新に近い UI で旧アプリの削除と新アプリのインストール・起動を一続きに進められる。対象は同一サイト(同じ eTLD+1)に限られる。
手順の要点は次のとおり。
- 新アプリのマニフェストに
migrate_fromを置き、旧オリジンを列挙する。移行先マニフェストにはidが必須である。 - 旧オリジンの
/.well-known/web-app-origin-associationで、移行先アプリにallow_migration: trueを付ける。 - 任意で旧マニフェストの
migrate_toにより、利用者が新サイトを訪れる前から更新を促せる。旧 URL をリダイレクトする場合は、migrate_from内のinstall_urlでリダイレクトされない旧マニフェスト取得先を残す。 behaviorは既定のsuggest(受動的な通知)と、起動時に更新かアンインストールを求めるforceがある。forceでは名前・アイコンの同時変更はできず、移行後の通常更新で提示される。- エンタープライズの WebAppInstallForceList で強制インストールされたアプリには移行 UI は出ず、ポリシーにより移行できない旨のバナーが出る。
新アプリ側の宣言例は次のとおり。
json
{
"name": "File Manager",
"id": "/files/",
"start_url": "/files/index.html",
"migrate_from": [
"https://drive.google.com/"
]
}旧オリジン側の承認例は次のとおり。
json
{
"https://fileman.google.com/files/": {
"allow_migration": true
}
}