[html5] r1200 - /

whatwg at whatwg.org whatwg at whatwg.org
Sat Feb 9 00:39:27 PST 2008


Author: ianh
Date: 2008-02-09 00:39:25 -0800 (Sat, 09 Feb 2008)
New Revision: 1200

Modified:
   index
   source
Log:
[w] (2) Redefine how the 'storage' event works. Remove the queueing of events. Add some v2 notes.

Modified: index
===================================================================
--- index	2008-02-09 04:52:26 UTC (rev 1199)
+++ index	2008-02-09 08:39:25 UTC (rev 1200)
@@ -1175,6 +1175,10 @@
 
        <li><a href="#the-storage0"><span class=secno>4.10.5 </span>The <code
         title=event-storage>storage</code> event</a>
+        <ul class=toc>
+         <li><a href="#event0"><span class=secno>4.10.5.1. </span>Event
+          definition</a>
+        </ul>
 
        <li><a href="#miscellaneous0"><span class=secno>4.10.6
         </span>Miscellaneous implementation requirements for storage
@@ -1434,7 +1438,7 @@
 
    <li><a href="#comms"><span class=secno>6. </span>Communication</a>
     <ul class=toc>
-     <li><a href="#event0"><span class=secno>6.1 </span>Event definitions</a>
+     <li><a href="#event1"><span class=secno>6.1 </span>Event definitions</a>
       
 
      <li><a href="#server-sent-events"><span class=secno>6.2
@@ -2791,7 +2795,7 @@
            attribute DOMString <a href="#registrationmark0" title=dom-registrationMark>registrationMark</a>;
   readonly attribute DocumentFragment <a href="#originalcontent" title=dom-originalContent>originalContent</a>;
 
-  // <a href="#event3">event handler DOM attributes</a>
+  // <a href="#event4">event handler DOM attributes</a>
            attribute <span>EventListener</span> <a href="#onabort" title=handler-onabort>onabort</a>;
            attribute <span>EventListener</span> <a href="#onbeforeunload" title=handler-onbeforeunload>onbeforeunload</a>;
            attribute <span>EventListener</span> <a href="#onblur" title=handler-onblur>onblur</a>;
@@ -6255,7 +6259,7 @@
    <dd><code title=attr-title><a href="#title">title</a></code>
   </dl>
 
-  <p>In addition, the following <a href="#event2">event handler content
+  <p>In addition, the following <a href="#event3">event handler content
    attributes</a> may be specified on any <span>HTML element</span>:
 
   <dl class=element>
@@ -25416,7 +25420,7 @@
   // <a href="#cross-document">cross-document messaging</a>
   void <a href="#postmessage" title=dom-window-postMessage>postMessage</a>(in DOMString message);
 
-  // <a href="#event3">event handler DOM attributes</a>
+  // <a href="#event4">event handler DOM attributes</a>
            attribute <span>EventListener</span> <a href="#onabort" title=handler-onabort>onabort</a>;
            attribute <span>EventListener</span> <a href="#onbeforeunload" title=handler-onbeforeunload>onbeforeunload</a>;
            attribute <span>EventListener</span> <a href="#onblur" title=handler-onblur>onblur</a>;
@@ -25667,8 +25671,8 @@
     rule in a CSS <code><a href="#style">style</a></code> element block).
 
    <li>Event handlers, whether registered through the DOM using <code
-    title="">addEventListener()</code>, by explicit <a href="#event2">event
-    handler content attributes</a>, by <a href="#event3">event handler DOM
+    title="">addEventListener()</code>, by explicit <a href="#event3">event
+    handler content attributes</a>, by <a href="#event4">event handler DOM
     attributes</a>, or otherwise.
 
    <li>Processing of technologies like XBL or SVG that have their own
@@ -25964,13 +25968,13 @@
   <h5 id=event-handler-attributes><span class=secno>4.3.6.1. </span>Event
    handler attributes</h5>
 
-  <p><a href="#html-elements">HTML elements</a> can have <dfn id=event1>event
+  <p><a href="#html-elements">HTML elements</a> can have <dfn id=event2>event
    handler attributes</dfn> specified. These act as bubbling event listeners
    for the element on which they are specified.
 
-  <p>Each event handler attribute has two parts, an <a href="#event2"
+  <p>Each event handler attribute has two parts, an <a href="#event3"
    title="event handler content attributes">event handler content
