- From: Jonas Sicking <jonas@sicking.cc>
- Date: Thu, 5 Aug 2010 10:22:25 -0700
- To: Jeremy Orlow <jorlow@chromium.org>
- Cc: Shawn Wilsher <sdwilsh@mozilla.com>, public-webapps WG <public-webapps@w3.org>
On Thu, Aug 5, 2010 at 2:30 AM, Jeremy Orlow <jorlow@chromium.org> wrote: > On Wed, Aug 4, 2010 at 7:15 PM, Jonas Sicking <jonas@sicking.cc> wrote: >> >> On Wed, Aug 4, 2010 at 2:56 AM, Jeremy Orlow <jorlow@chromium.org> wrote: >> > On Tue, Aug 3, 2010 at 11:26 PM, Jonas Sicking <jonas@sicking.cc> wrote: >> >> >> >> On Tue, Aug 3, 2010 at 3:20 PM, Shawn Wilsher <sdwilsh@mozilla.com> >> >> wrote: >> >> > Hey all, >> >> > >> >> > Some of the feedback I've been seeing on the web is that there is no >> >> > way >> >> > to >> >> > remove a database. Examples seem to be "web page wants to allow the >> >> > user to >> >> > remove the data they stored". A site can almost accomplish this now >> >> > by >> >> > removing all object stores, but we still end up storing some meta >> >> > data >> >> > (version number). Does this seem like a legit request to everyone? >> >> >> >> Sounds legit to me. Feel somewhat embarrassed that I've missed this so >> >> far >> >> :) >> > >> > Agreed. >> > What should the semantics be for open database connections? We could do >> > something like setVersion, but I'd just as soon nuke any existing >> > connection >> > (i.e. make all future operations fail). This seems reasonable since the >> > reasons we didn't do this for setVersion (data loss) don't really seem >> > to >> > apply here. >> >> Actually, there could dataloss apply here. Consider a page which >> creates a temporary database, fills it with data, and then slowly >> sends it to the server. Once all data has been sent to the server the >> database is removed. >> >> If you have two instances of that page open, one could remove the >> database while the other is still writing to it. >> >> Though this seems like a pretty scary setup anyway since if the user >> closes the second page midway through, the first one will succeed in >> deleting the database no matter what. > > Well, presumably the site won't delete a database programmatically if it > still has important information in it. I mean, the same scenario you just > explained could happen with .clear() or .removeObjectStore() as well. It can with .clear(), but it can't with .removeObjectStore() since you can only call that when you have a VERSION_CHANGE transaction, which you can only get once no other connections to the database exist. / Jonas
Received on Thursday, 5 August 2010 17:23:20 UTC