html5/webstorage Overview.html,1.10,1.11

Update of /sources/public/html5/webstorage
In directory hutz:/tmp/cvs-serv10183

Modified Files:
	Overview.html 
Log Message:
Block concurrent access to .cookie and .localStorage using the storage mutex. (whatwg r2899)

Index: Overview.html
===================================================================
RCS file: /sources/public/html5/webstorage/Overview.html,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- Overview.html	24 Mar 2009 02:12:38 -0000	1.10
+++ Overview.html	24 Mar 2009 08:15:28 -0000	1.11
@@ -502,7 +502,14 @@
   every <code>HTMLDocument</code> object whose <code>Window</code>
   object's <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code>
   attribute's <code><a href=#storage-0>Storage</a></code> object is associated with the same
-  storage area, other than <var title="">x</var>, a <code title=event-storage><a href=#event-storage>storage</a></code> event must be fired, as <a href=#event-storage title=event-storage>described below</a>.<h3 id=the-storage-event><span class=secno>3.5 </span>The <code title=event-storage><a href=#event-storage>storage</a></code> event</h3><!-- XXX fix up for workers: target is wrong, source and storageArea
+  storage area, other than <var title="">x</var>, a <code title=event-storage><a href=#event-storage>storage</a></code> event must be fired, as <a href=#event-storage title=event-storage>described below</a>.<p id=localStorageMutex>Whenever the properties of a <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code> attribute's
+  <code><a href=#storage-0>Storage</a></code> object are to be examined, returned, set, or
+  deleted, whether as part of a direct property access, when checking
+  for the presence of a property, during property enumeration, when
+  determining the number of properties present, or as part of the
+  execution of any of the methods or attributes defined on the
+  <code><a href=#storage-0>Storage</a></code> interface. the user agent must first
+  <span>obtain the storage mutex</span>.<h3 id=the-storage-event><span class=secno>3.5 </span>The <code title=event-storage><a href=#event-storage>storage</a></code> event</h3><!-- XXX fix up for workers: target is wrong, source and storageArea
   definitions are wrong --><p>The <dfn id=event-storage title=event-storage><code>storage</code></dfn> event
   is fired when a storage area changes, as described in the previous
   two sections (<a href=#sessionStorageEvent>for session
@@ -552,23 +559,14 @@
   represents the <code>WindowProxy</code> object of the <span>browsing
   context</span> of the document whose key changed.<p>The <dfn id=dom-storageevent-storagearea title=dom-StorageEvent-storageArea><code>storageArea</code></dfn>
   attribute represents the <code><a href=#storage-0>Storage</a></code> object that was
-  affected.<h3 id=threads><span class=secno>3.6 </span>Threads</h3><p>Multiple browsing contexts must be able to access the local
-  storage areas simultaneously in such a manner that scripts cannot
-  detect any concurrent script execution.<p>This is required to guarantee that the <code title=dom-Storage-length><a href=#dom-storage-length>length</a></code> attribute of a
-  <code><a href=#storage-0>Storage</a></code> object never changes while a script is
+  affected.<h3 id=threads><span class=secno>3.6 </span>Threads</h3><p>Because of <a href=#localStorageMutex>the use</a> of the
+  <span>storage mutex</span>, multiple browsing contexts will be able
+  to access the local storage areas simultaneously in such a manner
+  that scripts cannot detect any concurrent script execution.<p>Thus, the <code title=dom-Storage-length><a href=#dom-storage-length>length</a></code>
+  attribute of a <code><a href=#storage-0>Storage</a></code> object, and the value of the
+  various properties of that object, cannot change while a script is
   executing, other than in a way that is predictable by the script
-  itself.<p class=note>There are various ways of implementing this
-  requirement. One is to just have one <span>event loop</span> for all
-  <span title="browsing context">browsing contexts</span>. Another is
-  that if a script running in one browsing context accesses a storage
-  area, the user agent blocks scripts in other browsing contexts when
-  they try to access the same storage area until the <span>event
-  loop</span> running the first script has completed running the task
-  that started that script. Another (potentially more efficient but
-  certainly more complex) implementation strategy is to use optimistic
-  transactional script execution. This specification does not require
-  any particular implementation strategy, so long as the requirement
-  above is met.<h2 id=sql><span class=secno>4 </span>Database storage</h2><!-- Feature requests for future versions (v2):
+  itself.<h2 id=sql><span class=secno>4 </span>Database storage</h2><!-- Feature requests for future versions (v2):
         * deleting databases
         * determining how much storage room is left
         * handling the database getting corrupted

Received on Tuesday, 24 March 2009 08:15:39 UTC