<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>On Aug 25, 2009, at 1:38 PM, Linus Upson wrote:</div><div><div><br class="Apple-interchange-newline"><blockquote type="cite">It is important that all local state be treated as a cache. User agents need to be free to garbage collect any local state. If they can't then attackers (or the merely lazy) will be able to fill up the user's disk. We can't expect web sites or users to do the chore of taking out the garbage. Better user agents will have better garbage collection algorithms.<div>
<br></div><div>It would be better to remove section 4.3.</div></blockquote><div><br></div>I disagree.  <div><br></div><div>One key advantage of LocalStorage and Databases over cookies is that they *do* have a predictable, persistent lifetime, and the browser is *not* allowed to prune them at will.  </div><div><br></div><div>User agents are perfectly allowed to not allow new items to go into LocalStorage or Database Storage once some quota is met, or if the user has disabled it for that domain, or disabled it altogether, or if the disk is filling up, or any other number of circumstances.</div><div><br></div><div>But once the data is stored, it should be considered user data - as "sacred" as a user's file on the file system.</div><div><br></div><blockquote type="cite"><div>Linus</div><div><br><br><div class="gmail_quote">On Tue, Aug 25, 2009 at 1:18 PM, Jens Alfke <span dir="ltr"><<a href="mailto:snej@google.com">snej@google.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: static; z-index: auto; "><div style="word-wrap:break-word">I've just noticed an apparent self-contradiction in the <a href="http://dev.w3.org/html5/webstorage" target="_blank">Web Storage spec</a> (24 August draft).<div>
<br></div><div>Section 4.3 states:</div><div><blockquote type="cite">Data stored in local storage areas should be considered potentially user-critical. It is expected that Web applications will use the local storage areas for storing user-written documents.</blockquote>
</div><div><br></div><div>Section 6.1 states:</div><div><blockquote type="cite">User agents should present the persistent storage feature to the user in a way that does not distinguish them from HTTP session cookies.</blockquote>
<br></div><div>These statements are contradictory, because cookies don't store user-critical data such as documents. The user model of cookies is that they're conveniences (at best) for keeping you logged into a site or remembering preferences like font-size, so deleting them is no more than an inconvenience. If local storage is presented to the user as being cookies, then a user may delete it without understanding the consequences.</div>
<div><br></div><div>Potential result: "I was having trouble logging into <a href="http://FooDocs.com">FooDocs.com</a>, so my friend suggested I delete the cookies for that site. After that I could log in, but now the document I was working on this morning has lost all the changes I made! How do I get them back?"</div>
<div><br></div><div>I suggest that the sub-section "Treating persistent storage as cookies" of section 6.1 be removed.</div></div></blockquote></div></div></blockquote><div><br></div>I agree that the wording of the section needs great improvement and it is factually wrong in its current form.  That said, I don't think it should be removed.  </div><div><br></div><div>I *think* Ian's intention was that in the same vein that user agents are "obligated" to present all of the cookies stored on the disk at any given time and allow manual management of them, they should be "obligated" to do the same for LocalStorage (and databases, too).  </div><div><br></div><div>If I'm wrong, hopefully he can correct me.</div><div><blockquote type="cite"><div><div class="gmail_quote"></div>
</div>
</blockquote></div><div><br></div><div>~Brady</div><div><br></div><div><br></div><br></div></body></html>