-   attribute</a> and an <a href="#event3" title="event handler DOM
+   attribute</a> and an <a href="#event4" title="event handler DOM
    attributes">event handler DOM attribute</a>. Event handler attributes must
    initially be set to null. When their value changes (through the changing
    of their event handler content attribute or their event handler DOM
@@ -25978,11 +25982,11 @@
    <code>EventListener</code> object assigned to them.
 
   <p>Objects other than <code>Element</code> objects, in particular <code><a
-   href="#window">Window</a></code>, only have <a href="#event3" title="event
+   href="#window">Window</a></code>, only have <a href="#event4" title="event
    handler DOM attributes">event handler DOM attribute</a> (since they have
    no content attributes).
 
-  <p><dfn id=event2>Event handler content attributes</dfn>, when specified,
+  <p><dfn id=event3>Event handler content attributes</dfn>, when specified,
    must contain valid ECMAScript code matching the ECMAScript <code
    title="">FunctionBody</code> production. <a
    href="#refsECMA262">[ECMA262]</a>
@@ -26007,7 +26011,7 @@
 
   <p class=issue>How do we allow non-JS event handlers?
 
-  <p><dfn id=event3>Event handler DOM attributes</dfn>, on setting, must set
+  <p><dfn id=event4>Event handler DOM attributes</dfn>, on setting, must set
    the corresponding event handler attribute to their new value, and on
    getting, must return whatever the current value of the corresponding event
    handler attribute is (possibly null).
@@ -28155,7 +28159,7 @@
      cache</var>.
   </ol>
 
-  <p>The following are the <a href="#event3">event handler DOM attributes</a>
+  <p>The following are the <a href="#event4">event handler DOM attributes</a>
    that must be supported by objects implementing the <code><a
    href="#applicationcache">ApplicationCache</a></code> interface:
 
@@ -30241,7 +30245,15 @@
   boolean <a href="#setitem" title=dom-Storage-setItem>setItem</a>(in DOMString key, in DOMString data);
   void <a href="#removeitem" title=dom-Storage-removeItem>removeItem</a>(in DOMString key);
 };</pre>
+  <!-- XXX v2 ideas:
+    a getInfo() method that returns an object that tells you:
+       - when the key was added
+       - when the key was last modified
+       - which page was the last to modify the key
+    [--Mihai Sucan]
 
+  -->
+
   <p>Each <code><a href="#storage0">Storage</a></code> object provides access
    to a list of key/value pairs, which are sometimes called items. Keys and
    values are strings. Any string (including the empty string) is a valid
@@ -30462,28 +30474,66 @@
    href="#sessionStorageEvent">for session storage</a>, <a
    href="#globalStorageEvent">for global storage</a>).
 
-  <p>When this happens, the user agent must <a href="#firing2">fire a simple
-   event</a> called <code><a href="#storage0">storage</a></code> on <a
-   href="#the-body0">the body element</a>.
+  <p>When this happens, the user agent must dispatch an event with the name
+   <code><a href="#storage0">storage</a></code>, with no namespace, which
+   does not bubble but is cancelable, and which uses the <code><a
+   href="#storageevent">StorageEvent</a></code>, at <a href="#the-body0">the
+   body element</a> of each <a href="#active" title="active
+   document">active</a> <code><a href="#htmldocument">HTMLDocument</a></code>
+   object affected. The event must have its <code
+   title=dom-StorageEvent-key><a href="#key">key</a></code> attribute set to
+   the name of the key in question, its <code
+   title=dom-StorageEvent-oldValue><a href="#oldvalue">oldValue</a></code>
+   attribute set to the old value of the key in question, or null if the key
+   is newly added, its <code title=dom-StorageEvent-newValue>newValue</code>
+   attribute set to the new value of the key in question, or null if the key
+   was removed, its <code title=dom-StorageEvent-uri><a
+   href="#uri">uri</a></code> attribute set to the address of the page whose
+   <code><a href="#storage0">Storage</a></code> object was affected, and its
+   <code title=dom-StorageEvent-source><a href="#source0">source</a></code>
+   attribute set to the <code><a href="#window">Window</a></code> object of
+   hte <span>browsing content</span> that that documents finds is in.</p>
+  <!-- XXX onstorage should be defined -->
 
