Hello!

Is there a way to create temporary/transient stores that are
automatically destroyed/cleaned up once the user closes the current
window/session?

My use case:

Let's say I am writing a browser-based image manipulation application
(it's something else, but it is easier to explain this way). For
performance reasons, as well as the ability to work offline, I am
using Gears to do everything on the client side.

So the scenario:

1. open an image (desktop.openFiles()) as a blob, read it into bytes[]
(blob.getBytes())
2. do something with it, let's say crop/rotate (javascript working
with bytes[])
3. save it locally by creating a resource store, building a blob from
bytes[], capturing the blob as a fake URL, then doing window.open with
that URL.

Everything works more or less well (let's ignore for now performance
issues).

The problem I have is that I see no way to determine when I should
remove the URL from the store, and/or the store itself. If I did it
with a server round-trip I could use various techniques to determine
that the file is no longer needed (from just cleaning up everything at
the end of the request/response to counting the number of downloads),
but I have no idea how to determine if the user has already
"downloaded" the file.

This is a major security/privacy issue for us: leaving user data in
gears' cache forever is 100% out of question - we have to clean up
everything by default.

So is there a way to create a temporary store/URL? Or a one-off URL,
that automatically self-destructs once fully read? Or maybe there is a
higher-level (non-gears related) JavaScript trick to determine when
window.open actually finishes everything, maybe by monitoring the
result of window.open?

Thanks,
MG

Reply via email to