The update surface a platform contributes, so one settings row can drive both.
install is optional because the platforms genuinely differ, and flattening that would make the
web lie. On native, checking and downloading are separate: you learn a version exists, then choose
to fetch it. On the web registration.update() fetches the worker and the browser installs it as
part of checking, so by the time anything could be reported the download has already happened —
offering "an update is available, download it?" would be offering a choice that is already made.
A platform without a separate download step omits install and never reports available; the UI
keys off its absence rather than a platform flag.
The update surface a platform contributes, so one settings row can drive both.
installis optional because the platforms genuinely differ, and flattening that would make the web lie. On native, checking and downloading are separate: you learn a version exists, then choose to fetch it. On the webregistration.update()fetches the worker and the browser installs it as part of checking, so by the time anything could be reported the download has already happened — offering "an update is available, download it?" would be offering a choice that is already made. A platform without a separate download step omitsinstalland never reportsavailable; the UI keys off its absence rather than a platform flag.