Re: [manifest] Integration with service workers (#161)

So... back to the topic. The conclusion is that currently Service Workers don't need to be integrated with the web app manifest because user agents should ignore manifests for apps which don't also register a Service Worker and not offer to install those apps. Apps installed via a manifest will always work offline because they can't be installed unless a Service Worker is already registered, and it's assumed that registration will transition from the browsing context to the application context so everything will Just Work. It's also implied that a Service Worker registration should never happen as a result of installing an app, an app must always have exactly the same Service Worker registrations whether used in a browsing context or an application context.

I can see what you're trying to achieve here, raising the bar of what a web app is, much like the side effect of requiring SSL for Service Workers. And ensuring that a web app works exactly the same inside and outside the browser. I don't necessarily disagree with these goals, but let me play devil's advocate for a moment:

1) As awesome as Service Workers are, approximately 0% of web apps (even top tier web apps) currently use them, it's probably going to take several years for this technology to become widespread. Is it fair to insist that adoption of the W3C web manifest is fully dependent on the adoption of Service Workers, given that one is significantly more straightforward to add to an existing web app than the other? Is no cross-platform Facebook web app really better than a cross-platform Facebook web app that doesn't provide a great offline experience? Should we be forcing that product decision on all app developers?
2) Is the registration of a Service Worker alone really a good indication of quality, or that the app provides an offline experience? An app could register a Service Worker for another reason and not provide any offline experience at all.
3) What if someone actually wants to create an app which doesn't use Service Workers? What if the entire purpose of an app is not to store any data on your device, but you still want to add it to your homescreen with a shiny icon and it open with no URL bar?
4) Maybe it's a fair assumption that Service Worker registrations will survive the install process, but what if it isn't? What if the browsing context on a given operating system uses a completely different rendering engine to the application context it installs? Wouldn't it be helpful to be able to populate the Service Worker cache at install time so that it works offline the first time you launch it?
5) Is it really that evil to have a web app which works online in the browser and only downloads all of its assets to your device if you actively "install" it, rather than if you just happen to visit one of its pages in the browser? Should we be taking that design decision away from developers?

---
Reply to this email directly or view it on GitHub:
https://github.com/w3c/manifest/issues/161#issuecomment-73228067

Received on Friday, 6 February 2015 12:14:52 UTC