On 14 July 2015 at 23:00, <mar...@marcosc.com> wrote: > A few people have reached out to me with concerns about implementing web > manifest in Gecko and have asked me to restart this thread (given that no > one objected the first time around). There are concerns about the utility > of Web manifests, the overall vision of "appifying" the Web, and their > purpose given that the essentially replicate functionality in > well-established and widely used <meta> elements. >
I'm disappointed that this feedback is coming now when the web manifest spec forms a key part of our product roadmap [0], rather than a year ago when its implementation was proposed. But happy to discuss. I do understand these concerns and all of the issues raised have been discussed at length before. I'd like to address the individual points raised, as well as the general vision for "appifying the web" which I don't think is necessarily what people might think. > Some of the things raised: > > * It's not clear what problems manifest solves: do we really want to > replicate "native app" installation behavior on the Web? We don't have a > good history of making this work in various products. > This might be what "Open Web Apps" ended up doing, but I don't believe it's what the current W3C manifest for web application spec does. I think we learned a lot about how not to do apps on the web through that process. The W3C spec doesn't support a model where apps can be submitted to and installed from a central app store. It supports a fundamentally more web-like model which puts the browser back at the centre of web app discovery, making web apps something you discover simply by browsing and searching the web, something which works instantly just by navigating to it in any browser, and something which can optionally be bookmarked. Some key differences from what we've had before: * The manifest link relation which associates a web page with a web manifest, making web app metadata crawlable and discoverable by search engines and user agents * The absence of an installation API of any kind * The absence of packages, with all web apps having linkable URLs on the web > * Extra HTTP request could yield a performance penalty (even if > deprioritized)... though probably not a concern in a HTTP2 world. > As Marcos says, I don't see how this is different to any other resource like CSS and JavaScript which are shared between multiple pages and cached in the HTTP cache. Re-downloading the same metadata multiple times in different pages seems less efficient. > * Can't we just use meta tags (application-name, etc.)? > Yes we could, but whilst cramming 12+ more meta tags into the <head> of every page is one solution, it isn't necessarily the best solution. The manifest is shared between multiple pages, can can contain structured data like a map of icons, and is extensible. I think a centrally linked JSON file is a good technical solution to this problem. I would actually recommend that for simple site/app metadata like an application name and icon web developers should use the existing application-name meta tag and icon link relation (we will support this). But for more complex, structured metadata a JSON manifest is a good solution. I would make the same argument for page metadata too. In fact I've started to document this [1] as part of guidance for developers wanting to make the most of features coming in Firefox OS 2.5. > * App-scope is as bad, or worst, than scope in service workers (i.e., you > only get one directory in a domain, or the whole domain). > I would like to understand what is bad about scope in Service Workers, but perhaps that is a separate discussion. We know that the currently defined single scope URL prefix has limitations, and there are multiple research-backed [2] proposals for how to make it more flexible (and complex) if that turns out to be necessary. But scope is absolutely needed and is the source of some of the most frustrating and long standing technical and UX problems in Firefox OS today. It's why you can get stranded on a web page without a back button, it's why the window manager behaves unpredictably when launching content from icons, it's why you can end up with a completely different experience of the same content depending on how you got there. You can clearly see this feedback being surfaced in the foxfood feedback channels, and people are creating hacky solutions to get around it. Scope is essential to register the URL scope to which app metadata applies with the user agent, and to divide a single origin into multiple sites/apps (e.g. google.com/maps vs. google.com/calendar). Without a clearly defined scope it's impossible to tell for any given URL which app name/display mode/orientation/theme-color etc. should apply until the page has been fully downloaded and parsed. This creates all sorts of technical and UX problems. > * How would Desktop firefox make use of display modes? (i.e., how would > they work with tab browsing) > I have started discussions with the Firefox Product and UX teams (on desktop and on mobile) to discuss this very topic, and we have some ideas about how this could work. The W3C manifest spec forms a key part of what a group of people from across Mozilla (Firefox OS, Firefox, Marketplace, Content/BizDev) are working on as a proposal for a Mozilla-wide strategy for more webby web apps. You can read some notes on that here [3]. I am excited that we finally have a draft standard for web apps that multiple browser vendors agree on, has already been implemented by Chrome and Opera and is well underway being implemented for Firefox OS and Firefox. I think this, Service Workers and some other emerging web standards together form a compelling vision for how the web can become truly competitive with native app platforms, without losing what makes the web so unique in the first place. I see growing industry momentum [4] around this shared vision and I hope that we can continue to move forward in that direction, with your support. All the Best Ben 0. https://wiki.mozilla.org/FirefoxOS/Pin_the_Web 1. https://wiki.mozilla.org/FirefoxOS/Pin_the_Web/Optimising_Content 2. https://docs.google.com/document/d/1fOsQWOOVuKyqO7cXZoKmxZGQ9FLgLMwmCRw3OEqIKrQ/edit?usp=sharing 3. https://etherpad.mozilla.org/web-app-discovery 4. https://infrequently.org/2015/06/progressive-apps-escaping-tabs-without-losing-our-soul/ _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform