Fixes bug 17270; removes MutationNameEvent and related prose. Also links to DOM4 for MutationObserver replacement.
authortleithea
Fri, 01 Jun 2012 04:26:17 +0900
changeset 373 d40d056f5aad
parent 372 56f906426e37
child 374 5a41d3b72d4d
Fixes bug 17270; removes MutationNameEvent and related prose. Also links to DOM4 for MutationObserver replacement.
html/DOM3-Events.html
--- a/html/DOM3-Events.html	Fri Jun 01 04:24:58 2012 +0900
+++ b/html/DOM3-Events.html	Fri Jun 01 04:26:17 2012 +0900
@@ -25,16 +25,16 @@
       </p>
       <h1 id="Overview-title">Document Object Model (DOM) Level 3 Events Specification</h1>
 <!-- @-->
-      <h2 id="Overview-W3C-doctype">W3C Editor's Draft <span class="2012-05-25">25 May 2012</span></h2>
+      <h2 id="Overview-W3C-doctype">W3C Editor's Draft <span class="2012-05-31">31 May 2012</span></h2>
       <dl>
         <dt>This version:</dt>
-        <dd><a href="http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.228">http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.228</a></dd>
+        <dd><a href="http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.229">http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.229</a></dd>
 
         <dt>Latest stable version:</dt>
         <dd><a href="http://www.w3.org/TR/DOM-Level-3-Events">http://www.w3.org/TR/DOM-Level-3-Events</a></dd>
 
         <dt>Previous version:</dt>
-        <dd><a href="http://dev.w3.org/cvsweb/~checkout~/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.227">http://dev.w3.org/cvsweb/~checkout~/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.227</a></dd>
+        <dd><a href="http://dev.w3.org/cvsweb/~checkout~/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.228">http://dev.w3.org/cvsweb/~checkout~/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html?rev=1.228</a></dd>
 
         <dt>Editor's Draft:</dt>
         <dd><a href="http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html">http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html</a></dd>
@@ -241,12 +241,6 @@
                   <li><a class="eventtype" href="#event-type-DOMSubtreeModified"><code>DOMSubtreeModified</code> event</a></li>
                 </ul>
               </li>
-              <li><a href="#events-mutationnameevents">5.2.8 Mutation Name Event Types</a>
-                <ul class="toc">
-                  <li><a class="eventtype" href="#event-type-DOMAttributeNameChanged"><code>DOMAttributeNameChanged</code> event</a></li>
-                  <li><a class="eventtype" href="#event-type-DOMElementNameChanged"><code>DOMElementNameChanged</code> event</a></li>
-                </ul>
-              </li>
             </ul>
           </li>
         </ul>
@@ -1619,17 +1613,6 @@
             <td>none</td>
           </tr>
           <tr>
-            <td><a class="eventtype" href="#event-type-DOMAttributeNameChanged">
-              <code>DOMAttributeNameChanged</code>
-            </a></td>
-            <td>Sync</td>
-            <td>Yes</td>
-            <td><code>Element</code></td>
-            <td><a href="#events-MutationNameEvent"><code>MutationNameEvent</code></a></td>
-            <td>No</td>
-            <td>none</td>
-          </tr>
-          <tr>
             <td><a class="eventtype" href="#event-type-DOMAttrModified">
               <code>DOMAttrModified</code>
             </a></td>
@@ -1652,17 +1635,6 @@
             <td>none</td>
           </tr>
           <tr>
-            <td><a class="eventtype" href="#event-type-DOMElementNameChanged">
-              <code>DOMElementNameChanged</code>
-            </a></td>
-            <td>Sync</td>
-            <td>Yes</td>
-            <td><code>Element</code></td>
-            <td><a href="#events-MutationNameEvent"><code>MutationNameEvent</code></a></td>
-            <td>No</td>
-            <td>none</td>
-          </tr>
-          <tr>
             <td><a class="eventtype" href="#event-type-DOMFocusIn">
               <code>DOMFocusIn</code>
             </a></td>
