[whatwg] Web Storage: apparent contradiction in spec

Jens Alfke snej at google.com
Wed Aug 26 16:51:42 PDT 2009

On Aug 26, 2009, at 4:01 PM, Linus Upson wrote:

> The analogy was made comparing a user agent that purges local  
> storage to an OS throwing out files without explicit user action.  
> This is misleading since most files arrive on your computer's disk  
> via explicit user action. You copy files to your disk by downloading  
> them from the internet, copying from a network drive, from a floppy,  
> your camera, etc.

A web app would also be pretty likely to put stuff in local storage as  
a result of explicit user action. The use cases seem pretty similar.

Also, you're not counting files that you create locally. After all,  
files have to come from somewhere :) Those are the most precious since  
they're yours and they may not live anywhere else if you haven't  
backed them up or copied them elsewhere. There's no reason web-apps  
can't create the same kind of content, and it would look very similar  
to a user: I go to the word processor [website], click New Document,  
type some stuff, and click Save.

Even if the save process involves migrating the local data up to the  
cloud, that transition is not instantaneous: it can take arbitrarily  
large amounts of time if there are network/server problems or the user  
is offline. During that time, the local storage represents the only  
copy of the data. There is therefore a serious race condition where,  
if the browser decides to purge local data before the app has uploaded  
it, the data is gone forever.

> A better analogy would be, "What if watching TV caused 0-5MB size  
> files to silently be created from time to time in a hidden folder on  
> your computer, and when your disk filled up both your TV and  
> computer stopped working?"

This is a cache — that isn't the kind of usage I'm concerned about.  
Maybe the local storage API needs a way to distinguish between cached  
data that can be silently thrown away, and important data that can't.  
(For example, the Mac OS has separate 'Caches' and 'Application  
Support' subfolders of ~/Library/.)

First, this is what quotas are for. The TV web-app would have a  
limited quota of space to cache stuff.
Second, the browser should definitely help you delete stuff like this  
if disk space does get low; I'm just saying it shouldn't delete it  
silently or as part of some misleading command like "Empty Cache" or  
"Delete Cookies".

> At a minimum the HTML 5 spec should be silent on how user agents  
> implement local storage policies. I would prefer the spec to make it  
> clear that local storage is a cache, domains can use up to 5MB of  
> space without interrupting the user, and that UAs were free to  
> implement varying cache eviction algorithms.

That will have the effect of making an interesting category of new  
applications fail, with user data loss, on some browsers. That sounds  
like a really bad idea to me.

To repeat what I said up above: Maybe the local storage API needs a  
way to distinguish between cached data that can be silently thrown  
away, and important data that can't.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.whatwg.org/pipermail/whatwg-whatwg.org/attachments/20090826/d93ae00e/attachment-0002.htm>

More information about the whatwg mailing list