-  <p>However, it is possible (indeed, for session storage areas, likely) that
-   the target's <code><a href="#htmldocument">HTMLDocument</a></code> object
-   is not an <a href="#active">active document</a> at that time. In such
-   cases, the user agent must instead delay the firing of the event until
-   such time as the <code><a href="#htmldocument">HTMLDocument</a></code>
-   object in question becomes an <a href="#active">active document</a> again.
+  <h5 id=event0><span class=secno>4.10.5.1. </span>Event definition</h5>
 
-  <p>When there are multiple delayed <code><a
-   href="#storage0">storage</a></code> events for the same <code><a
-   href="#htmldocument">HTMLDocument</a></code> object, user agents must
-   coalesce those events such that only one event fires when the document
-   becomes active again.
+  <pre class=idl>interface <dfn id=storageevent>StorageEvent</dfn> : Event {
+  readonly attribute DOMString <a href="#key" title=dom-StorageEvent-key>key</a>;
+  readonly attribute DOMString <a href="#oldvalue" title=dom-StorageEvent-oldValue>oldValue</a>;
+  readonly attribute DOMString <span title=dom-StorageEvent-newValue>newValue</span>;
+  readonly attribute DOMString <a href="#uri" title=dom-StorageEvent-uri>uri</a>;
+  readonly attribute <a href="#window">Window</a> <a href="#source0" title=dom-StorageEvent-source>source</a>;
+  void <a href="#initstorageevent" title=dom-StorageEvent-initStorageEvent>initStorageEvent</a>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMString keyArg, in DOMString oldValueArg, in DOMString newValueArg, in DOMString uriArg, in Window sourceArg);
+  void <a href="#initstorageeventns" title=dom-StorageEvent-initStorageEventNS>initStorageEventNS</a>(in DOMString namespaceURI, in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMString keyArg, in DOMString oldValueArg, in DOMString newValueArg, in DOMString uriArg, in Window sourceArg);
+};</pre>
 
-  <p>If the DOM of a page that has delayed <code><a
-   href="#storage0">storage</a></code> events queued up is <a href="#discard"
-   title=discard>discarded</a>, then the delayed events are dropped as well.</p>
-  <!-- XXX onstorage should be defined -->
+  <p>The <dfn id=initstorageevent
+   title=dom-StorageEvent-initStorageEvent><code>initStorageEvent()</code></dfn>
+   and <dfn id=initstorageeventns
+   title=dom-StorageEvent-initStorageEventNS><code>initStorageEventNS()</code></dfn>
+   methods must initialise the event in a manner analogous to the
+   similarly-named methods in the DOM3 Events interfaces. <a
+   href="#refsDOM3EVENTS">[DOM3EVENTS]</a>
 
+  <p>The <dfn id=key title=dom-StorageEvent-key><code>key</code></dfn>
+   attribute represents the key being changed.
+
+  <p>The <dfn id=oldvalue
+   title=dom-StorageEvent-oldValue><code>oldValue</code></dfn> attribute
+   represents the old value of the key being changed.
+
+  <p>The <dfn id=newvalue
+   title=dom-StorageEvent-vnewValue><code>newValue</code></dfn> attribute
+   represents the new value of the key being changed.
+
+  <p>The <dfn id=uri title=dom-StorageEvent-uri><code>uri</code></dfn>
+   attribute represents the address of the document that changed the key.
+
+  <p>The <dfn id=source0
+   title=dom-StorageEvent-source><code>source</code></dfn> attribute
+   represents the <code><a href="#window">Window</a></code> that changed the
+   key.
+
   <h4 id=miscellaneous0><span class=secno>4.10.6 </span>Miscellaneous
    implementation requirements for storage areas</h4>
 
@@ -33303,13 +33353,13 @@
     <tr>
      <td><dfn id=dragstart title=event-dragstart><code>dragstart</code></dfn>
 
-     <td><a href="#source0">Source node</a>
+     <td><a href="#source1">Source node</a>
 
      <td>&#x2713; Bubbles
 
      <td>&#x2713; Cancelable
 
-     <td>Contains <a href="#source0">source node</a> unless a selection is
+     <td>Contains <a href="#source1">source node</a> unless a selection is
       being dragged, in which case it is empty
 
      <td><code title="">uninitialized</code>
@@ -33321,7 +33371,7 @@
     <tr>
      <td><dfn id=drag title=event-drag><code>drag</code></dfn>
 