@@ -3401,7 +3373,8 @@
           measurement of 162 pixels (162 is just an example value, actual values can depend on the current screen dimensions 
           of the user-agent). But a user can change their default environment settings to speed-up their mouse wheel, increasing this 
           number. Furthermore, some mouse wheel software can support acceleration (the faster the wheel is rotated/moved, the greater 
-          the delta of each measurement) or even sub-pixel rotation measurements.
+          the delta of each measurement) or even sub-pixel rotation measurements. Because of this, authors should not assume a given 
+          rotation amount in one user agent will produce the same delta value in all user agents.
       </p>
       <p>The sign (positive or negative) of the values of the deltaX, deltaY, and deltaZ attributes must be consistent between multiple 
           dispatches of the wheel event while the motion of the actual wheel device is rotating/moving in the same direction. If a user 
@@ -4377,7 +4350,14 @@
 <!-- <p class="issue">Note that nodes that are not in the document, such as elements freshly created, or elements removed from the DOM, must not fire mutation events when changed.  For example, if an element is created but not yet inserted into the document, then an existing element located in the document must be moved from its current location to be a child of the new element, there must be one mutation event, for removing the existing element from its previous location, but no event must fire for insertion of the element into the new element, regardless of any assigned mutation event listeners.</p>
           <p class="issue">?What happens to event listeners on an element when it is removed from the tree, or moved elsewhere in the tree?</p> -->
         <p>Many single modifications of the tree can cause multiple mutation events to be dispatched. Rather than attempt to specify the ordering of mutation events due to every possible modification of the tree, the ordering of these events is left to the implementation.</p>
-        <p class="warning" id="_34"><strong>Warning!</strong>  The <a href="#events-MutationEvent">MutationEvent interface</a> was introduced in DOM Level 2 Events, but has not yet been completely and interoperably implemented across <a class="def" href="#glossary-user-agent">user agents</a>.  In addition, there have been critiques that the interface, as designed, introduces a performance and implementation challenge.  A new specification is under development with the aim of addressing the use cases that mutation events solves, but in more performant manner.  Thus, this specification describes mutation events for reference and completeness of legacy behavior, but <a class="def" href="#glossary-deprecated">deprecates</a> the use of both the <a href="#events-MutationEvent"><code>MutationEvent</code></a> interface and the <a href="#events-MutationNameEvent"><code>MutationNameEvent</code></a> interface.</p>
+        <p class="warning" id="_34"><strong>Warning!</strong>  The <a href="#events-MutationEvent">MutationEvent interface</a> was introduced 
+            in DOM Level 2 Events, but has not yet been completely and interoperably implemented across 
+            <a class="def" href="#glossary-user-agent">user agents</a>. In addition, there have been critiques that the interface, as designed, 
+            introduces a performance and implementation challenge. DOM4 [<a href="#references-DOM4">DOM4</a>] provides a new mechanism using a 
+            <code>MutationObserver</code> interface which addresses the use cases that mutation events solve, but in a more performant manner.
+            Thus, this specification describes mutation events for reference and completeness of legacy behavior, but 
+            <a class="def" href="#glossary-deprecated">deprecates</a> the use of the <a href="#events-MutationEvent"><code>MutationEvent</code></a>
+            interface.</p>
         <dl>
           <dt><strong>Interface <em><a id="events-MutationEvent">MutationEvent</a></em></strong> (introduced in <strong class="since">DOM Level 2</strong>)</dt>
           <dd>
@@ -4777,174 +4757,6 @@
         </div>
 
       </div>
