On Sep 8, 2009, at 4:10 PM, Jonas Sicking wrote:
On Tue, Sep 8, 2009 at 4:00 PM, Maciej Stachowiak<m...@apple.com>
wrote:
On Sep 8, 2009, at 1:35 AM, Jonas Sicking wrote:
I think Firefox would be willing to break compat. The question is if
microsoft is. Which we need to ask them.
We would be very hesitant to break LocalStorage API compatibility for
Safari, at least without some demonstration that the level of real-
world
breakage is low (including for mobile-specific/iPhone-specific
sites).
Even if that means that you'll for all future will need to use a
per-domain mutex protecting localStorage? And even possibly a global
mutex as currently specified?
I don't think telling this story to users or developers will make them
satisfied with the breakage, so the "even if" is not very relevant.
I think there are ways to solve the problem without completely
breaking compatibility. For example:
- Keep the current LocalStorage API, but make it give no concurrency
guarantees whatsoever (only single key/value accesses are guaranteed
atomic).
- Add a simple optional transactional model for aware authors who want
better consistency guarantees.
This might not meaningfully break existing content, unlike proposals
for effectively mandatory new API calls. Particularly since IE doesn't
have any kind of storage mutex.
Yet another possibility is to keep a per-domain mutex, also offer a
transactional API, and accept that careless authors may indefinitely
lock up the UI for all pages in their domain (up to the slow script
execution limit) if they code poorly, but in exchange won't have
unexpected race conditions with themselves.
Regards,
Maciej