-     <td><a href="#source0">Source node</a>
+     <td><a href="#source1">Source node</a>
 
      <td>&#x2713; Bubbles
 
@@ -33413,7 +33463,7 @@
     <tr>
      <td><dfn id=dragend title=event-dragend><code>dragend</code></dfn>
 
-     <td><a href="#source0">Source node</a>
+     <td><a href="#source1">Source node</a>
 
      <td>&#x2713; Bubbles
 
@@ -33555,7 +33605,7 @@
   <p>If it is not a selection that is being dragged, then the event must be
    fired on the element that is being dragged.
 
-  <p>The node on which the event is fired is the <dfn id=source0>source
+  <p>The node on which the event is fired is the <dfn id=source1>source
    node</dfn>. Multiple events are fired on this node during the course of
    the drag-and-drop operation.
 
@@ -33563,7 +33613,7 @@
    title=dom-DragEvent-dataTransfer><a
    href="#datatransfer">dataTransfer</a></code> member of the event must be
    created with no nodes. Otherwise, it must be created containing just the
-   <a href="#source0">source node</a>. Script can use the <code
+   <a href="#source1">source node</a>. Script can use the <code
    title=dom-DataTransfer-addElement><a
    href="#addelement">addElement()</a></code> method to add further elements
    to the list of what is being dragged.
@@ -33676,7 +33726,7 @@
   <ol>
    <li>
     <p>First, the user agent must fire a <code title=event-drag><a
-     href="#drag">drag</a></code> event at the <a href="#source0">source
+     href="#drag">drag</a></code> event at the <a href="#source1">source
      node</a>. If this event is canceled, the user agent must set the <a
      href="#current2">current drag operation</a> to none (no drag operation).</p>
 
@@ -33911,7 +33961,7 @@
      <li>
       <p>Finally, the user agent must fire a <code title=event-dragend><a
        href="#dragend">dragend</a></code> event at the <a
-       href="#source0">source node</a>, with the <code
+       href="#source1">source node</a>, with the <code
        title=dom-DataTransfer-dropEffect><a
        href="#dropeffect">dropEffect</a></code> attribute of the event's
        <code title=dom-DragEvent-dataTransfer><a
@@ -33971,7 +34021,7 @@
    operation starts or ends in another application</h5>
 
   <p>If the drag is initiated in another application, the <a
-   href="#source0">source node</a> is not a DOM node, and the user agent must
+   href="#source1">source node</a> is not a DOM node, and the user agent must
    use platform-specific conventions instead when the requirements above
    involve the source node. User agents in this situation must act as if the
    dragged data had been added to the <code><a
@@ -34984,7 +35034,7 @@
 
   <h2 id=comms><span class=secno>6. </span>Communication</h2>
 
-  <h3 id=event0><span class=secno>6.1 </span>Event definitions</h3>
+  <h3 id=event1><span class=secno>6.1 </span>Event definitions</h3>
 
   <p>Messages in <a href="#cross-document">cross-document messaging</a> and,
    by default, in <a href="#server-sent">server-sent DOM events</a>, use the
@@ -34995,8 +35045,8 @@
   <pre class=idl>interface <dfn id=messageevent>MessageEvent</dfn> : Event {
   readonly attribute DOMString <a href="#data4" title=dom-MessageEvent-data>data</a>;
   readonly attribute DOMString <a href="#domain1" title=dom-MessageEvent-domain>domain</a>;
-  readonly attribute DOMString <a href="#uri" title=dom-MessageEvent-uri>uri</a>;
-  readonly attribute <a href="#window">Window</a> <a href="#source1" title=dom-MessageEvent-source>source</a>;
+  readonly attribute DOMString <a href="#uri0" title=dom-MessageEvent-uri>uri</a>;
+  readonly attribute <a href="#window">Window</a> <a href="#source2" title=dom-MessageEvent-source>source</a>;
   void <a href="#initmessageevent" title=dom-MessageEvent-initMessageEvent>initMessageEvent</a>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMString dataArg, in DOMString domainArg, in DOMString uriArg, in Window sourceArg);
   void <a href="#initmessageeventns" title=dom-MessageEvent-initMessageEventNS>initMessageEventNS</a>(in DOMString namespaceURI, in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMString dataArg, in DOMString domainArg, in DOMString uriArg, in Window sourceArg);
 };</pre>
