<div class="gmail_quote">On Fri, Jul 30, 2010 at 7:09 PM, Alexandre Morgaut <span dir="ltr"><<a href="mailto:Alexandre.Morgaut@4d.com">Alexandre.Morgaut@4d.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div style="word-wrap:break-word"><div class="im"><div><br><blockquote type="cite"><div class="gmail_quote"><div><div class="gmail_quote"><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">

<div style="word-wrap:break-word"><div><div><span style="font-family:Arial;font-size:13px">Storage::setExpiration(in DOMString key, in TTL or expiration Date)</span></div>

<div><span style="font-family:Arial;font-size:13px"><br></span></div><div><span style="font-family:Arial;font-size:13px"></span><span style="font-family:Arial;font-size:13px">(or </span><span style="font-family:Arial;font-size:13px">Storage::setTTL() if you guys don't agree on the Date option)</span></div>



</div></div></blockquote><div><br></div><div>This might make sense, but I'm also not sure it's worth the additional API surface area.  Plus I kind of like the idea of making it difficult for people to detect whether the browser even supports expiration since we don't people to ever assume they can count on it.  (Since once again, what if the user doesn't turn on their computer or the UA doesn't delete expired data unless it's running?)</div>



</div></div></div></blockquote><br></div></div><div>Well, as Nicholas said, the important thing is that the User-Agent makes its best to remove the items ASAP once they expired.</div><div><br></div><div>Sure some of these items could remain on disk while they expired until the UA start again.</div>

<div>This is absolutely not a strong security feature. </div><div>The user still should be able to remove manually the storages content, or disable access to the storage objects,  from the User-Agent menus/preferences.</div>

<div><br></div><div>I'm not confortable into hiding User-Agent capabilities from the API.</div><div>Smart people like John Resig recommend to check the available API instead of looking after the User-Agent name and version to detect them, and I kind of like this approach.</div>

</div></blockquote><div><br></div><div>My point was that a programmer really shouldn't do anything differently whether or not the API is available.  But you're probably right that it'd only push such an author towards user-agent sniffing which is of course worse.</div>

<div><br></div><div>I just had another thought.  Although I strongly feel that the spec shouldn't guarantee when the data is deleted (and should probably have some non-normative text explaining why) we could (if we wanted to) guarantee that data won't be available to the page after that time.  (Of course subject to run to completion constraints--if the user calls localStorage.length, we can't delete the item until they leave the scripting context.  Also there's a question of whether we'd fire StorageEvents while something's timed out.  Maybe we should just expire stuff when navigating to a page and not while the page is running?)</div>

<div><br></div><div>J</div></div>