-<!-- div3 Events-eventgroupings-mutationevents -->
-      <div>
-        <h3><a id="events-mutationnameevents" href="#events-mutationnameevents">5.2.8 Mutation Name Event Types</a></h3>
-        <p class="warning" id="_46"><strong>Warning!</strong>  The <code>MutationNameEvent</code> interface, introduced in an earlier draft of this specification, derives from the <a href="#events-mutationevents"><code>MutationEvent</code></a> interface, which is deprecated in this specification.  Thus, this specification describes the mutation name event types for completeness, but <a class="def" href="#glossary-deprecated">deprecates</a> their use.</p>
-        <dl>
-          <dt><strong>Interface <em><a id="events-MutationNameEvent">MutationNameEvent</a></em></strong> (introduced in <strong class="since">DOM Level 3</strong>)</dt>
-          <dd>
-            <p>The <code>MutationNameEvent</code> interface provides specific contextual information associated with Mutation name event types.</p>
-            <p>To create an instance of the <code>MutationNameEvent</code> interface, use the <code>Document.createEvent("MutationNameEvent")</code> method call.</p>
-            <dl>
-              <dt>
-                <br />
-                <strong>WebIDL Definition</strong>
-              </dt>
-              <dd>
-                <pre class="idl" id="idl-interface-MutationNameEvent"><code>
-<span class="comment">// Deprecated in DOM Level 3:</span>
-interface <a href="#events-MutationNameEvent">MutationNameEvent</a> : <a href="#events-MutationEvent">MutationEvent</a>
-{
-  readonly attribute DOMString <a href="#events-MutationNameEvent-prevNamespaceURI">prevNamespaceURI</a>;
-  readonly attribute DOMString <a href="#events-MutationNameEvent-prevNodeName">prevNodeName</a>;
-
-  void                         <a href="#events-event-type-initMutationNameEvent">initMutationNameEvent</a>(DOMString typeArg, 
-                                                     boolean canBubbleArg, 
-                                                     boolean cancelableArg, 
-                                                     Node? relatedNodeArg, 
-                                                     DOMString prevNamespaceURIArg, 
-                                                     DOMString prevNodeNameArg);
-};
-                </code></pre>
-              </dd>
-
-              <dt><strong>Attributes</strong></dt>
-              <dd>
-                <dl>
-                  <dt><code class="attribute-name"><a id="events-MutationNameEvent-prevNamespaceURI">prevNamespaceURI</a></code> of type <code>DOMString</code>, readonly</dt>
-                  <dd><p>The previous value of the <code>relatedNode</code>'s <code>namespaceURI</code>.</p>
-                      <p>The <a class="def" href="#glossary-un-initialized-value">un-initialized value</a> of this attribute must be <code>""</code> (the empty string).</p>
-                  </dd>
-
-                  <dt><code class="attribute-name"><a id="events-MutationNameEvent-prevNodeName">prevNodeName</a></code> of type <code>DOMString</code>, readonly</dt>
-                  <dd><p>The previous value of the <code>relatedNode</code>'s <code>nodeName</code>.</p>
-                      <p>The <a class="def" href="#glossary-un-initialized-value">un-initialized value</a> of this attribute must be <code>""</code> (the empty string).</p>
-                  </dd>
-
-                </dl>
-              </dd>
-
-              <dt><strong>Methods</strong></dt>
-              <dd>
-                <dl>
-                  <dt><code class="method-name"><a id="events-event-type-initMutationNameEvent">initMutationNameEvent</a></code> introduced in <strong class="since">DOM Level 3</strong></dt>
-                  <dd>
-                    <div class="method">
-                      <p>Initializes attributes of a <code>MutationNameEvent</code> object. This method has the same behavior as <a href="#events-event-type-initMutationEvent"><code>MutationEvent.initMutationEvent()</code></a>.</p>
-                      <div class="parameters">
-                        <strong>Parameters</strong>
-                        <div class="paramtable">
-                          <dl>
-                            <dt><code class="parameter-name">typeArg</code> of type <code>DOMString</code></dt>
-                            <dd><p>Refer to the <a href="#events-event-type-initMutationEvent"><code>MutationEvent.initMutationEvent()</code></a> method for a description of this parameter.</p></dd>
-                            
-                            <dt><code class="parameter-name">canBubbleArg</code> of type <code>boolean</code></dt>
-                            <dd><p>Refer to the <a href="#events-event-type-initMutationEvent"><code>MutationEvent.initMutationEvent()</code></a> method for a description of this parameter.</p></dd>
-                            
-                            <dt><code class="parameter-name">cancelableArg</code> of type <code>boolean</code></dt>
-                            <dd><p>Refer to the <a href="#events-event-type-initMutationEvent"><code>MutationEvent.initMutationEvent()</code></a> method for a description of this parameter.</p></dd>
-                            
-                            <dt><code class="parameter-name">relatedNodeArg</code> of type <code>Node</code></dt>
-                            <dd><p>Refer to the <a href="#events-event-type-initMutationEvent"><code>MutationEvent.initMutationEvent()</code></a> method for a description of this parameter.</p></dd>
-                            
-                            <dt><code class="parameter-name">prevNamespaceURIArg</code> of type <code>DOMString</code></dt>
-                            <dd><p>Specifies <a href="#events-MutationNameEvent-prevNamespaceURI"><code>MutationNameEvent.prevNamespaceURI</code></a>. This value may be the <a class="def" href="#glossary-empty-string">empty string</a>.</p></dd>
-                            
-                            <dt><code class="parameter-name">prevNodeNameArg</code> of type <code>DOMString</code></dt>
-                            <dd><p>Specifies <a href="#events-MutationNameEvent-prevNodeName"><code>MutationNameEvent.prevNodeName</code></a>.</p></dd>
-                          </dl>
-                        </div>
-                      </div>
-                      <!-- parameters -->
-                      <div><strong>No Return Value</strong></div>
-
-                      <div><strong>No Exceptions</strong></div>
-                    </div>
-<!-- method -->
-                  </dd>
-                </dl>
-              </dd>
-            </dl>
-          </dd>
-        </dl>
-        <p>The mutation name event types are listed below.</p>
-
-<!-- DOMElementNameChanged -->
-        <div class="event-definition assert must">
-          <dl>
-            <dt id="event-type-DOMElementNameChanged"><dfn>
-                <a class="eventtype" href="#event-type-DOMElementNameChanged"><code>DOMElementNameChanged</code></a>
-              </dfn></dt>
-            <dd>
-              <table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0">
-                <tr class="assert must"><th>Type</th><td><strong><code>DOMElementNameChanged</code></strong></td></tr>
-                <tr class="assert must"><th>Interface</th> <td><a href="#events-MutationNameEvent"><code>MutationNameEvent</code></a></td></tr>
-                <tr class="assert must"><th>Sync / Async</th> <td>Sync</td></tr>
-                <tr class="assert must"><th>Bubbles</th> <td>Yes</td></tr>
-                <tr class="assert must"><th>Target</th> <td><code>Element</code></td></tr>
-                <tr class="assert must"><th>Cancelable</th> <td>No</td></tr>
-                <tr class="assert must"><th>Default action</th> <td>none</td></tr>
-                <tr class="assert must"><th>Context info</th>
-                  <td>
-                    <ul>
-                      <li><a href="#events-event-type-target"><code class="attribute-name">Event.target</code></a>: <code>Element</code>  being renamed</li>
-                      <li><a href="#events-MutationEvent-attrName"><code class="attribute-name">MutationEvent.attrName</code></a>: the <a class="def" href="#glossary-empty-string">empty string</a></li>
-                      <li><a href="#events-MutationEvent-attrChange"><code class="attribute-name">MutationEvent.attrChange</code></a>: <code>0</code></li>
-                      <li><a href="#events-MutationEvent-relatedNode"><code class="attribute-name">MutationEvent.relatedNode</code></a>: <code>null</code></li>
-                      <li><a href="#events-MutationEvent-newValue"><code class="attribute-name">MutationEvent.newValue</code></a>: the <a class="def" href="#glossary-empty-string">empty string</a></li>
-                      <li><a href="#events-MutationEvent-prevValue"><code class="attribute-name">MutationEvent.prevValue</code></a>: the <a class="def" href="#glossary-empty-string">empty string</a></li>
-                      <li><a href="#events-MutationNameEvent-prevNamespaceURI"><code class="attribute-name">MutationNameEvent.prevNamespaceURI</code></a>: the element's previous <a class="def" href="#glossary-namespaceURI">namespace URI</a></li>
-                      <li><a href="#events-MutationNameEvent-prevNodeName"><code class="attribute-name">MutationNameEvent.prevNodeName</code></a>:  the element's previous name</li>
-                    </ul>
-                  </td>
-                </tr>
-              </table>
-              
-              <p>A <a class="def" href="#glossary-user-agent">user agent</a> must dispatch this event after the <code>namespaceURI</code> and/or the <code>nodeName</code> of an <code>Element</code> node have been modified (e.g., the element was renamed using <code>Document.renameNode()</code>). The <a class="def" href="#glossary-proximal-event-target">proximal event target</a> of this event must be the renamed <code>Element</code> node.</p>
-              <p class="warning" id="_47"><strong>Warning!</strong> the <a class="eventtype" href="#event-type-DOMElementNameChanged"><code>DOMElementNameChanged</code></a> event type is defined in this specification for reference and completeness, but this specification <a class="def" href="#glossary-deprecated">deprecates</a> the use of this event type.</p>
-            </dd>
-          </dl>
-        </div>
-
-<!-- DOMAttributeNameChanged -->
-        <div class="event-definition assert must">
-          <dl>
-            <dt id="event-type-DOMAttributeNameChanged"><dfn>
-                <a class="eventtype" href="#event-type-DOMAttributeNameChanged"><code>DOMAttributeNameChanged</code></a>
-              </dfn></dt>
-            <dd>
-              <table border="0" summary="This table contains information about the semantics of the given event type" cellpadding="2" cellspacing="0">
-                <tr class="assert must"><th>Type</th><td><strong><code>DOMAttributeNameChanged</code></strong></td></tr>
-                <tr class="assert must"><th>Interface</th> <td><a href="#events-MutationNameEvent"><code>MutationNameEvent</code></a></td></tr>
-                <tr class="assert must"><th>Sync / Async</th> <td>Sync</td></tr>
-                <tr class="assert must"><th>Bubbles</th> <td>Yes</td></tr>
-                <tr class="assert must"><th>Target</th> <td><code>Element</code></td></tr>
-                <tr class="assert must"><th>Cancelable</th> <td>No</td></tr>
-                <tr class="assert must"><th>Default action</th> <td>none</td></tr>
-                <tr class="assert must"><th>Context info</th>
-                  <td>
-                    <ul>
-                      <li><a href="#events-event-type-target"><code class="attribute-name">Event.target</code></a>:  <code>Element</code> whose <code>Attr</code> node has been renamed</li>
-                      <li><a href="#events-MutationEvent-attrName"><code class="attribute-name">MutationEvent.attrName</code></a>: the <a class="def" href="#glossary-empty-string">empty string</a></li>
-                      <li><a href="#events-MutationEvent-attrChange"><code class="attribute-name">MutationEvent.attrChange</code></a>: <code>0</code></li>
-                      <li><a href="#events-MutationEvent-relatedNode"><code class="attribute-name">MutationEvent.relatedNode</code></a>: the renamed <code>Attr</code> node</li>
-                      <li><a href="#events-MutationEvent-newValue"><code class="attribute-name">MutationEvent.newValue</code></a>: the <a class="def" href="#glossary-empty-string">empty string</a></li>
-                      <li><a href="#events-MutationEvent-prevValue"><code class="attribute-name">MutationEvent.prevValue</code></a>: the <a class="def" href="#glossary-empty-string">empty string</a></li>
-                      <li><a href="#events-MutationNameEvent-prevNamespaceURI"><code class="attribute-name">MutationNameEvent.prevNamespaceURI</code></a>: the <code>Attr</code> node's previous <a class="def" href="#glossary-namespaceURI">namespace URI</a></li>
-                      <li><a href="#events-MutationNameEvent-prevNodeName"><code class="attribute-name">MutationNameEvent.prevNodeName</code></a>: the <code>Attr</code> node's previous name</li>
-                    </ul>
-                  </td>
-                </tr>
-              </table>
-              
-              <p>A <a class="def" href="#glossary-user-agent">user agent</a> must dispatch this event after the <code>namespaceURI</code> and/or the <code>nodeName</code> of a <code>Attr</code> node have been modified (e.g., the attribute was renamed using <code>Document.renameNode()</code>). The <a class="def" href="#glossary-proximal-event-target">proximal event target</a> of this event must be the <code>Element</code> node whose <code>Attr</code> has been renamed.</p>
-              <p class="warning" id="_48"><strong>Warning!</strong> the <a class="eventtype" href="#event-type-DOMAttributeNameChanged"><code>DOMAttributeNameChanged</code></a> event type is defined in this specification for reference and completeness, but this specification <a class="def" href="#glossary-deprecated">deprecates</a> the use of this event type.</p>
-            </dd>
-          </dl>
-        </div>
-      </div>
-<!-- div3 Events-eventgroupings-mutationnameevents -->
     </div>
 <!-- div1 Events -->
     <div>