@@ -35017,11 +35067,11 @@
    represents, in <a href="#cross-document">cross-document messaging</a>, the
    domain of the document from which the message came.
 
-  <p>The <dfn id=uri title=dom-MessageEvent-uri><code>uri</code></dfn>
+  <p>The <dfn id=uri0 title=dom-MessageEvent-uri><code>uri</code></dfn>
    attribute represents, in <a href="#cross-document">cross-document
    messaging</a>, the address of the document from which the message came.
 
-  <p>The <dfn id=source1
+  <p>The <dfn id=source2
    title=dom-MessageEvent-source><code>source</code></dfn> attribute
    represents, in <a href="#cross-document">cross-document messaging</a>, the
    <code><a href="#window">Window</a></code> from which the message came.
@@ -35778,7 +35828,7 @@
   <pre
    class=idl>interface <dfn id=connectionreadevent>ConnectionReadEvent</dfn> : Event {
   readonly attribute DOMString <a href="#data5" title=dom-ConnectionReadEvent-data>data</a>;
-  readonly attribute DOMString <a href="#source2" title=dom-ConnectionReadEvent-source>source</a>;
+  readonly attribute DOMString <a href="#source3" title=dom-ConnectionReadEvent-source>source</a>;
   void <a href="#initconnectionreadevent" title=dom-ConnectionReadEvent-initConnectionReadEvent>initConnectionReadEvent</a>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMString dataArg);
   void <a href="#initconnectionreadeventns" title=dom-ConnectionReadEvent-initConnectionReadEventNS>initConnectionReadEventNS</a>(in DOMString namespaceURI, in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMString dataArg);
 };
@@ -35796,7 +35846,7 @@
    title=dom-ConnectionReadEvent-data><code>data</code></dfn> attribute
    represents the data that was transmitted from the peer.
 
-  <p>The <dfn id=source2
+  <p>The <dfn id=source3
    title=dom-ConnectionReadEvent-source><code>source</code></dfn> attribute
    represents the name of the peer. This is primarily useful on broadcast
    connections; on direct connections it is equal to the <code
@@ -36023,7 +36073,7 @@
    title="">s</var>, with the first character removed, must be used as the
    <code title=dom-ConnectionReadEvent-data><a href="#data5">data</a></code>,
    and the source IP address of the packet as the <code
-   title=dom-ConnectionReadEvent-source><a href="#source2">source</a></code>.
+   title=dom-ConnectionReadEvent-source><a href="#source3">source</a></code>.
 
   <p class=big-issue>Making the source IP available means that if two or more
    machines in a private network can be made to go to a hostile page
@@ -36468,9 +36518,9 @@
    attribute must be set to the <a href="#domain0" title="the document's
    domain">domain of the document</a> that the script that invoked the
    methods is associated with, the <code title=dom-MessageEvent-uri><a
-   href="#uri">uri</a></code> attribute must be set to the URI of that
+   href="#uri0">uri</a></code> attribute must be set to the URI of that
    document, and the <code title=dom-MessageEvent-source><a
-   href="#source1">source</a></code> attribute must be set to the <code><a
+   href="#source2">source</a></code> attribute must be set to the <code><a
    href="#window">Window</a></code> object of the default view of the
    browsing context with which that document is associated.
 

Modified: source
===================================================================
--- source	2008-02-09 04:52:26 UTC (rev 1199)
+++ source	2008-02-09 08:39:25 UTC (rev 1200)
@@ -27735,6 +27735,15 @@
   void <span title="dom-Storage-removeItem">removeItem</span>(in DOMString key);
 };</pre>
 
+  <!-- XXX v2 ideas:
+    a getInfo() method that returns an object that tells you:
+       - when the key was added
+       - when the key was last modified
+       - which page was the last to modify the key
+    [--Mihai Sucan]
+
+  -->  
+
   <p>Each <code>Storage</code> object provides access to a list of
   key/value pairs, which are sometimes called items. Keys and values
   are strings. Any string (including the empty string) is a valid
@@ -27942,29 +27951,69 @@
   href="#sessionStorageEvent">for session storage</a>, <a
   href="#globalStorageEvent">for global storage</a>).</p>
 
