application metadata.
What you write
What Crosslink serves
The worker is served at the root so its scope covers the whole origin: an
installed app reopening on a deep path is still claimed by it, which is what
lets the offline screen render at all.
Upgrades
The boot script reloads the page once when a new worker takes control, guarded bysessionStorage so it cannot loop. Without that, an updated install keeps
running the previous bundle out of the old cache — a failure that looks like a
bug in your app.
Install handoff
iOS does not share storage between the Safari tab that paired and the installed app launched from the home screen. Crosslink handles this with a single-use handoff: the tab mints an opaque id, the manifest’sstart_url carries it, and
the installed app redeems it at /__crosslink/install/:id to inherit the trust
that was just established.
This is why installing does not ask for a second pairing code.
Whether install actually works
Installability is a property of the origin, not of Crosslink. On a plain-HTTP LAN address the browser refuses to register a service worker, and Add to Home Screen produces a bookmark with no cached shell.Publishing the installable origin
pairing.bootstrapUrl to the published URL.