@@ -6792,8 +6604,8 @@
             These init methods required a long list of parameters that, in most cases, did not fully initialize all attributes of the event object. In order to fully initialize
             an event interface which was derived from the basic <code>Event</code> interface, it was necessary to call the initializer of each of the derived interfaces explicitly.
         </p>
-        <p class="example"><strong>Example: </strong>Initializing all the attributes of a MutationNameEvent requires calls to three initializer methods: <code>initEvent</code>,
-            <code>initMutationEvent</code>, and <code>initMutationNameEvent</code>.
+        <p class="example"><strong>Example: </strong>Initializing all the attributes of a MutationEvent requires calls to two initializer methods: <code>initEvent</code> and
+            <code>initMutationEvent</code>.
         </p>
         <p>Due in part to the length of time in the development of this standard, some implementations may have taken a dependency on a set of initializer methods that were formerly
             defined in this specification. For completeness, these legacy event intializers are described in this Appendix.
@@ -7567,7 +7379,7 @@
         <h4><a id="changes-DOMEvents2to3Changes-event-types" href="#changes-DOMEvents2to3Changes-event-types">E.1.2 Changes to DOM Level 2 event types</a></h4>
 
           <p>Many clarifications have been made on the event types. The conformance is now explicitly defined against the event types, and not only in terms of interfaces required by the event types.</p>
