Christopher Blizzard, Mozilla Paper Offline Web Apps Workshop

Author: Christopher Blizzard, Mozilla


At Mozilla we see Offline Support in Web Apps serving exactly one function: improving the experience that users have on the web. Our overall goal with the changing landscape of computing, especially with the move to more mobile platforms, is that anything that we can do to improve the responsiveness of applications and sites is worth doing. Offline apps, with some refinement, could vastly improve one of the main areas of responsiveness - time to launch.

We first shipped support for offline apps in the middle of 2009 with Firefox 3.5. Since that time we've only seen minimal adoption of a feature that we think could vastly improve the perceived load times for users. Instead we've seen investments in a large number of other technologies that don't change the model for web apps, but instead incrementally improve the technology that already exists. While those incremental changes are certainly worth doing, it's clear that with a widely deployed offline app model that we could be creating experiences that are an order of magnitude better.

We see this as a failure of the current standard, and are compiling feedback to propose improvements to what exists today. This workshop is part of that process.


It's pretty clear when looking at developer feedback that developers see the offline app cache as serving two very different purposes. Some people view it as a way to passively improve page load performance by explicitly adding resources to a cache. Others see it as a way to create applications that live entirely offline, more like what we see with a classic application model where code is downloaded, installed and run offline.

The technology we have today kind of does both of these things, but does both of them poorly. If we want to support both use cases well we'll likely need changes to how manifests are connected to html files, hints within those manifest files as to how the UA should treat resources and what experience they should present. We'll also need updated APIs and resource loading models and we should explore how manifests interact with 3rd party resources, hosted offsite.

These changes are likely small, and can be done in a backwards compatible way so that existing sites aren't impacted and users who adopt newer browser technology will have an incrementally better experience.


Once again, this is something that we see as serving the user's interest. That the offline app cache should be a mechanism to vastly improve a user's experience on the web, both in general browsing, but also to those users who want to download and install applications written using web technology.