-  <p>When this happens, the user agent must <span>fire a simple
-  event</span> called <code>storage</code> on <span>the body
-  element</span>.</p>
+  <p>When this happens, the user agent must dispatch an event with the
+  name <code>storage</code>, with no namespace, which does not bubble
+  but is cancelable, and which uses the <code>StorageEvent</code>, at
+  <span>the body element</span> of each <span title="active
+  document">active</span> <code>HTMLDocument</code> object
+  affected. The event must have its <code
+  title="dom-StorageEvent-key">key</code> attribute set to the name of
+  the key in question, its <code
+  title="dom-StorageEvent-oldValue">oldValue</code> attribute set to
+  the old value of the key in question, or null if the key is newly
+  added, its <code title="dom-StorageEvent-newValue">newValue</code>
+  attribute set to the new value of the key in question, or null if
+  the key was removed, its <code
+  title="dom-StorageEvent-uri">uri</code> attribute set to the address
+  of the page whose <code>Storage</code> object was affected, and its
+  <code title="dom-StorageEvent-source">source</code> attribute set to
+  the <code>Window</code> object of hte <span>browsing content</span>
+  that that documents finds is in.</p>
 
-  <p>However, it is possible (indeed, for session storage areas,
-  likely) that the target's <code>HTMLDocument</code> object is not an
-  <span>active document</span> at that time. In such cases, the user
-  agent must instead delay the firing of the event until such time as
-  the <code>HTMLDocument</code> object in question becomes an
-  <span>active document</span> again.</p>
+  <!-- XXX onstorage should be defined -->
 
-  <p>When there are multiple delayed <code>storage</code> events for
-  the same <code>HTMLDocument</code> object, user agents must coalesce
-  those events such that only one event fires when the document
-  becomes active again.</p>
 
-  <p>If the DOM of a page that has delayed <code>storage</code> events
-  queued up is <span title="discard">discarded</span>, then the
-  delayed events are dropped as well.</p>
+  <h5>Event definition</h5>
 
-  <!-- XXX onstorage should be defined -->
+  <pre class="idl">interface <dfn>StorageEvent</dfn> : Event {
+  readonly attribute DOMString <span title="dom-StorageEvent-key">key</span>;
+  readonly attribute DOMString <span title="dom-StorageEvent-oldValue">oldValue</span>;
+  readonly attribute DOMString <span title="dom-StorageEvent-newValue">newValue</span>;
+  readonly attribute DOMString <span title="dom-StorageEvent-uri">uri</span>;
+  readonly attribute <span>Window</span> <span title="dom-StorageEvent-source">source</span>;
+  void <span title="dom-StorageEvent-initStorageEvent">initStorageEvent</span>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMString keyArg, in DOMString oldValueArg, in DOMString newValueArg, in DOMString uriArg, in Window sourceArg);
+  void <span title="dom-StorageEvent-initStorageEventNS">initStorageEventNS</span>(in DOMString namespaceURI, in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMString keyArg, in DOMString oldValueArg, in DOMString newValueArg, in DOMString uriArg, in Window sourceArg);
+};</pre>
 
+  <p>The <dfn
+  title="dom-StorageEvent-initStorageEvent"><code>initStorageEvent()</code></dfn>
+  and <dfn
+  title="dom-StorageEvent-initStorageEventNS"><code>initStorageEventNS()</code></dfn>
+  methods must initialise the event in a manner analogous to the
+  similarly-named methods in the DOM3 Events interfaces. <a
+  href="#refsDOM3EVENTS">[DOM3EVENTS]</a></p>
 
+  <p>The <dfn title="dom-StorageEvent-key"><code>key</code></dfn>
+  attribute represents the key being changed.</p>
+
+  <p>The <dfn
+  title="dom-StorageEvent-oldValue"><code>oldValue</code></dfn>
+  attribute represents the old value of the key being changed.</p>
+
+  <p>The <dfn
+  title="dom-StorageEvent-vnewValue"><code>newValue</code></dfn>
+  attribute represents the new value of the key being changed.</p>
+
+  <p>The <dfn title="dom-StorageEvent-uri"><code>uri</code></dfn>
+  attribute represents the address of the document that changed the
+  key.</p>
+
+  <p>The <dfn
+  title="dom-StorageEvent-source"><code>source</code></dfn> attribute
+  represents the <code>Window</code> that changed the key.</p>
+
+
+
   <h4>Miscellaneous implementation requirements for storage areas</h4>
 
   <h5>Disk space</h5>




More information about the Commit-Watchers mailing list