-          <p>In the most recent drafts of this specification, <code>"MutationEvents"</code> and <code>"MutationNameEvents"</code> have been deprecated. Support for namespaced events, present in early drafts of this specification, has been removed.</p>
+          <p><code>"MutationEvents"</code> have been deprecated. Support for namespaced events, present in early drafts of this specification, has also been removed.</p>
           <p>For user agents which support the <a class="eventtype" href="#event-type-DOMNodeInserted"><code>DOMNodeInserted</code></a> and <a class="eventtype" href="#event-type-DOMNodeRemoved"><code>DOMNodeRemoved</code></a> event types, this specification no longer requires that the event type be fired for <code>Attr</code> nodes.</p>            
           <p>The <code>resize</code> event type no longer bubbles, reflecting existing implementations.</p>
         </div>
@@ -7603,7 +7415,7 @@
         <div>
           <h4><a id="changes-DOMLevel3Addons" href="#changes-DOMLevel3Addons">E.1.4 New Interfaces</a></h4>
 
-          <p>The interfaces <a href="#events-CustomEvent"><code>CustomEvent</code></a>, <a href="#events-FocusEvent"><code>FocusEvent</code></a>, <a href="#events-KeyboardEvent"><code>KeyboardEvent</code></a>, <a href="#events-CompositionEvent"><code>CompositionEvent</code></a>, <a href="#events-MutationNameEvent"><code>MutationNameEvent</code></a>, and <a href="#events-WheelEvent"><code>WheelEvent</code></a> were added to the Events module.</p>
+          <p>The interfaces <a href="#events-CustomEvent"><code>CustomEvent</code></a>, <a href="#events-FocusEvent"><code>FocusEvent</code></a>, <a href="#events-KeyboardEvent"><code>KeyboardEvent</code></a>, <a href="#events-CompositionEvent"><code>CompositionEvent</code></a>, and <a href="#events-WheelEvent"><code>WheelEvent</code></a> were added to the Events module.</p>
         </div>
 <!-- div3 DOMLevel3Addons -->
       </div>