The webappmanifest API was added a while back to MobileFrontend to allow installation on mobile devices.
Recently Chrome allows installation of apps on desktop and it's clear from the direction of other browsers that this is becoming less of a mobile-web concept and more of a web concept.
From a marketing perspective, as well as product perspective (potential source of new page views) it is desirable to make the new Vector installable for when the new Modern Vector skin rolls out to all wikis.
Goals
- I should be able to install the Wikipedia website in browsers which support web app installations.
Technical goals
Web app manifest
- The required checklist items for the manifest section should be ticked for mobile
- The manifest file should be referenced for all skins including the desktop site
- The API should be moved out of MobileFrontend into a more appropriate place. MediaWiki core is proposed given this is useful for all skins.
- The manifest API should allow customization per skin. It should accept a "skin" parameter.
- Skins should be able to customize certain values in the manifest using the hooks system. A hook onWebAppManifestGeneration( Skin $skin ) might be appropriate here.
- The API response should be highly cached. Suggested: 1 week age to allow for updates via the train.
Service worker
- We will likely need to add a minimal service worker to meet the criteria for Chrome web apps. To begin with our service worker might cache static assets such as the logo.