[html5] r6527 - [] (0) Remove UndoManager in favour of http://rniwa.com/editing/undomanager.html [...]

whatwg at whatwg.org whatwg at whatwg.org
Thu Aug 25 16:13:07 PDT 2011


Author: ianh
Date: 2011-08-25 16:13:05 -0700 (Thu, 25 Aug 2011)
New Revision: 6527

Modified:
   complete.html
   index
   source
Log:
[] (0) Remove UndoManager in favour of http://rniwa.com/editing/undomanager.html (and a minor editorial tweak to an example)
Fixing http://www.w3.org/Bugs/Public/show_bug.cgi?id=13896

Modified: complete.html
===================================================================
--- complete.html	2011-08-25 22:36:23 UTC (rev 6526)
+++ complete.html	2011-08-25 23:13:05 UTC (rev 6527)
@@ -987,16 +987,8 @@
      <li><a href=#the-draggable-attribute><span class=secno>8.7.7 </span>The <code>draggable</code> attribute</a></li>
      <li><a href=#the-dropzone-attribute><span class=secno>8.7.8 </span>The <code>dropzone</code> attribute</a></li>
      <li><a href=#security-risks-in-the-drag-and-drop-model><span class=secno>8.7.9 </span>Security risks in the drag-and-drop model</a></ol></li>
-   <li><a href=#undo><span class=secno>8.8 </span>Undo history</a>
-    <ol>
-     <li><a href=#definitions-2><span class=secno>8.8.1 </span>Definitions</a></li>
-     <li><a href=#the-undomanager-interface><span class=secno>8.8.2 </span>The <code>UndoManager</code> interface</a></li>
-     <li><a href=#undo:-moving-back-in-the-undo-transaction-history><span class=secno>8.8.3 </span>Undo: moving back in the undo transaction history</a></li>
-     <li><a href=#redo:-moving-forward-in-the-undo-transaction-history><span class=secno>8.8.4 </span>Redo: moving forward in the undo transaction history</a></li>
-     <li><a href=#the-undomanagerevent-interface-and-the-undo-and-redo-events><span class=secno>8.8.5 </span>The <code>UndoManagerEvent</code> interface and the <code title=event-undo>undo</code> and <code title=event-redo>redo</code> events</a></li>
-     <li><a href=#implementation-notes><span class=secno>8.8.6 </span>Implementation notes</a></ol></li>
-   <li><a href=#text-search-apis><span class=secno>8.9 </span>Text search APIs</a></li>
-   <li><a href=#editing-apis><span class=secno>8.10 </span>Editing APIs</a></ol></li>
+   <li><a href=#text-search-apis><span class=secno>8.8 </span>Text search APIs</a></li>
+   <li><a href=#editing-apis><span class=secno>8.9 </span>Editing APIs</a></ol></li>
  <li><a href=#video-conferencing-and-peer-to-peer-communication><span class=secno>9 </span>Video conferencing and peer-to-peer communication</a>
   <ol>
    <li><a href=#introduction-10><span class=secno>9.1 </span>Introduction</a></li>
@@ -1527,7 +1519,6 @@
    <li>The <a href=#webvtt>WebVTT</a> format and some <a href=#text-track>text track</a> API features.</li> <!--TTVTT-->
    <li>Rules for <a href=#atom>converting HTML to Atom</a>.</li> <!--MD-->
    <li>The <code title=dom-document-cssElementMap><a href=#dom-document-csselementmap>cssElementMap</a></code> feature for defining <a href=#css-element-reference-identifier title="CSS element reference identifier">CSS element reference identifiers</a>.</li> <!--CSSREF-->
-   <li>An experimental <code><a href=#undomanager>UndoManager</a></code> interface.</li><!--UNDO-->
    <li>An experimental specification of the legacy <code title=dom-find><a href=#dom-find>window.find()</a></code> API.</li><!--FIND-->
    <li>Some predefined <a href=#mdvocabs>Microdata vocabularies</a>.</li>
   </ul><!--
@@ -12835,16 +12826,14 @@
    <li><p>Replace the <code><a href=#document>Document</a></code>'s singleton objects with
    new instances of those objects. (This includes in particular the
    <code><a href=#window>Window</a></code>, <code><a href=#location>Location</a></code>, <code><a href=#history-0>History</a></code>,
-   <code><a href=#applicationcache>ApplicationCache</a></code>, 
-<!--UNDO-->
-   <code><a href=#undomanager>UndoManager</a></code>,
-<!--UNDO-->
-   and <code><a href=#navigator>Navigator</a></code>, objects, the various
-   <code><a href=#barprop>BarProp</a></code> objects, the two <code><a href=#storage-0>Storage</a></code> objects,
-   the various <code><a href=#htmlcollection>HTMLCollection</a></code> objects, and objects
-   defined by other specifications, like <code>Selection</code>. It
-   also includes all the Web IDL prototypes in the JavaScript binding,
-   including the <code><a href=#document>Document</a></code> object's prototype.)</li>
+   <code><a href=#applicationcache>ApplicationCache</a></code>, and <code><a href=#navigator>Navigator</a></code>, objects,
+   the various <code><a href=#barprop>BarProp</a></code> objects, the two
+   <code><a href=#storage-0>Storage</a></code> objects, the various
+   <code><a href=#htmlcollection>HTMLCollection</a></code> objects, and objects defined by other
+   specifications, like <code>Selection</code> and the document's
+   <code>UndoManager</code>. It also includes all the Web IDL
+   prototypes in the JavaScript binding, including the
+   <code><a href=#document>Document</a></code> object's prototype.)</li>
 
    <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E...%3Ciframe%20src%3D%22document%22%3E%3C%2Fiframe%3E%0A%3Cscript%3Eonload%20%3D%20function%20()%20%7B%20f%20%3D%20document.getElementsByTagName('iframe')%5B0%5D%3B%20d%20%3D%20f.contentWindow.document%3B%20%7D%3C%2Fscript%3E%0A%3Cinput%20type%3Dbutton%20onclick%3D%22w(d.documentElement.innerHTML)%22%20value%3D%22dump%22%3E%0A%3Cinput%20type%3Dbutton%20onclick%3D%22d.open()%3B%20d.write('%3Cscript%3Evar%20x%20%3D%20new%20XMLHttpRequest()%3Bx.open(%26quot%3BGET%26quot%3B%2C%20%26quot%3BGET%26quot%3B)%3Bx.onreadystatechange%3Dfunction()%20%7B%20alert(x.readyState)%3B%20%7D%3Bx.send(null)%3B%3C%2Fscript%3E')%3Bd.close()%3B%20setTimeout(function()%20%7B%20d.open()%3B%20d.write('%3Cp%3Etest%3C%2Fp%3E')%3B%20d.close()%20%7D%2C%200)%3B%22%20value%3D%22xhr%22%3E%0A%3Cinput%20type%3Dbutton%20onclick%3D%22d.onclick%20%3D%20function()%20%7B%20w('click')%20%7D%22%20value%3D%22add%20click%20handler%22%3E%
 0A%3Cinput%20type%3Dbutton%20onclick%3D%22d.open()%3B%20d.write('%3Cp%3Etest%3C%2Fp%3E')%3B%20d.close()%22%20value%3D%22replace%22%3E%0A%3Cinput%20type%3Dbutton%20onclick%3D%22d.open()%3B%20d.write('%3Cp%3E%3Cscript%3Ei%20%3D%200%3B%20setTimeout(%26quot%3Bparent.w(i%2B%2B)%26quot%3B%2C%202000)%3C%2Fscript%3E%3C%2Fp%3E')%3B%20d.close()%22%20value%3D%22replace%20with%20timer%22%3E -->
    <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0D%0A...%3Ciframe%3E%3C%2Fiframe%3E%0D%0A%3Cscript%3E%0D%0Aonload%20%3D%20function%20()%20%7B%0D%0A%20frames%5B0%5D.test%20%3D%201%0D%0A%20w(frames%5B0%5D.test)%3B%0D%0A%20var%20a%20%3D%20frames%5B0%5D.document.location.assign%3B%0D%0A%20w(a)%3B%0D%0A%20w(frames%5B0%5D.document.location.assign%20%3D%3D%3D%20a)%3B%0D%0A%20frames%5B0%5D.document.open()%3B%0D%0A%20frames%5B0%5D.document.write('%3Cscript%3Edocument.write(test)%3C%5C%2Fscript%3E')%3B%0D%0A%20frames%5B0%5D.document.close()%3B%0D%0A%20w(frames%5B0%5D.test)%3B%0D%0A%20w(frames%5B0%5D.document.location.assign%20%3D%3D%3D%20a)%3B%0D%0A%7D%0D%0A%3C%2Fscript%3E -->
@@ -20311,12 +20300,12 @@
    <p>This is incorrect usage, because <code><a href=#the-cite-element>cite</a></code> is not for
    quotes:</p>
 
-   <pre><p><cite>This is wrong!</cite>, said Ian.</p></pre>
+   <pre class=bad><p><cite>This is wrong!</cite>, said Ian.</p></pre>
 
    <p>This is also incorrect usage, because a person is not a
    work:</p>
 
-   <pre><p><q>This is still wrong!</q>, said <cite>Ian</cite>.</p></pre>
+   <pre class=bad><p><q>This is still wrong!</q>, said <cite>Ian</cite>.</p></pre>
 
    <p>The correct usage does not use a <code><a href=#the-cite-element>cite</a></code> element:</p>
 
@@ -37324,7 +37313,7 @@
   attribute's allowed keywords correspond to alignment points in the
   font:</p>
 
-  <p><img alt="The top of the em square is roughly at the top of the glyphs in a font, the hanging baseline is where some glyphs like आ are anchored, the middle is half-way between the top of the em square and the bottom of the em square, the alphabetic baseline is where characters like &#x00C1;, ÿ, f, and Ω are anchored, the ideographic baseline is where glyphs like 私 and 達 are anchored, and the bottom of the em square is roughly at the bottom of the glyphs in a font. The top and bottom of the bounding box can be far from these baselines, due to glyphs extending far outside the em square." height=300 src=http://images.whatwg.org/baselines.png width=738></p>
+  <p><img alt="The top of the em square is roughly at the top of the glyphs in a font, the hanging baseline is where some glyphs like आ are anchored, the middle is half-way between the top of the em square and the bottom of the em square, the alphabetic baseline is where characters like Á, ÿ, f, and Ω are anchored, the ideographic baseline is where glyphs like 私 and 達 are anchored, and the bottom of the em square is roughly at the bottom of the glyphs in a font. The top and bottom of the bounding box can be far from these baselines, due to glyphs extending far outside the em square." height=300 src=http://images.whatwg.org/baselines.png width=738></p>
 
   <p>The keywords map to these alignment points as follows:</p>
 
@@ -62197,10 +62186,9 @@
            attribute DOMString <a href=#dom-name title=dom-name>name</a>; <!-- not [Replaceable] per WebKit and IE8 -->
   [PutForwards=<a href=#dom-location-href title=dom-location-href>href</a>] readonly attribute <a href=#location>Location</a> <a href=#dom-location title=dom-location>location</a>;
   readonly attribute <a href=#history-0>History</a> <a href=#dom-history title=dom-history>history</a>;
-<!--UNDO--><!--FIND-->
-  readonly attribute <a href=#undomanager>UndoManager</a> <a href=#dom-undomanager title=dom-undoManager>undoManager</a>;
+<!--FIND-->
   boolean <a href=#dom-find title=dom-find>find</a>(optional DOMString aString, optional boolean aCaseSensitive, optional boolean aBackwards, optional boolean aWrapAround, optional boolean aWholeWord, optional boolean aSearchInFrames, optional boolean aShowDialog);
-<!--UNDO--><!--FIND-->
+<!--FIND-->
   [Replaceable] readonly attribute <a href=#barprop>BarProp</a> <a href=#dom-window-locationbar title=dom-window-locationbar>locationbar</a>;
   [Replaceable] readonly attribute <a href=#barprop>BarProp</a> <a href=#dom-window-menubar title=dom-window-menubar>menubar</a>;
   [Replaceable] readonly attribute <a href=#barprop>BarProp</a> <a href=#dom-window-personalbar title=dom-window-personalbar>personalbar</a>;
@@ -69231,11 +69219,11 @@
     <tr><td><dfn id=handler-window-onpagehide title=handler-window-onpagehide><code>onpagehide</code></dfn> <td> <code title=event-pagehide><a href=#event-pagehide>pagehide</a></code> <!-- new -->
     <tr><td><dfn id=handler-window-onpageshow title=handler-window-onpageshow><code>onpageshow</code></dfn> <td> <code title=event-pageshow><a href=#event-pageshow>pageshow</a></code> <!-- new -->
     <tr><td><dfn id=handler-window-onpopstate title=handler-window-onpopstate><code>onpopstate</code></dfn> <td> <code title=event-popstate><a href=#event-popstate>popstate</a></code> <!-- new -->
-    <tr><td><dfn id=handler-window-onredo title=handler-window-onredo><code>onredo</code></dfn> <td> <code title=event-redo><a href=#event-redo>redo</a></code> <!-- new -->
+    <tr><td><dfn id=handler-window-onredo title=handler-window-onredo><code>onredo</code></dfn> <td> <code title=event-redo>redo</code> <!-- new -->
     <tr><td><dfn id=handler-window-onresize title=handler-window-onresize><code>onresize</code></dfn> <td> <code title=event-resize>resize</code> <!-- widely used --> <!-- [CSSOM] -->
     <tr><td><dfn id=handler-window-onscroll title=handler-window-onscroll><code>onscroll</code></dfn> <td> <code title=event-scroll>scroll</code>
     <tr><td><dfn id=handler-window-onstorage title=handler-window-onstorage><code>onstorage</code></dfn> <td> <code title=event-storage><a href=#event-storage>storage</a></code> <!-- new -->
-    <tr><td><dfn id=handler-window-onundo title=handler-window-onundo><code>onundo</code></dfn> <td> <code title=event-undo><a href=#event-undo>undo</a></code> <!-- new -->
+    <tr><td><dfn id=handler-window-onundo title=handler-window-onundo><code>onundo</code></dfn> <td> <code title=event-undo>undo</code> <!-- new -->
     <tr><td><dfn id=handler-window-onunload title=handler-window-onunload><code>onunload</code></dfn> <td> <code title=event-unload>unload</code> <!-- widely used -->
   </table><p class=note>The <code title=handler-window-onerror><a href=#handler-window-onerror>onerror</a></code>
   handler is also used for <a href=#runtime-script-errors>reporting script errors</a>.</p>
@@ -72193,8 +72181,8 @@
   request to delete the content of the selection followed by a request
   to break the paragraph at that position.</p>
 
-  <p>User agents may add <a href=#dom-changes>DOM changes</a> entries to the
-  <a href=#undo-transaction-history>undo transaction history</a> of the <a href=#editing-host>editing
+  <p>User agents may add <span>DOM changes</span> entries to the
+  <span>undo transaction history</span> of the <a href=#editing-host>editing
   host</a>'s <code><a href=#document>Document</a></code> object each time an action is
   triggered.</p>
 
@@ -73992,7 +73980,7 @@
   operation, device input events (e.g. mouse and keyboard events) must
   be suppressed. In addition, the user agent must track all DOM
   changes made during the drag-and-drop operation, and add them to its
-  <a href=#undo-transaction-history>undo transaction history</a> as one atomic operation once
+  <span>undo transaction history</span> as one atomic operation once
   the drag-and-drop operation has ended.</p>
 
   <p>During the drag operation, the element directly indicated by the
@@ -74863,348 +74851,9 @@
   </div>
 
 
-<!--UNDO-->
-  <h3 id=undo><span class=secno>8.8 </span><dfn>Undo history</dfn></h3>
-
-  <div class=impl>
-
-  <h4 id=definitions-2><span class=secno>8.8.1 </span>Definitions</h4>
-
-  <p>The user agent must associate an <dfn id=undo-transaction-history>undo transaction
-  history</dfn> with each <code><a href=#document>Document</a></code> object.</p>
-
-  <p>The <a href=#undo-transaction-history>undo transaction history</a> is a list of
-  entries. The entries are of two types: <a href=#dom-changes>DOM changes</a> and
-  <a href=#undo-object title="undo object">undo objects</a>.</p>
-
-  <p>Each <dfn id=dom-changes>DOM changes</dfn> entry in the <a href=#undo-transaction-history>undo transaction
-  history</a> consists of batches of one or more of the
-  following:</p>
-
-  <ul><li>Changes to the content attributes of an <code><a href=#element>Element</a></code>
-   node.</li>
-
-   <li>Changes to the DOM hierarchy of nodes that are descendants of
-   the <code><a href=#document>Document</a></code> object (<code title=dom-Node-parentNode><a href=#dom-node-parentnode>parentNode</a></code>, <code title=dom-Node-childNodes><a href=#dom-node-childnodes>childNodes</a></code>).</li>
-
-   <li>Changes to internal state, such as a form control's <a href=#concept-fe-value title=concept-fe-value>value</a> or <a href=#concept-input-checked-dirty-flag title=concept-input-checked-dirty-flag>dirty checkedness
-   flag</a>.</li>
-
-  </ul><p><dfn id=undo-object>Undo object</dfn> entries consist of objects representing
-  state that scripts running in the document are managing. For
-  example, a Web mail application could use an <a href=#undo-object>undo
-  object</a> to keep track of the fact that a user has moved an
-  e-mail to a particular folder, so that the user can undo the
-  action and have the e-mail return to its former location.</p>
-
-  <p>Broadly speaking, <a href=#dom-changes>DOM changes</a> entries are handled by
-  the UA in response to user edits of form controls and <a href=#editing-host title="editing host">editing hosts</a> on the page, and
-  <a href=#undo-object>undo object</a> entries are handled by script in response
-  to higher-level user actions (such as interactions with server-side
-  state, or in the implementation of a drawing tool).</p>
-
-  </div>
-
-
-  <h4 id=the-undomanager-interface><span class=secno>8.8.2 </span>The <code><a href=#undomanager>UndoManager</a></code> interface</h4>
-
-  <p>To manage <a href=#undo-object>undo object</a> entries in the <a href=#undo-transaction-history>undo
-  transaction history</a>, the <code><a href=#undomanager>UndoManager</a></code>
-  interface can be used:</p>
-
-  <pre class=idl>interface <dfn id=undomanager>UndoManager</dfn> {
-  readonly attribute unsigned long <a href=#dom-undomanager-length title=dom-UndoManager-length>length</a>;
-  getter any <a href=#dom-undomanager-item title=dom-UndoManager-item>item</a>(unsigned long index);
-  readonly attribute unsigned long <a href=#dom-undomanager-position title=dom-UndoManager-position>position</a>;
-  unsigned long <a href=#dom-undomanager-add title=dom-UndoManager-add>add</a>(any data, DOMString title);
-  void <a href=#dom-undomanager-remove title=dom-UndoManager-remove>remove</a>(unsigned long index);
-  void <a href=#dom-undomanager-clearundo title=dom-UndoManager-clearUndo>clearUndo</a>();
-  void <a href=#dom-undomanager-clearredo title=dom-UndoManager-clearRedo>clearRedo</a>();
-};</pre>
-
-  <dl class=domintro><dt><var title="">window</var> . <code title=dom-undoManager><a href=#dom-undomanager>undoManager</a></code></dt>
-
-   <dd>
-
-    <p>Returns the <code><a href=#undomanager>UndoManager</a></code> object.</p>
-
-   </dd>
-
-   <dt><var title="">undoManager</var> . <code title=dom-UndoManager-length><a href=#dom-undomanager-length>length</a></code></dt>
-   <dd>
-
-    <p>Returns the number of entries in the undo history.</p>
-
-   </dd>
-
-   <dt><var title="">data</var> = <var title="">undoManager</var> . <code title=dom-UndoManager-item><a href=#dom-undomanager-item>item</a></code>(<var title="">index</var>)</dt>
-   <dt><var title="">undoManager</var>[<var title="">index</var>]</dt>
-   <dd>
-
-    <p>Returns the entry with index <var title="">index</var> in the undo history.</p>
-
-   </dd>
-
-   <dt><var title="">undoManager</var> . <code title=dom-UndoManager-position><a href=#dom-undomanager-position>position</a></code></dt>
-   <dd>
-
-    <p>Returns the number of the current entry in the undo history. (Entries at and past this point are <em>redo</em> entries.)</p>
-
-   </dd>
-
-   <dt><var title="">undoManager</var> . <code title=dom-UndoManager-add><a href=#dom-undomanager-add>add</a></code>(<var title="">data</var>, <var title="">title</var>)</dt>
-   <dd>
-
-    <p>Adds the specified entry to the undo history.</p>
-
-   </dd>
-
-   <dt><var title="">undoManager</var> . <code title=dom-UndoManager-remove><a href=#dom-undomanager-remove>remove</a></code>(<var title="">index</var>)</dt>
-   <dd>
-
-    <p>Removes the specified entry to the undo history.</p>
-
-    <p>Throws an <code><a href=#index_size_err>INDEX_SIZE_ERR</a></code> exception if the given index is out of range.</p>
-
-   </dd>
-
-   <dt><var title="">undoManager</var> . <code title=dom-UndoManager-clearUndo><a href=#dom-undomanager-clearundo>clearUndo</a></code>()</dt>
-   <dd>
-
-    <p>Removes all entries before the current position in the undo history.</p>
-
-   </dd>
-
-   <dt><var title="">undoManager</var> . <code title=dom-UndoManager-clearRedo><a href=#dom-undomanager-clearredo>clearRedo</a></code>()</dt>
-   <dd>
-
-    <p>Removes all entries at and after the current position in the undo history.</p>
-
-   </dd>
-
-  </dl><div class=impl>
-
-  <p>The <dfn id=dom-undomanager title=dom-undoManager><code>undoManager</code></dfn>
-  attribute of the <code><a href=#window>Window</a></code> interface must return the
-  object implementing the <code><a href=#undomanager>UndoManager</a></code> interface for that
-  <code><a href=#window>Window</a></code> object's associated <code><a href=#document>Document</a></code>
-  object.</p>
-
-  <p><code><a href=#undomanager>UndoManager</a></code> objects represent their document's
-  <a href=#undo-transaction-history>undo transaction history</a>. Only <a href=#undo-object>undo object</a>
-  entries are visible with this API, but this does not mean that
-  <a href=#dom-changes>DOM changes</a> entries are absent from the <a href=#undo-transaction-history>undo
-  transaction history</a>.</p>
-
-  <p>The <dfn id=dom-undomanager-length title=dom-UndoManager-length><code>length</code></dfn>
-  attribute must return the number of <a href=#undo-object>undo object</a> entries
-  in the <a href=#undo-transaction-history>undo transaction history</a>. This is the <var title=dom-UndoManager-length><a href=#dom-undomanager-length>length</a></var>.</p>
-
-  <p>The object's <a href=#supported-property-indices>supported property indices</a> are the
-  numbers in the range zero to <span title=""><var title=dom-UndoManager-length><a href=#dom-undomanager-length>length</a></var>-1</span>, unless the
-  <var title=dom-UndoManager-length><a href=#dom-undomanager-length>length</a></var> is zero, in which
-  case there are no <a href=#supported-property-indices>supported property indices</a>.</p>
-
-  <p>The <dfn id=dom-undomanager-item title=dom-UndoManager-item><code>item(<var title="">n</var>)</code></dfn> method must return the <var title="">n</var>th <a href=#undo-object>undo object</a> entry in the <a href=#undo-transaction-history>undo
-  transaction history</a>, if there is one, or null otherwise.</p>
-
-  <p>The <a href=#undo-transaction-history>undo transaction history</a> has an <dfn id=undo-position>undo
-  position</dfn>. This is the position between two entries in the
-  <a href=#undo-transaction-history>undo transaction history</a>'s list where the previous
-  entry represents what needs to happen if the user invokes the "undo"
-  command (the "undo" side, lower numbers), and the next entry
-  represents what needs to happen if the user invokes the "redo"
-  command (the "redo" side, higher numbers).</p>
-
-  <p>The <dfn id=dom-undomanager-position title=dom-UndoManager-position><code>position</code></dfn>
-  attribute must return the index of the <a href=#undo-object>undo object</a>
-  entry nearest to the <a href=#undo-position>undo position</a>, on the "redo"
-  side. If there are no <a href=#undo-object>undo object</a> entries on the "redo"
-  side, then the attribute must return the same as the <code title=dom-UndoManager-length><a href=#dom-undomanager-length>length</a></code> attribute. If there are
-  no <a href=#undo-object>undo object</a> entries on the "undo" side of the
-  <a href=#undo-position>undo position</a>, the <code title=dom-UndoManager-position><a href=#dom-undomanager-position>position</a></code> attribute returns
-  zero.</p>
-
-  <p class=note>Since the <a href=#undo-transaction-history>undo transaction history</a>
-  contains both <a href=#undo-object>undo object</a> entries and <a href=#dom-changes>DOM
-  changes</a> entries, but the <code title=dom-UndoManager-position><a href=#dom-undomanager-position>position</a></code> attribute only
-  returns indices relative to <a href=#undo-object>undo object</a> entries, it is
-  possible for several "undo" or "redo" actions to be performed
-  without the value of the <code title=dom-UndoManager-position><a href=#dom-undomanager-position>position</a></code> attribute
-  changing.</p>
-
-  <p>The <dfn id=dom-undomanager-add title=dom-UndoManager-add><code>add(<var title="">data</var>,
-  <var title="">title</var>)</code></dfn> method's behavior depends on the
-  current state. Normally, it must insert the <var title="">data</var> object
-  passed as an argument into the <a href=#undo-transaction-history>undo transaction history</a>
-  immediately before the <a href=#undo-position>undo position</a>, optionally
-  remembering the given <var title="">title</var> to use in the UI. If the
-  method is called <a href=#undo:-moving-back-in-the-undo-transaction-history title=do-undo>during an undo
-  operation</a>, however, the object must instead be added
-  immediately <em>after</em> the <a href=#undo-position>undo position</a>.</p>
-
-  <p>If the method is called and there is neither <a href=#undo:-moving-back-in-the-undo-transaction-history title=do-undo>an undo operation in progress</a> nor <a href=#redo:-moving-forward-in-the-undo-transaction-history title=do-redo>a redo operation in progress</a> then any entries
-  in the <a href=#undo-transaction-history>undo transaction history</a> after the <a href=#undo-position>undo
-  position</a> must be removed (as if <code title=dom-UndoManager-clearRedo><a href=#dom-undomanager-clearredo>clearRedo()</a></code> had been
-  called).</p>
-
-  <p>The <dfn id=dom-undomanager-remove title=dom-UndoManager-remove><code>remove(<var title="">index</var>)</code></dfn> method must remove the <a href=#undo-object>undo
-  object</a> entry with the specified <var title="">index</var>. If
-  the index is less than zero or greater than or equal to <code title=dom-UndoManager-length><a href=#dom-undomanager-length>length</a></code> then the method must
-  raise an <code><a href=#index_size_err>INDEX_SIZE_ERR</a></code> exception. <a href=#dom-changes>DOM
-  changes</a> entries are unaffected by this method.</p>
-
-  <p>The <dfn id=dom-undomanager-clearundo title=dom-UndoManager-clearUndo><code>clearUndo()</code></dfn>
-  method must remove all entries in the <a href=#undo-transaction-history>undo transaction
-  history</a> before the <a href=#undo-position>undo position</a>, be they
-  <a href=#dom-changes>DOM changes</a> entries or <a href=#undo-object>undo object</a>
-  entries.</p>
-
-  <p>The <dfn id=dom-undomanager-clearredo title=dom-UndoManager-clearRedo><code>clearRedo()</code></dfn>
-  method must remove all entries in the <a href=#undo-transaction-history>undo transaction
-  history</a> after the <a href=#undo-position>undo position</a>, be they
-  <a href=#dom-changes>DOM changes</a> entries or <a href=#undo-object>undo object</a>
-  entries.</p>
-
-  </div>
-
-
-  <div class=impl>
-
-  <h4 id=undo:-moving-back-in-the-undo-transaction-history><span class=secno>8.8.3 </span><dfn title=do-undo>Undo: moving back in the undo transaction history</dfn></h4>
-
-  <p>When the user invokes an undo operation, or when the <code title=dom-document-execCommand><a href=#execCommand>execCommand()</a></code> method is
-  called with the <code title=command-undo><a href=#command-undo>undo</a></code> command, the
-  user agent must perform an undo operation.</p>
-
-  <p>If the <a href=#undo-position>undo position</a> is at the start of the
-  <a href=#undo-transaction-history>undo transaction history</a>, then the user agent must do
-  nothing.</p>
-
-  <p>If the entry immediately before the <a href=#undo-position>undo position</a> is
-  a <a href=#dom-changes>DOM changes</a> entry, then the user agent must remove
-  that <a href=#dom-changes>DOM changes</a> entry, reverse the DOM changes that
-  were listed in that entry, and, if the changes were reversed with no
-  problems, add a new <a href=#dom-changes>DOM changes</a> entry (consisting of
-  the opposite of those DOM changes) to the <a href=#undo-transaction-history>undo transaction
-  history</a> on the other side of the <a href=#undo-position>undo
-  position</a>.</p>
-
-  <p>If the DOM changes cannot be undone (e.g. because the DOM state
-  is no longer consistent with the changes represented in the entry),
-  then the user agent must simply remove the <a href=#dom-changes>DOM changes</a>
-  entry, without doing anything else.</p>
-
-  <p>If the entry immediately before the <a href=#undo-position>undo position</a> is
-  an <a href=#undo-object>undo object</a> entry, then the user agent must first
-  remove that <a href=#undo-object>undo object</a> entry from the <a href=#undo-transaction-history>undo
-  transaction history</a>, and then must fire an <code title=event-undo><a href=#event-undo>undo</a></code> event at the <code><a href=#window>Window</a></code>
-  object, using the <a href=#undo-object>undo object</a> entry's associated undo
-  object as the event's data.</p>
-
-  <p>Any calls to <code title=dom-undoManager-add><a href=#dom-undomanager-add>add()</a></code> while
-  the event is being handled will be used to populate the redo
-  history, and will then be used if the user invokes the "redo"
-  command to undo his undo.</p>
-
-
-  <h4 id=redo:-moving-forward-in-the-undo-transaction-history><span class=secno>8.8.4 </span><dfn title=do-redo>Redo: moving forward in the undo transaction history</dfn></h4>
-
-  <p>When the user invokes a redo operation, or when the <code title=dom-document-execCommand><a href=#execCommand>execCommand()</a></code> method is
-  called with the <code title=command-redo><a href=#command-redo>redo</a></code> command, the
-  user agent must perform a redo operation.</p>
-
-  <p>This is mostly the opposite of an <a href=#undo:-moving-back-in-the-undo-transaction-history title=do-undo>undo
-  operation</a>, but the full definition is included here for
-  completeness.</p>
-
-  <p>If the <a href=#undo-position>undo position</a> is at the end of the <a href=#undo-transaction-history>undo
-  transaction history</a>, then the user agent must do nothing.</p>
-
-  <p>If the entry immediately after the <a href=#undo-position>undo position</a> is
-  a <a href=#dom-changes>DOM changes</a> entry, then the user agent must remove
-  that <a href=#dom-changes>DOM changes</a> entry, reverse the DOM changes that
-  were listed in that entry, and, if the changes were reversed with no
-  problems, add a new <a href=#dom-changes>DOM changes</a> entry (consisting of
-  the opposite of those DOM changes) to the <a href=#undo-transaction-history>undo transaction
-  history</a> on the other side of the <a href=#undo-position>undo
-  position</a>.</p>
-
-  <p>If the DOM changes cannot be redone (e.g. because the DOM state
-  is no longer consistent with the changes represented in the entry),
-  then the user agent must simply remove the <a href=#dom-changes>DOM changes</a>
-  entry, without doing anything else.</p>
-
-  <p>If the entry immediately after the <a href=#undo-position>undo position</a> is
-  an <a href=#undo-object>undo object</a> entry, then the user agent must first
-  remove that <a href=#undo-object>undo object</a> entry from the <a href=#undo-transaction-history>undo
-  transaction history</a>, and then must fire a <code title=event-redo><a href=#event-redo>redo</a></code> event at the <code><a href=#window>Window</a></code>
-  object, using the <a href=#undo-object>undo object</a> entry's associated undo
-  object as the event's data.</p>
-
-  </div>
-
-
-  <h4 id=the-undomanagerevent-interface-and-the-undo-and-redo-events><span class=secno>8.8.5 </span>The <code><a href=#undomanagerevent>UndoManagerEvent</a></code> interface and the <code title=event-undo><a href=#event-undo>undo</a></code> and <code title=event-redo><a href=#event-redo>redo</a></code> events</h4>
-
-  <pre class=idl>interface <dfn id=undomanagerevent>UndoManagerEvent</dfn> : <a href=#event>Event</a> {
-  readonly attribute any <a href=#dom-undomanagerevent-data title=dom-UndoManagerEvent-data>data</a>;
-  void <a href=#dom-undomanagerevent-initundomanagerevent title=dom-UndoManagerEvent-initUndoManagerEvent>initUndoManagerEvent</a>(DOMString typeArg, boolean canBubbleArg, boolean cancelableArg, any dataArg);
-};</pre>
-
-  <dl class=domintro><dt><var title="">event</var>  . <code title=dom-UndoManagerEvent-data><a href=#dom-undomanagerevent-data>data</a></code></dt>
-
-   <dd>
-
-    <p>Returns the data that was passed to the <code title=dom-undomanager-add><a href=#dom-undomanager-add>add()</a></code> method.</p>
-
-   </dd>
-
-  </dl><div class=impl>
-
-  <p>The <dfn id=dom-undomanagerevent-initundomanagerevent title=dom-UndoManagerEvent-initUndoManagerEvent><code>initUndoManagerEvent()</code></dfn>
-  method must initialize the event in a manner analogous to the
-  similarly-named method in the DOM Events interfaces. <a href=#refsDOMEVENTS>[DOMEVENTS]</a></p>
-
-  <p>The <dfn id=dom-undomanagerevent-data title=dom-UndoManagerEvent-data><code>data</code></dfn>
-  attribute represents the <a href=#undo-object>undo object</a> for the event.</p>
-
-  <p>The <dfn id=event-undo title=event-undo><code>undo</code></dfn> and <dfn id=event-redo title=event-redo><code>redo</code></dfn> events do not bubble,
-  cannot be canceled, and have no default action. When the user agent
-  fires one of these events it must use the
-  <code><a href=#undomanagerevent>UndoManagerEvent</a></code> interface, with the <code title=dom-UndoManagerEvent-data><a href=#dom-undomanagerevent-data>data</a></code> field containing the
-  relevant <a href=#undo-object>undo object</a>.</p>
-
-  </div>
-
-
-  <div class=impl>
-
-  <h4 id=implementation-notes><span class=secno>8.8.6 </span>Implementation notes</h4>
-
-  <p>How user agents present the above conceptual model to the user is
-  not defined. The undo interface could be a filtered view of the
-  <a href=#undo-transaction-history>undo transaction history</a>, it could manipulate the
-  <a href=#undo-transaction-history>undo transaction history</a> in ways not described above,
-  and so forth. For example, it is possible to design a UA that
-  appears to have separate <a href=#undo-transaction-history title="undo transaction history">undo
-  transaction histories</a> for each form control; similarly, it is
-  possible to design systems where the user has access to more undo
-  information than is present in the official (as described above)
-  <a href=#undo-transaction-history>undo transaction history</a> (such as providing a
-  tree-based approach to document state). Such UI models should be
-  based upon the single <a href=#undo-transaction-history>undo transaction history</a>
-  described in this section, however, such that to a script there is
-  no detectable difference.</p>
-
-  </div>
-
-<!--UNDO-->
-
-
 <!--FIND-->
 
-  <h3 id=text-search-apis><span class=secno>8.9 </span>Text search APIs</h3> <!-- window.find() -->
+  <h3 id=text-search-apis><span class=secno>8.8 </span>Text search APIs</h3> <!-- window.find() -->
 
   <p class=critical>This legacy API is not very interoperably
   implemented, and has a number of design problems (such as having six
@@ -75261,7 +74910,7 @@
 
 
 
-  <h3 id=editing-apis><span class=secno>8.10 </span>Editing APIs</h3>
+  <h3 id=editing-apis><span class=secno>8.9 </span>Editing APIs</h3>
 
   <dl class=domintro><dt><var title="">document</var> . <code title=dom-document-execCommand><a href=#execCommand>execCommand</a></code>(<var title="">commandId</var> [, <var title="">showUI</var> [, <var title="">value</var> ] ] )</dt>
 
@@ -75598,17 +75247,14 @@
 
    <dt><dfn id=command-redo title=command-redo><code>redo</code></dfn></dt>
    <dd><strong>Summary</strong>: Acts as if the user had requested a redo.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must <a href=#redo:-moving-forward-in-the-undo-transaction-history title=do-redo>move forward one step</a> in its <a href=#undo-transaction-history>undo
-   transaction history</a>, restoring the associated state. If the
-   <a href=#undo-position>undo position</a> is at the end of the <a href=#undo-transaction-history>undo
-   transaction history</a>, the user agent must do nothing.
-<!--UNDO-->
-   See the <a href=#undo>undo history</a>.
-<!--UNDO-->
+   <dd class=impl><strong>Action</strong>: The user agent must <span title=do-redo>move forward one step</span> in its <span>undo
+   transaction history</span>, restoring the associated state. If the
+   <span>undo position</span> is at the end of the <span>undo
+   transaction history</span>, the user agent must do nothing.
    </dd>
-   <dd><strong>Enabled When</strong>: The <a href=#undo-position>undo position</a>
-   is not at the end of the <a href=#undo-transaction-history>undo transaction
-   history</a>.</dd>
+   <dd><strong>Enabled When</strong>: The <span>undo position</span>
+   is not at the end of the <span>undo transaction
+   history</span>.</dd>
    <dd><strong>Indeterminate When</strong>: Never.</dd>
    <dd><strong>State</strong>: Always false.</dd>
    <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
@@ -75661,17 +75307,14 @@
 
    <dt><dfn id=command-undo title=command-undo><code>undo</code></dfn></dt>
    <dd><strong>Summary</strong>: Acts as if the user had requested an undo.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must <a href=#undo:-moving-back-in-the-undo-transaction-history title=do-undo>move back one step</a> in its <a href=#undo-transaction-history>undo
-   transaction history</a>, restoring the associated state. If the
-   <a href=#undo-position>undo position</a> is at the start of the <a href=#undo-transaction-history>undo
-   transaction history</a>, the user agent must do nothing.
-<!--UNDO-->
-   See the <a href=#undo>undo history</a>.
-<!--UNDO-->
+   <dd class=impl><strong>Action</strong>: The user agent must <span title=do-undo>move back one step</span> in its <span>undo
+   transaction history</span>, restoring the associated state. If the
+   <span>undo position</span> is at the start of the <span>undo
+   transaction history</span>, the user agent must do nothing.
    </dd>
-   <dd><strong>Enabled When</strong>: The <a href=#undo-position>undo position</a>
-   is not at the start of the <a href=#undo-transaction-history>undo transaction
-   history</a>.</dd>
+   <dd><strong>Enabled When</strong>: The <span>undo position</span>
+   is not at the start of the <span>undo transaction
+   history</span>.</dd>
    <dd><strong>Indeterminate When</strong>: Never.</dd>
    <dd><strong>State</strong>: Always false.</dd>
    <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
@@ -101097,7 +100740,7 @@
 
     <tr><th id=ix-handler-window-onredo> <code title="">onredo</code>
      <td> <code title=handler-window-onredo><a href=#handler-window-onredo>body</a></code>
-     <td> <code title=event-redo><a href=#event-redo>redo</a></code> event handler for <code><a href=#window>Window</a></code> object
+     <td> <code title=event-redo>redo</code> event handler for <code><a href=#window>Window</a></code> object
      <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
 
     <tr><th id=ix-handler-onreset> <code title="">onreset</code>
@@ -101167,7 +100810,7 @@
 
     <tr><th id=ix-handler-window-onundo> <code title="">onundo</code>
      <td> <code title=handler-window-onundo><a href=#handler-window-onundo>body</a></code>
-     <td> <code title=event-undo><a href=#event-undo>undo</a></code> event handler for <code><a href=#window>Window</a></code> object
+     <td> <code title=event-undo>undo</code> event handler for <code><a href=#window>Window</a></code> object
      <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
 
     <tr><th id=ix-handler-window-onunload> <code title="">onunload</code>

Modified: index
===================================================================
--- index	2011-08-25 22:36:23 UTC (rev 6526)
+++ index	2011-08-25 23:13:05 UTC (rev 6527)
@@ -987,16 +987,8 @@
      <li><a href=#the-draggable-attribute><span class=secno>8.7.7 </span>The <code>draggable</code> attribute</a></li>
      <li><a href=#the-dropzone-attribute><span class=secno>8.7.8 </span>The <code>dropzone</code> attribute</a></li>
      <li><a href=#security-risks-in-the-drag-and-drop-model><span class=secno>8.7.9 </span>Security risks in the drag-and-drop model</a></ol></li>
-   <li><a href=#undo><span class=secno>8.8 </span>Undo history</a>
-    <ol>
-     <li><a href=#definitions-2><span class=secno>8.8.1 </span>Definitions</a></li>
-     <li><a href=#the-undomanager-interface><span class=secno>8.8.2 </span>The <code>UndoManager</code> interface</a></li>
-     <li><a href=#undo:-moving-back-in-the-undo-transaction-history><span class=secno>8.8.3 </span>Undo: moving back in the undo transaction history</a></li>
-     <li><a href=#redo:-moving-forward-in-the-undo-transaction-history><span class=secno>8.8.4 </span>Redo: moving forward in the undo transaction history</a></li>
-     <li><a href=#the-undomanagerevent-interface-and-the-undo-and-redo-events><span class=secno>8.8.5 </span>The <code>UndoManagerEvent</code> interface and the <code title=event-undo>undo</code> and <code title=event-redo>redo</code> events</a></li>
-     <li><a href=#implementation-notes><span class=secno>8.8.6 </span>Implementation notes</a></ol></li>
-   <li><a href=#text-search-apis><span class=secno>8.9 </span>Text search APIs</a></li>
-   <li><a href=#editing-apis><span class=secno>8.10 </span>Editing APIs</a></ol></li>
+   <li><a href=#text-search-apis><span class=secno>8.8 </span>Text search APIs</a></li>
+   <li><a href=#editing-apis><span class=secno>8.9 </span>Editing APIs</a></ol></li>
  <li><a href=#video-conferencing-and-peer-to-peer-communication><span class=secno>9 </span>Video conferencing and peer-to-peer communication</a>
   <ol>
    <li><a href=#introduction-10><span class=secno>9.1 </span>Introduction</a></li>
@@ -1440,7 +1432,6 @@
    <li>The <a href=#webvtt>WebVTT</a> format and some <a href=#text-track>text track</a> API features.</li> <!--TTVTT-->
    <li>Rules for <a href=#atom>converting HTML to Atom</a>.</li> <!--MD-->
    <li>The <code title=dom-document-cssElementMap><a href=#dom-document-csselementmap>cssElementMap</a></code> feature for defining <a href=#css-element-reference-identifier title="CSS element reference identifier">CSS element reference identifiers</a>.</li> <!--CSSREF-->
-   <li>An experimental <code><a href=#undomanager>UndoManager</a></code> interface.</li><!--UNDO-->
    <li>An experimental specification of the legacy <code title=dom-find><a href=#dom-find>window.find()</a></code> API.</li><!--FIND-->
    <li>Some predefined <a href=#mdvocabs>Microdata vocabularies</a>.</li>
   </ul><!--
@@ -12699,16 +12690,14 @@
    <li><p>Replace the <code><a href=#document>Document</a></code>'s singleton objects with
    new instances of those objects. (This includes in particular the
    <code><a href=#window>Window</a></code>, <code><a href=#location>Location</a></code>, <code><a href=#history-0>History</a></code>,
-   <code><a href=#applicationcache>ApplicationCache</a></code>, 
-<!--UNDO-->
-   <code><a href=#undomanager>UndoManager</a></code>,
-<!--UNDO-->
-   and <code><a href=#navigator>Navigator</a></code>, objects, the various
-   <code><a href=#barprop>BarProp</a></code> objects, the two <code>Storage</code> objects,
-   the various <code><a href=#htmlcollection>HTMLCollection</a></code> objects, and objects
-   defined by other specifications, like <code>Selection</code>. It
-   also includes all the Web IDL prototypes in the JavaScript binding,
-   including the <code><a href=#document>Document</a></code> object's prototype.)</li>
+   <code><a href=#applicationcache>ApplicationCache</a></code>, and <code><a href=#navigator>Navigator</a></code>, objects,
+   the various <code><a href=#barprop>BarProp</a></code> objects, the two
+   <code>Storage</code> objects, the various
+   <code><a href=#htmlcollection>HTMLCollection</a></code> objects, and objects defined by other
+   specifications, like <code>Selection</code> and the document's
+   <code>UndoManager</code>. It also includes all the Web IDL
+   prototypes in the JavaScript binding, including the
+   <code><a href=#document>Document</a></code> object's prototype.)</li>
 
    <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E...%3Ciframe%20src%3D%22document%22%3E%3C%2Fiframe%3E%0A%3Cscript%3Eonload%20%3D%20function%20()%20%7B%20f%20%3D%20document.getElementsByTagName('iframe')%5B0%5D%3B%20d%20%3D%20f.contentWindow.document%3B%20%7D%3C%2Fscript%3E%0A%3Cinput%20type%3Dbutton%20onclick%3D%22w(d.documentElement.innerHTML)%22%20value%3D%22dump%22%3E%0A%3Cinput%20type%3Dbutton%20onclick%3D%22d.open()%3B%20d.write('%3Cscript%3Evar%20x%20%3D%20new%20XMLHttpRequest()%3Bx.open(%26quot%3BGET%26quot%3B%2C%20%26quot%3BGET%26quot%3B)%3Bx.onreadystatechange%3Dfunction()%20%7B%20alert(x.readyState)%3B%20%7D%3Bx.send(null)%3B%3C%2Fscript%3E')%3Bd.close()%3B%20setTimeout(function()%20%7B%20d.open()%3B%20d.write('%3Cp%3Etest%3C%2Fp%3E')%3B%20d.close()%20%7D%2C%200)%3B%22%20value%3D%22xhr%22%3E%0A%3Cinput%20type%3Dbutton%20onclick%3D%22d.onclick%20%3D%20function()%20%7B%20w('click')%20%7D%22%20value%3D%22add%20click%20handler%22%3E%
 0A%3Cinput%20type%3Dbutton%20onclick%3D%22d.open()%3B%20d.write('%3Cp%3Etest%3C%2Fp%3E')%3B%20d.close()%22%20value%3D%22replace%22%3E%0A%3Cinput%20type%3Dbutton%20onclick%3D%22d.open()%3B%20d.write('%3Cp%3E%3Cscript%3Ei%20%3D%200%3B%20setTimeout(%26quot%3Bparent.w(i%2B%2B)%26quot%3B%2C%202000)%3C%2Fscript%3E%3C%2Fp%3E')%3B%20d.close()%22%20value%3D%22replace%20with%20timer%22%3E -->
    <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0D%0A...%3Ciframe%3E%3C%2Fiframe%3E%0D%0A%3Cscript%3E%0D%0Aonload%20%3D%20function%20()%20%7B%0D%0A%20frames%5B0%5D.test%20%3D%201%0D%0A%20w(frames%5B0%5D.test)%3B%0D%0A%20var%20a%20%3D%20frames%5B0%5D.document.location.assign%3B%0D%0A%20w(a)%3B%0D%0A%20w(frames%5B0%5D.document.location.assign%20%3D%3D%3D%20a)%3B%0D%0A%20frames%5B0%5D.document.open()%3B%0D%0A%20frames%5B0%5D.document.write('%3Cscript%3Edocument.write(test)%3C%5C%2Fscript%3E')%3B%0D%0A%20frames%5B0%5D.document.close()%3B%0D%0A%20w(frames%5B0%5D.test)%3B%0D%0A%20w(frames%5B0%5D.document.location.assign%20%3D%3D%3D%20a)%3B%0D%0A%7D%0D%0A%3C%2Fscript%3E -->
@@ -20175,12 +20164,12 @@
    <p>This is incorrect usage, because <code><a href=#the-cite-element>cite</a></code> is not for
    quotes:</p>
 
-   <pre><p><cite>This is wrong!</cite>, said Ian.</p></pre>
+   <pre class=bad><p><cite>This is wrong!</cite>, said Ian.</p></pre>
 
    <p>This is also incorrect usage, because a person is not a
    work:</p>
 
-   <pre><p><q>This is still wrong!</q>, said <cite>Ian</cite>.</p></pre>
+   <pre class=bad><p><q>This is still wrong!</q>, said <cite>Ian</cite>.</p></pre>
 
    <p>The correct usage does not use a <code><a href=#the-cite-element>cite</a></code> element:</p>
 
@@ -62064,10 +62053,9 @@
            attribute DOMString <a href=#dom-name title=dom-name>name</a>; <!-- not [Replaceable] per WebKit and IE8 -->
   [PutForwards=<a href=#dom-location-href title=dom-location-href>href</a>] readonly attribute <a href=#location>Location</a> <a href=#dom-location title=dom-location>location</a>;
   readonly attribute <a href=#history-0>History</a> <a href=#dom-history title=dom-history>history</a>;
-<!--UNDO--><!--FIND-->
-  readonly attribute <a href=#undomanager>UndoManager</a> <a href=#dom-undomanager title=dom-undoManager>undoManager</a>;
+<!--FIND-->
   boolean <a href=#dom-find title=dom-find>find</a>(optional DOMString aString, optional boolean aCaseSensitive, optional boolean aBackwards, optional boolean aWrapAround, optional boolean aWholeWord, optional boolean aSearchInFrames, optional boolean aShowDialog);
-<!--UNDO--><!--FIND-->
+<!--FIND-->
   [Replaceable] readonly attribute <a href=#barprop>BarProp</a> <a href=#dom-window-locationbar title=dom-window-locationbar>locationbar</a>;
   [Replaceable] readonly attribute <a href=#barprop>BarProp</a> <a href=#dom-window-menubar title=dom-window-menubar>menubar</a>;
   [Replaceable] readonly attribute <a href=#barprop>BarProp</a> <a href=#dom-window-personalbar title=dom-window-personalbar>personalbar</a>;
@@ -69118,11 +69106,11 @@
     <tr><td><dfn id=handler-window-onpagehide title=handler-window-onpagehide><code>onpagehide</code></dfn> <td> <code title=event-pagehide><a href=#event-pagehide>pagehide</a></code> <!-- new -->
     <tr><td><dfn id=handler-window-onpageshow title=handler-window-onpageshow><code>onpageshow</code></dfn> <td> <code title=event-pageshow><a href=#event-pageshow>pageshow</a></code> <!-- new -->
     <tr><td><dfn id=handler-window-onpopstate title=handler-window-onpopstate><code>onpopstate</code></dfn> <td> <code title=event-popstate><a href=#event-popstate>popstate</a></code> <!-- new -->
-    <tr><td><dfn id=handler-window-onredo title=handler-window-onredo><code>onredo</code></dfn> <td> <code title=event-redo><a href=#event-redo>redo</a></code> <!-- new -->
+    <tr><td><dfn id=handler-window-onredo title=handler-window-onredo><code>onredo</code></dfn> <td> <code title=event-redo>redo</code> <!-- new -->
     <tr><td><dfn id=handler-window-onresize title=handler-window-onresize><code>onresize</code></dfn> <td> <code title=event-resize>resize</code> <!-- widely used --> <!-- [CSSOM] -->
     <tr><td><dfn id=handler-window-onscroll title=handler-window-onscroll><code>onscroll</code></dfn> <td> <code title=event-scroll>scroll</code>
     <tr><td><dfn id=handler-window-onstorage title=handler-window-onstorage><code>onstorage</code></dfn> <td> <code title=event-storage>storage</code> <!-- new -->
-    <tr><td><dfn id=handler-window-onundo title=handler-window-onundo><code>onundo</code></dfn> <td> <code title=event-undo><a href=#event-undo>undo</a></code> <!-- new -->
+    <tr><td><dfn id=handler-window-onundo title=handler-window-onundo><code>onundo</code></dfn> <td> <code title=event-undo>undo</code> <!-- new -->
     <tr><td><dfn id=handler-window-onunload title=handler-window-onunload><code>onunload</code></dfn> <td> <code title=event-unload>unload</code> <!-- widely used -->
   </table><p class=note>The <code title=handler-window-onerror><a href=#handler-window-onerror>onerror</a></code>
   handler is also used for <a href=#runtime-script-errors>reporting script errors</a>.</p>
@@ -72089,8 +72077,8 @@
   request to delete the content of the selection followed by a request
   to break the paragraph at that position.</p>
 
-  <p>User agents may add <a href=#dom-changes>DOM changes</a> entries to the
-  <a href=#undo-transaction-history>undo transaction history</a> of the <a href=#editing-host>editing
+  <p>User agents may add <span>DOM changes</span> entries to the
+  <span>undo transaction history</span> of the <a href=#editing-host>editing
   host</a>'s <code><a href=#document>Document</a></code> object each time an action is
   triggered.</p>
 
@@ -73888,7 +73876,7 @@
   operation, device input events (e.g. mouse and keyboard events) must
   be suppressed. In addition, the user agent must track all DOM
   changes made during the drag-and-drop operation, and add them to its
-  <a href=#undo-transaction-history>undo transaction history</a> as one atomic operation once
+  <span>undo transaction history</span> as one atomic operation once
   the drag-and-drop operation has ended.</p>
 
   <p>During the drag operation, the element directly indicated by the
@@ -74759,348 +74747,9 @@
   </div>
 
 
-<!--UNDO-->
-  <h3 id=undo><span class=secno>8.8 </span><dfn>Undo history</dfn></h3>
-
-  <div class=impl>
-
-  <h4 id=definitions-2><span class=secno>8.8.1 </span>Definitions</h4>
-
-  <p>The user agent must associate an <dfn id=undo-transaction-history>undo transaction
-  history</dfn> with each <code><a href=#document>Document</a></code> object.</p>
-
-  <p>The <a href=#undo-transaction-history>undo transaction history</a> is a list of
-  entries. The entries are of two types: <a href=#dom-changes>DOM changes</a> and
-  <a href=#undo-object title="undo object">undo objects</a>.</p>
-
-  <p>Each <dfn id=dom-changes>DOM changes</dfn> entry in the <a href=#undo-transaction-history>undo transaction
-  history</a> consists of batches of one or more of the
-  following:</p>
-
-  <ul><li>Changes to the content attributes of an <code><a href=#element>Element</a></code>
-   node.</li>
-
-   <li>Changes to the DOM hierarchy of nodes that are descendants of
-   the <code><a href=#document>Document</a></code> object (<code title=dom-Node-parentNode><a href=#dom-node-parentnode>parentNode</a></code>, <code title=dom-Node-childNodes><a href=#dom-node-childnodes>childNodes</a></code>).</li>
-
-   <li>Changes to internal state, such as a form control's <a href=#concept-fe-value title=concept-fe-value>value</a> or <a href=#concept-input-checked-dirty-flag title=concept-input-checked-dirty-flag>dirty checkedness
-   flag</a>.</li>
-
-  </ul><p><dfn id=undo-object>Undo object</dfn> entries consist of objects representing
-  state that scripts running in the document are managing. For
-  example, a Web mail application could use an <a href=#undo-object>undo
-  object</a> to keep track of the fact that a user has moved an
-  e-mail to a particular folder, so that the user can undo the
-  action and have the e-mail return to its former location.</p>
-
-  <p>Broadly speaking, <a href=#dom-changes>DOM changes</a> entries are handled by
-  the UA in response to user edits of form controls and <a href=#editing-host title="editing host">editing hosts</a> on the page, and
-  <a href=#undo-object>undo object</a> entries are handled by script in response
-  to higher-level user actions (such as interactions with server-side
-  state, or in the implementation of a drawing tool).</p>
-
-  </div>
-
-
-  <h4 id=the-undomanager-interface><span class=secno>8.8.2 </span>The <code><a href=#undomanager>UndoManager</a></code> interface</h4>
-
-  <p>To manage <a href=#undo-object>undo object</a> entries in the <a href=#undo-transaction-history>undo
-  transaction history</a>, the <code><a href=#undomanager>UndoManager</a></code>
-  interface can be used:</p>
-
-  <pre class=idl>interface <dfn id=undomanager>UndoManager</dfn> {
-  readonly attribute unsigned long <a href=#dom-undomanager-length title=dom-UndoManager-length>length</a>;
-  getter any <a href=#dom-undomanager-item title=dom-UndoManager-item>item</a>(unsigned long index);
-  readonly attribute unsigned long <a href=#dom-undomanager-position title=dom-UndoManager-position>position</a>;
-  unsigned long <a href=#dom-undomanager-add title=dom-UndoManager-add>add</a>(any data, DOMString title);
-  void <a href=#dom-undomanager-remove title=dom-UndoManager-remove>remove</a>(unsigned long index);
-  void <a href=#dom-undomanager-clearundo title=dom-UndoManager-clearUndo>clearUndo</a>();
-  void <a href=#dom-undomanager-clearredo title=dom-UndoManager-clearRedo>clearRedo</a>();
-};</pre>
-
-  <dl class=domintro><dt><var title="">window</var> . <code title=dom-undoManager><a href=#dom-undomanager>undoManager</a></code></dt>
-
-   <dd>
-
-    <p>Returns the <code><a href=#undomanager>UndoManager</a></code> object.</p>
-
-   </dd>
-
-   <dt><var title="">undoManager</var> . <code title=dom-UndoManager-length><a href=#dom-undomanager-length>length</a></code></dt>
-   <dd>
-
-    <p>Returns the number of entries in the undo history.</p>
-
-   </dd>
-
-   <dt><var title="">data</var> = <var title="">undoManager</var> . <code title=dom-UndoManager-item><a href=#dom-undomanager-item>item</a></code>(<var title="">index</var>)</dt>
-   <dt><var title="">undoManager</var>[<var title="">index</var>]</dt>
-   <dd>
-
-    <p>Returns the entry with index <var title="">index</var> in the undo history.</p>
-
-   </dd>
-
-   <dt><var title="">undoManager</var> . <code title=dom-UndoManager-position><a href=#dom-undomanager-position>position</a></code></dt>
-   <dd>
-
-    <p>Returns the number of the current entry in the undo history. (Entries at and past this point are <em>redo</em> entries.)</p>
-
-   </dd>
-
-   <dt><var title="">undoManager</var> . <code title=dom-UndoManager-add><a href=#dom-undomanager-add>add</a></code>(<var title="">data</var>, <var title="">title</var>)</dt>
-   <dd>
-
-    <p>Adds the specified entry to the undo history.</p>
-
-   </dd>
-
-   <dt><var title="">undoManager</var> . <code title=dom-UndoManager-remove><a href=#dom-undomanager-remove>remove</a></code>(<var title="">index</var>)</dt>
-   <dd>
-
-    <p>Removes the specified entry to the undo history.</p>
-
-    <p>Throws an <code><a href=#index_size_err>INDEX_SIZE_ERR</a></code> exception if the given index is out of range.</p>
-
-   </dd>
-
-   <dt><var title="">undoManager</var> . <code title=dom-UndoManager-clearUndo><a href=#dom-undomanager-clearundo>clearUndo</a></code>()</dt>
-   <dd>
-
-    <p>Removes all entries before the current position in the undo history.</p>
-
-   </dd>
-
-   <dt><var title="">undoManager</var> . <code title=dom-UndoManager-clearRedo><a href=#dom-undomanager-clearredo>clearRedo</a></code>()</dt>
-   <dd>
-
-    <p>Removes all entries at and after the current position in the undo history.</p>
-
-   </dd>
-
-  </dl><div class=impl>
-
-  <p>The <dfn id=dom-undomanager title=dom-undoManager><code>undoManager</code></dfn>
-  attribute of the <code><a href=#window>Window</a></code> interface must return the
-  object implementing the <code><a href=#undomanager>UndoManager</a></code> interface for that
-  <code><a href=#window>Window</a></code> object's associated <code><a href=#document>Document</a></code>
-  object.</p>
-
-  <p><code><a href=#undomanager>UndoManager</a></code> objects represent their document's
-  <a href=#undo-transaction-history>undo transaction history</a>. Only <a href=#undo-object>undo object</a>
-  entries are visible with this API, but this does not mean that
-  <a href=#dom-changes>DOM changes</a> entries are absent from the <a href=#undo-transaction-history>undo
-  transaction history</a>.</p>
-
-  <p>The <dfn id=dom-undomanager-length title=dom-UndoManager-length><code>length</code></dfn>
-  attribute must return the number of <a href=#undo-object>undo object</a> entries
-  in the <a href=#undo-transaction-history>undo transaction history</a>. This is the <var title=dom-UndoManager-length><a href=#dom-undomanager-length>length</a></var>.</p>
-
-  <p>The object's <a href=#supported-property-indices>supported property indices</a> are the
-  numbers in the range zero to <span title=""><var title=dom-UndoManager-length><a href=#dom-undomanager-length>length</a></var>-1</span>, unless the
-  <var title=dom-UndoManager-length><a href=#dom-undomanager-length>length</a></var> is zero, in which
-  case there are no <a href=#supported-property-indices>supported property indices</a>.</p>
-
-  <p>The <dfn id=dom-undomanager-item title=dom-UndoManager-item><code>item(<var title="">n</var>)</code></dfn> method must return the <var title="">n</var>th <a href=#undo-object>undo object</a> entry in the <a href=#undo-transaction-history>undo
-  transaction history</a>, if there is one, or null otherwise.</p>
-
-  <p>The <a href=#undo-transaction-history>undo transaction history</a> has an <dfn id=undo-position>undo
-  position</dfn>. This is the position between two entries in the
-  <a href=#undo-transaction-history>undo transaction history</a>'s list where the previous
-  entry represents what needs to happen if the user invokes the "undo"
-  command (the "undo" side, lower numbers), and the next entry
-  represents what needs to happen if the user invokes the "redo"
-  command (the "redo" side, higher numbers).</p>
-
-  <p>The <dfn id=dom-undomanager-position title=dom-UndoManager-position><code>position</code></dfn>
-  attribute must return the index of the <a href=#undo-object>undo object</a>
-  entry nearest to the <a href=#undo-position>undo position</a>, on the "redo"
-  side. If there are no <a href=#undo-object>undo object</a> entries on the "redo"
-  side, then the attribute must return the same as the <code title=dom-UndoManager-length><a href=#dom-undomanager-length>length</a></code> attribute. If there are
-  no <a href=#undo-object>undo object</a> entries on the "undo" side of the
-  <a href=#undo-position>undo position</a>, the <code title=dom-UndoManager-position><a href=#dom-undomanager-position>position</a></code> attribute returns
-  zero.</p>
-
-  <p class=note>Since the <a href=#undo-transaction-history>undo transaction history</a>
-  contains both <a href=#undo-object>undo object</a> entries and <a href=#dom-changes>DOM
-  changes</a> entries, but the <code title=dom-UndoManager-position><a href=#dom-undomanager-position>position</a></code> attribute only
-  returns indices relative to <a href=#undo-object>undo object</a> entries, it is
-  possible for several "undo" or "redo" actions to be performed
-  without the value of the <code title=dom-UndoManager-position><a href=#dom-undomanager-position>position</a></code> attribute
-  changing.</p>
-
-  <p>The <dfn id=dom-undomanager-add title=dom-UndoManager-add><code>add(<var title="">data</var>,
-  <var title="">title</var>)</code></dfn> method's behavior depends on the
-  current state. Normally, it must insert the <var title="">data</var> object
-  passed as an argument into the <a href=#undo-transaction-history>undo transaction history</a>
-  immediately before the <a href=#undo-position>undo position</a>, optionally
-  remembering the given <var title="">title</var> to use in the UI. If the
-  method is called <a href=#undo:-moving-back-in-the-undo-transaction-history title=do-undo>during an undo
-  operation</a>, however, the object must instead be added
-  immediately <em>after</em> the <a href=#undo-position>undo position</a>.</p>
-
-  <p>If the method is called and there is neither <a href=#undo:-moving-back-in-the-undo-transaction-history title=do-undo>an undo operation in progress</a> nor <a href=#redo:-moving-forward-in-the-undo-transaction-history title=do-redo>a redo operation in progress</a> then any entries
-  in the <a href=#undo-transaction-history>undo transaction history</a> after the <a href=#undo-position>undo
-  position</a> must be removed (as if <code title=dom-UndoManager-clearRedo><a href=#dom-undomanager-clearredo>clearRedo()</a></code> had been
-  called).</p>
-
-  <p>The <dfn id=dom-undomanager-remove title=dom-UndoManager-remove><code>remove(<var title="">index</var>)</code></dfn> method must remove the <a href=#undo-object>undo
-  object</a> entry with the specified <var title="">index</var>. If
-  the index is less than zero or greater than or equal to <code title=dom-UndoManager-length><a href=#dom-undomanager-length>length</a></code> then the method must
-  raise an <code><a href=#index_size_err>INDEX_SIZE_ERR</a></code> exception. <a href=#dom-changes>DOM
-  changes</a> entries are unaffected by this method.</p>
-
-  <p>The <dfn id=dom-undomanager-clearundo title=dom-UndoManager-clearUndo><code>clearUndo()</code></dfn>
-  method must remove all entries in the <a href=#undo-transaction-history>undo transaction
-  history</a> before the <a href=#undo-position>undo position</a>, be they
-  <a href=#dom-changes>DOM changes</a> entries or <a href=#undo-object>undo object</a>
-  entries.</p>
-
-  <p>The <dfn id=dom-undomanager-clearredo title=dom-UndoManager-clearRedo><code>clearRedo()</code></dfn>
-  method must remove all entries in the <a href=#undo-transaction-history>undo transaction
-  history</a> after the <a href=#undo-position>undo position</a>, be they
-  <a href=#dom-changes>DOM changes</a> entries or <a href=#undo-object>undo object</a>
-  entries.</p>
-
-  </div>
-
-
-  <div class=impl>
-
-  <h4 id=undo:-moving-back-in-the-undo-transaction-history><span class=secno>8.8.3 </span><dfn title=do-undo>Undo: moving back in the undo transaction history</dfn></h4>
-
-  <p>When the user invokes an undo operation, or when the <code title=dom-document-execCommand><a href=#execCommand>execCommand()</a></code> method is
-  called with the <code title=command-undo><a href=#command-undo>undo</a></code> command, the
-  user agent must perform an undo operation.</p>
-
-  <p>If the <a href=#undo-position>undo position</a> is at the start of the
-  <a href=#undo-transaction-history>undo transaction history</a>, then the user agent must do
-  nothing.</p>
-
-  <p>If the entry immediately before the <a href=#undo-position>undo position</a> is
-  a <a href=#dom-changes>DOM changes</a> entry, then the user agent must remove
-  that <a href=#dom-changes>DOM changes</a> entry, reverse the DOM changes that
-  were listed in that entry, and, if the changes were reversed with no
-  problems, add a new <a href=#dom-changes>DOM changes</a> entry (consisting of
-  the opposite of those DOM changes) to the <a href=#undo-transaction-history>undo transaction
-  history</a> on the other side of the <a href=#undo-position>undo
-  position</a>.</p>
-
-  <p>If the DOM changes cannot be undone (e.g. because the DOM state
-  is no longer consistent with the changes represented in the entry),
-  then the user agent must simply remove the <a href=#dom-changes>DOM changes</a>
-  entry, without doing anything else.</p>
-
-  <p>If the entry immediately before the <a href=#undo-position>undo position</a> is
-  an <a href=#undo-object>undo object</a> entry, then the user agent must first
-  remove that <a href=#undo-object>undo object</a> entry from the <a href=#undo-transaction-history>undo
-  transaction history</a>, and then must fire an <code title=event-undo><a href=#event-undo>undo</a></code> event at the <code><a href=#window>Window</a></code>
-  object, using the <a href=#undo-object>undo object</a> entry's associated undo
-  object as the event's data.</p>
-
-  <p>Any calls to <code title=dom-undoManager-add><a href=#dom-undomanager-add>add()</a></code> while
-  the event is being handled will be used to populate the redo
-  history, and will then be used if the user invokes the "redo"
-  command to undo his undo.</p>
-
-
-  <h4 id=redo:-moving-forward-in-the-undo-transaction-history><span class=secno>8.8.4 </span><dfn title=do-redo>Redo: moving forward in the undo transaction history</dfn></h4>
-
-  <p>When the user invokes a redo operation, or when the <code title=dom-document-execCommand><a href=#execCommand>execCommand()</a></code> method is
-  called with the <code title=command-redo><a href=#command-redo>redo</a></code> command, the
-  user agent must perform a redo operation.</p>
-
-  <p>This is mostly the opposite of an <a href=#undo:-moving-back-in-the-undo-transaction-history title=do-undo>undo
-  operation</a>, but the full definition is included here for
-  completeness.</p>
-
-  <p>If the <a href=#undo-position>undo position</a> is at the end of the <a href=#undo-transaction-history>undo
-  transaction history</a>, then the user agent must do nothing.</p>
-
-  <p>If the entry immediately after the <a href=#undo-position>undo position</a> is
-  a <a href=#dom-changes>DOM changes</a> entry, then the user agent must remove
-  that <a href=#dom-changes>DOM changes</a> entry, reverse the DOM changes that
-  were listed in that entry, and, if the changes were reversed with no
-  problems, add a new <a href=#dom-changes>DOM changes</a> entry (consisting of
-  the opposite of those DOM changes) to the <a href=#undo-transaction-history>undo transaction
-  history</a> on the other side of the <a href=#undo-position>undo
-  position</a>.</p>
-
-  <p>If the DOM changes cannot be redone (e.g. because the DOM state
-  is no longer consistent with the changes represented in the entry),
-  then the user agent must simply remove the <a href=#dom-changes>DOM changes</a>
-  entry, without doing anything else.</p>
-
-  <p>If the entry immediately after the <a href=#undo-position>undo position</a> is
-  an <a href=#undo-object>undo object</a> entry, then the user agent must first
-  remove that <a href=#undo-object>undo object</a> entry from the <a href=#undo-transaction-history>undo
-  transaction history</a>, and then must fire a <code title=event-redo><a href=#event-redo>redo</a></code> event at the <code><a href=#window>Window</a></code>
-  object, using the <a href=#undo-object>undo object</a> entry's associated undo
-  object as the event's data.</p>
-
-  </div>
-
-
-  <h4 id=the-undomanagerevent-interface-and-the-undo-and-redo-events><span class=secno>8.8.5 </span>The <code><a href=#undomanagerevent>UndoManagerEvent</a></code> interface and the <code title=event-undo><a href=#event-undo>undo</a></code> and <code title=event-redo><a href=#event-redo>redo</a></code> events</h4>
-
-  <pre class=idl>interface <dfn id=undomanagerevent>UndoManagerEvent</dfn> : <a href=#event>Event</a> {
-  readonly attribute any <a href=#dom-undomanagerevent-data title=dom-UndoManagerEvent-data>data</a>;
-  void <a href=#dom-undomanagerevent-initundomanagerevent title=dom-UndoManagerEvent-initUndoManagerEvent>initUndoManagerEvent</a>(DOMString typeArg, boolean canBubbleArg, boolean cancelableArg, any dataArg);
-};</pre>
-
-  <dl class=domintro><dt><var title="">event</var>  . <code title=dom-UndoManagerEvent-data><a href=#dom-undomanagerevent-data>data</a></code></dt>
-
-   <dd>
-
-    <p>Returns the data that was passed to the <code title=dom-undomanager-add><a href=#dom-undomanager-add>add()</a></code> method.</p>
-
-   </dd>
-
-  </dl><div class=impl>
-
-  <p>The <dfn id=dom-undomanagerevent-initundomanagerevent title=dom-UndoManagerEvent-initUndoManagerEvent><code>initUndoManagerEvent()</code></dfn>
-  method must initialize the event in a manner analogous to the
-  similarly-named method in the DOM Events interfaces. <a href=#refsDOMEVENTS>[DOMEVENTS]</a></p>
-
-  <p>The <dfn id=dom-undomanagerevent-data title=dom-UndoManagerEvent-data><code>data</code></dfn>
-  attribute represents the <a href=#undo-object>undo object</a> for the event.</p>
-
-  <p>The <dfn id=event-undo title=event-undo><code>undo</code></dfn> and <dfn id=event-redo title=event-redo><code>redo</code></dfn> events do not bubble,
-  cannot be canceled, and have no default action. When the user agent
-  fires one of these events it must use the
-  <code><a href=#undomanagerevent>UndoManagerEvent</a></code> interface, with the <code title=dom-UndoManagerEvent-data><a href=#dom-undomanagerevent-data>data</a></code> field containing the
-  relevant <a href=#undo-object>undo object</a>.</p>
-
-  </div>
-
-
-  <div class=impl>
-
-  <h4 id=implementation-notes><span class=secno>8.8.6 </span>Implementation notes</h4>
-
-  <p>How user agents present the above conceptual model to the user is
-  not defined. The undo interface could be a filtered view of the
-  <a href=#undo-transaction-history>undo transaction history</a>, it could manipulate the
-  <a href=#undo-transaction-history>undo transaction history</a> in ways not described above,
-  and so forth. For example, it is possible to design a UA that
-  appears to have separate <a href=#undo-transaction-history title="undo transaction history">undo
-  transaction histories</a> for each form control; similarly, it is
-  possible to design systems where the user has access to more undo
-  information than is present in the official (as described above)
-  <a href=#undo-transaction-history>undo transaction history</a> (such as providing a
-  tree-based approach to document state). Such UI models should be
-  based upon the single <a href=#undo-transaction-history>undo transaction history</a>
-  described in this section, however, such that to a script there is
-  no detectable difference.</p>
-
-  </div>
-
-<!--UNDO-->
-
-
 <!--FIND-->
 
-  <h3 id=text-search-apis><span class=secno>8.9 </span>Text search APIs</h3> <!-- window.find() -->
+  <h3 id=text-search-apis><span class=secno>8.8 </span>Text search APIs</h3> <!-- window.find() -->
 
   <p class=critical>This legacy API is not very interoperably
   implemented, and has a number of design problems (such as having six
@@ -75157,7 +74806,7 @@
 
 
 
-  <h3 id=editing-apis><span class=secno>8.10 </span>Editing APIs</h3>
+  <h3 id=editing-apis><span class=secno>8.9 </span>Editing APIs</h3>
 
   <dl class=domintro><dt><var title="">document</var> . <code title=dom-document-execCommand><a href=#execCommand>execCommand</a></code>(<var title="">commandId</var> [, <var title="">showUI</var> [, <var title="">value</var> ] ] )</dt>
 
@@ -75494,17 +75143,14 @@
 
    <dt><dfn id=command-redo title=command-redo><code>redo</code></dfn></dt>
    <dd><strong>Summary</strong>: Acts as if the user had requested a redo.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must <a href=#redo:-moving-forward-in-the-undo-transaction-history title=do-redo>move forward one step</a> in its <a href=#undo-transaction-history>undo
-   transaction history</a>, restoring the associated state. If the
-   <a href=#undo-position>undo position</a> is at the end of the <a href=#undo-transaction-history>undo
-   transaction history</a>, the user agent must do nothing.
-<!--UNDO-->
-   See the <a href=#undo>undo history</a>.
-<!--UNDO-->
+   <dd class=impl><strong>Action</strong>: The user agent must <span title=do-redo>move forward one step</span> in its <span>undo
+   transaction history</span>, restoring the associated state. If the
+   <span>undo position</span> is at the end of the <span>undo
+   transaction history</span>, the user agent must do nothing.
    </dd>
-   <dd><strong>Enabled When</strong>: The <a href=#undo-position>undo position</a>
-   is not at the end of the <a href=#undo-transaction-history>undo transaction
-   history</a>.</dd>
+   <dd><strong>Enabled When</strong>: The <span>undo position</span>
+   is not at the end of the <span>undo transaction
+   history</span>.</dd>
    <dd><strong>Indeterminate When</strong>: Never.</dd>
    <dd><strong>State</strong>: Always false.</dd>
    <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
@@ -75557,17 +75203,14 @@
 
    <dt><dfn id=command-undo title=command-undo><code>undo</code></dfn></dt>
    <dd><strong>Summary</strong>: Acts as if the user had requested an undo.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must <a href=#undo:-moving-back-in-the-undo-transaction-history title=do-undo>move back one step</a> in its <a href=#undo-transaction-history>undo
-   transaction history</a>, restoring the associated state. If the
-   <a href=#undo-position>undo position</a> is at the start of the <a href=#undo-transaction-history>undo
-   transaction history</a>, the user agent must do nothing.
-<!--UNDO-->
-   See the <a href=#undo>undo history</a>.
-<!--UNDO-->
+   <dd class=impl><strong>Action</strong>: The user agent must <span title=do-undo>move back one step</span> in its <span>undo
+   transaction history</span>, restoring the associated state. If the
+   <span>undo position</span> is at the start of the <span>undo
+   transaction history</span>, the user agent must do nothing.
    </dd>
-   <dd><strong>Enabled When</strong>: The <a href=#undo-position>undo position</a>
-   is not at the start of the <a href=#undo-transaction-history>undo transaction
-   history</a>.</dd>
+   <dd><strong>Enabled When</strong>: The <span>undo position</span>
+   is not at the start of the <span>undo transaction
+   history</span>.</dd>
    <dd><strong>Indeterminate When</strong>: Never.</dd>
    <dd><strong>State</strong>: Always false.</dd>
    <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
@@ -96544,7 +96187,7 @@
 
     <tr><th id=ix-handler-window-onredo> <code title="">onredo</code>
      <td> <code title=handler-window-onredo><a href=#handler-window-onredo>body</a></code>
-     <td> <code title=event-redo><a href=#event-redo>redo</a></code> event handler for <code><a href=#window>Window</a></code> object
+     <td> <code title=event-redo>redo</code> event handler for <code><a href=#window>Window</a></code> object
      <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
 
     <tr><th id=ix-handler-onreset> <code title="">onreset</code>
@@ -96614,7 +96257,7 @@
 
     <tr><th id=ix-handler-window-onundo> <code title="">onundo</code>
      <td> <code title=handler-window-onundo><a href=#handler-window-onundo>body</a></code>
-     <td> <code title=event-undo><a href=#event-undo>undo</a></code> event handler for <code><a href=#window>Window</a></code> object
+     <td> <code title=event-undo>undo</code> event handler for <code><a href=#window>Window</a></code> object
      <td> <a href=#event-handler-content-attributes title="event handler content attributes">Event handler content attribute</a>
 
     <tr><th id=ix-handler-window-onunload> <code title="">onunload</code>
@@ -97090,12 +96733,6 @@
      <td> <code><a href=#event>Event</a></code>
      <td> Fired at the <code><a href=#document>Document</a></code> when it finishes parsing and again when all its subresources have finished loading
 
-<!--UNDO-->
-    <tr><td> <code title=event-redo><a href=#event-redo>redo</a></code>
-     <td> <code><a href=#undomanagerevent>UndoManagerEvent</a></code>
-     <td> Fired at the <code><a href=#window>Window</a></code> object when the user <a href=#redo:-moving-forward-in-the-undo-transaction-history title=do-redo>goes forward in the undo transaction history</a>
-<!--UNDO-->
-
     <tr><td> <code title=event-reset>reset</code>
      <td> <code><a href=#event>Event</a></code>
      <td> Fired at a <code><a href=#the-form-element>form</a></code> element when it is <a href=#concept-form-reset title=concept-form-reset>reset</a>
@@ -97108,12 +96745,6 @@
      <td> <code><a href=#event>Event</a></code>
      <td> Fired at a <code><a href=#the-form-element>form</a></code> element when it is <a href=#concept-form-submit title=concept-form-submit>submitted</a>
 
-<!--UNDO-->
-    <tr><td> <code title=event-undo><a href=#event-undo>undo</a></code>
-     <td> <code><a href=#undomanagerevent>UndoManagerEvent</a></code>
-     <td> Fired at the <code><a href=#window>Window</a></code> object when the user <a href=#undo:-moving-back-in-the-undo-transaction-history title=do-undo>goes backward in the undo transaction history</a>
-<!--UNDO-->
-
     <tr><td> <code title=event-unload>unload</code>
      <td> <code><a href=#event>Event</a></code>
      <td> Fired at the <code><a href=#window>Window</a></code> object when the page is going away

Modified: source
===================================================================
--- source	2011-08-25 22:36:23 UTC (rev 6526)
+++ source	2011-08-25 23:13:05 UTC (rev 6527)
@@ -235,7 +235,6 @@
    <li>The <span>WebVTT</span> format and some <span>text track</span> API features.</li> <!--TTVTT-->
    <li>Rules for <a href="#atom">converting HTML to Atom</a>.</li> <!--MD-->
    <li>The <code title="dom-document-cssElementMap">cssElementMap</code> feature for defining <span title="CSS element reference identifier">CSS element reference identifiers</span>.</li> <!--CSSREF-->
-   <li>An experimental <code>UndoManager</code> interface.</li><!--UNDO-->
    <li>An experimental specification of the legacy <code title="dom-find">window.find()</code> API.</li><!--FIND-->
    <li>Some predefined <a href="#mdvocabs">Microdata vocabularies</a>.</li>
   </ul>
@@ -13376,16 +13375,14 @@
    <li><p>Replace the <code>Document</code>'s singleton objects with
    new instances of those objects. (This includes in particular the
    <code>Window</code>, <code>Location</code>, <code>History</code>,
-   <code>ApplicationCache</code>, 
-<!--END w3c-html--><!--UNDO-->
-   <code>UndoManager</code>,
-<!--START w3c-html--><!--UNDO-->
-   and <code>Navigator</code>, objects, the various
-   <code>BarProp</code> objects, the two <code>Storage</code> objects,
-   the various <code>HTMLCollection</code> objects, and objects
-   defined by other specifications, like <code>Selection</code>. It
-   also includes all the Web IDL prototypes in the JavaScript binding,
-   including the <code>Document</code> object's prototype.)</p></li>
+   <code>ApplicationCache</code>, and <code>Navigator</code>, objects,
+   the various <code>BarProp</code> objects, the two
+   <code>Storage</code> objects, the various
+   <code>HTMLCollection</code> objects, and objects defined by other
+   specifications, like <code>Selection</code> and the document's
+   <code>UndoManager</code>. It also includes all the Web IDL
+   prototypes in the JavaScript binding, including the
+   <code>Document</code> object's prototype.)</p></li>
 
    <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E...%3Ciframe%20src%3D%22document%22%3E%3C%2Fiframe%3E%0A%3Cscript%3Eonload%20%3D%20function%20()%20%7B%20f%20%3D%20document.getElementsByTagName('iframe')%5B0%5D%3B%20d%20%3D%20f.contentWindow.document%3B%20%7D%3C%2Fscript%3E%0A%3Cinput%20type%3Dbutton%20onclick%3D%22w(d.documentElement.innerHTML)%22%20value%3D%22dump%22%3E%0A%3Cinput%20type%3Dbutton%20onclick%3D%22d.open()%3B%20d.write('%3Cscript%3Evar%20x%20%3D%20new%20XMLHttpRequest()%3Bx.open(%26quot%3BGET%26quot%3B%2C%20%26quot%3BGET%26quot%3B)%3Bx.onreadystatechange%3Dfunction()%20%7B%20alert(x.readyState)%3B%20%7D%3Bx.send(null)%3B%3C%2Fscript%3E')%3Bd.close()%3B%20setTimeout(function()%20%7B%20d.open()%3B%20d.write('%3Cp%3Etest%3C%2Fp%3E')%3B%20d.close()%20%7D%2C%200)%3B%22%20value%3D%22xhr%22%3E%0A%3Cinput%20type%3Dbutton%20onclick%3D%22d.onclick%20%3D%20function()%20%7B%20w('click')%20%7D%22%20value%3D%22add%20click%20handler%22%3E%
 0A%3Cinput%20type%3Dbutton%20onclick%3D%22d.open()%3B%20d.write('%3Cp%3Etest%3C%2Fp%3E')%3B%20d.close()%22%20value%3D%22replace%22%3E%0A%3Cinput%20type%3Dbutton%20onclick%3D%22d.open()%3B%20d.write('%3Cp%3E%3Cscript%3Ei%20%3D%200%3B%20setTimeout(%26quot%3Bparent.w(i%2B%2B)%26quot%3B%2C%202000)%3C%2Fscript%3E%3C%2Fp%3E')%3B%20d.close()%22%20value%3D%22replace%20with%20timer%22%3E -->
    <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0D%0A...%3Ciframe%3E%3C%2Fiframe%3E%0D%0A%3Cscript%3E%0D%0Aonload%20%3D%20function%20()%20%7B%0D%0A%20frames%5B0%5D.test%20%3D%201%0D%0A%20w(frames%5B0%5D.test)%3B%0D%0A%20var%20a%20%3D%20frames%5B0%5D.document.location.assign%3B%0D%0A%20w(a)%3B%0D%0A%20w(frames%5B0%5D.document.location.assign%20%3D%3D%3D%20a)%3B%0D%0A%20frames%5B0%5D.document.open()%3B%0D%0A%20frames%5B0%5D.document.write('%3Cscript%3Edocument.write(test)%3C%5C%2Fscript%3E')%3B%0D%0A%20frames%5B0%5D.document.close()%3B%0D%0A%20w(frames%5B0%5D.test)%3B%0D%0A%20w(frames%5B0%5D.document.location.assign%20%3D%3D%3D%20a)%3B%0D%0A%7D%0D%0A%3C%2Fscript%3E -->
@@ -21689,12 +21686,12 @@
    <p>This is incorrect usage, because <code>cite</code> is not for
    quotes:</p>
 
-   <pre><p><cite>This is wrong!</cite>, said Ian.</p></pre>
+   <pre class="bad"><p><cite>This is wrong!</cite>, said Ian.</p></pre>
 
    <p>This is also incorrect usage, because a person is not a
    work:</p>
 
-   <pre><p><q>This is still wrong!</q>, said <cite>Ian</cite>.</p></pre>
+   <pre class="bad"><p><q>This is still wrong!</q>, said <cite>Ian</cite>.</p></pre>
 
    <p>The correct usage does not use a <code>cite</code> element:</p>
 
@@ -70611,10 +70608,9 @@
            attribute DOMString <span title="dom-name">name</span>; <!-- not [Replaceable] per WebKit and IE8 -->
   [PutForwards=<span title="dom-location-href">href</span>] readonly attribute <span>Location</span> <span title="dom-location">location</span>;
   readonly attribute <span>History</span> <span title="dom-history">history</span>;
-<!--END w3c-html--><!--UNDO--><!--FIND-->
-  readonly attribute <span>UndoManager</span> <span title="dom-undoManager">undoManager</span>;
+<!--END w3c-html--><!--FIND-->
   boolean <span title="dom-find">find</span>(optional DOMString aString, optional boolean aCaseSensitive, optional boolean aBackwards, optional boolean aWrapAround, optional boolean aWholeWord, optional boolean aSearchInFrames, optional boolean aShowDialog);
-<!--START w3c-html--><!--UNDO--><!--FIND-->
+<!--START w3c-html--><!--FIND-->
   [Replaceable] readonly attribute <span>BarProp</span> <span title="dom-window-locationbar">locationbar</span>;
   [Replaceable] readonly attribute <span>BarProp</span> <span title="dom-window-menubar">menubar</span>;
   [Replaceable] readonly attribute <span>BarProp</span> <span title="dom-window-personalbar">personalbar</span>;
@@ -85351,389 +85347,8 @@
   </div>
 
 
-<!--END w3c-html--><!--UNDO-->
-  <h3 id="undo"><dfn>Undo history</dfn></h3>
+<!--END w3c-html--><!--FIND-->
 
-  <div class="impl">
-
-  <h4>Definitions</h4>
-
-  <p>The user agent must associate an <dfn>undo transaction
-  history</dfn> with each <code>Document</code> object.</p>
-
-  <p>The <span>undo transaction history</span> is a list of
-  entries. The entries are of two types: <span>DOM changes</span> and
-  <span title="undo object">undo objects</span>.</p>
-
-  <p>Each <dfn>DOM changes</dfn> entry in the <span>undo transaction
-  history</span> consists of batches of one or more of the
-  following:</p>
-
-  <ul>
-
-   <li>Changes to the content attributes of an <code>Element</code>
-   node.</li>
-
-   <li>Changes to the DOM hierarchy of nodes that are descendants of
-   the <code>Document</code> object (<code
-   title="dom-Node-parentNode">parentNode</code>, <code
-   title="dom-Node-childNodes">childNodes</code>).</li>
-
-   <li>Changes to internal state, such as a form control's <span
-   title="concept-fe-value">value</span> or <span
-   title="concept-input-checked-dirty-flag">dirty checkedness
-   flag</span>.</li>
-
-  </ul>
-
-  <p><dfn>Undo object</dfn> entries consist of objects representing
-  state that scripts running in the document are managing. For
-  example, a Web mail application could use an <span>undo
-  object</span> to keep track of the fact that a user has moved an
-  e-mail to a particular folder, so that the user can undo the
-  action and have the e-mail return to its former location.</p>
-
-  <p>Broadly speaking, <span>DOM changes</span> entries are handled by
-  the UA in response to user edits of form controls and <span
-  title="editing host">editing hosts</span> on the page, and
-  <span>undo object</span> entries are handled by script in response
-  to higher-level user actions (such as interactions with server-side
-  state, or in the implementation of a drawing tool).</p>
-
-  </div>
-
-
-  <h4>The <code>UndoManager</code> interface</h4>
-
-  <p>To manage <span>undo object</span> entries in the <span>undo
-  transaction history</span>, the <code>UndoManager</code>
-  interface can be used:</p>
-
-  <pre class="idl">interface <dfn>UndoManager</dfn> {
-  readonly attribute unsigned long <span title="dom-UndoManager-length">length</span>;
-  getter any <span title="dom-UndoManager-item">item</span>(unsigned long index);
-  readonly attribute unsigned long <span title="dom-UndoManager-position">position</span>;
-  unsigned long <span title="dom-UndoManager-add">add</span>(any data, DOMString title);
-  void <span title="dom-UndoManager-remove">remove</span>(unsigned long index);
-  void <span title="dom-UndoManager-clearUndo">clearUndo</span>();
-  void <span title="dom-UndoManager-clearRedo">clearRedo</span>();
-};</pre>
-
-  <dl class="domintro">
-
-   <dt><var title="">window</var> . <code title="dom-undoManager">undoManager</code></dt>
-
-   <dd>
-
-    <p>Returns the <code>UndoManager</code> object.</p>
-
-   </dd>
-
-   <dt><var title="">undoManager</var> . <code title="dom-UndoManager-length">length</code></dt>
-   <dd>
-
-    <p>Returns the number of entries in the undo history.</p>
-
-   </dd>
-
-   <dt><var title="">data</var> = <var title="">undoManager</var> . <code title="dom-UndoManager-item">item</code>(<var title="">index</var>)</dt>
-   <dt><var title="">undoManager</var>[<var title="">index</var>]</dt>
-   <dd>
-
-    <p>Returns the entry with index <var title="">index</var> in the undo history.</p>
-
-   </dd>
-
-   <dt><var title="">undoManager</var> . <code title="dom-UndoManager-position">position</code></dt>
-   <dd>
-
-    <p>Returns the number of the current entry in the undo history. (Entries at and past this point are <em>redo</em> entries.)</p>
-
-   </dd>
-
-   <dt><var title="">undoManager</var> . <code title="dom-UndoManager-add">add</code>(<var title="">data</var>, <var title="">title</var>)</dt>
-   <dd>
-
-    <p>Adds the specified entry to the undo history.</p>
-
-   </dd>
-
-   <dt><var title="">undoManager</var> . <code title="dom-UndoManager-remove">remove</code>(<var title="">index</var>)</dt>
-   <dd>
-
-    <p>Removes the specified entry to the undo history.</p>
-
-    <p>Throws an <code>INDEX_SIZE_ERR</code> exception if the given index is out of range.</p>
-
-   </dd>
-
-   <dt><var title="">undoManager</var> . <code title="dom-UndoManager-clearUndo">clearUndo</code>()</dt>
-   <dd>
-
-    <p>Removes all entries before the current position in the undo history.</p>
-
-   </dd>
-
-   <dt><var title="">undoManager</var> . <code title="dom-UndoManager-clearRedo">clearRedo</code>()</dt>
-   <dd>
-
-    <p>Removes all entries at and after the current position in the undo history.</p>
-
-   </dd>
-
-  </dl>
-
-  <div class="impl">
-
-  <p>The <dfn title="dom-undoManager"><code>undoManager</code></dfn>
-  attribute of the <code>Window</code> interface must return the
-  object implementing the <code>UndoManager</code> interface for that
-  <code>Window</code> object's associated <code>Document</code>
-  object.</p>
-
-  <p><code>UndoManager</code> objects represent their document's
-  <span>undo transaction history</span>. Only <span>undo object</span>
-  entries are visible with this API, but this does not mean that
-  <span>DOM changes</span> entries are absent from the <span>undo
-  transaction history</span>.</p>
-
-  <p>The <dfn title="dom-UndoManager-length"><code>length</code></dfn>
-  attribute must return the number of <span>undo object</span> entries
-  in the <span>undo transaction history</span>. This is the <var
-  title="dom-UndoManager-length">length</var>.</p>
-
-  <p>The object's <span>supported property indices</span> are the
-  numbers in the range zero to <span title=""><var
-  title="dom-UndoManager-length">length</var>-1</span>, unless the
-  <var title="dom-UndoManager-length">length</var> is zero, in which
-  case there are no <span>supported property indices</span>.</p>
-
-  <p>The <dfn title="dom-UndoManager-item"><code>item(<var
-  title="">n</var>)</code></dfn> method must return the <var
-  title="">n</var>th <span>undo object</span> entry in the <span>undo
-  transaction history</span>, if there is one, or null otherwise.</p>
-
-  <p>The <span>undo transaction history</span> has an <dfn>undo
-  position</dfn>. This is the position between two entries in the
-  <span>undo transaction history</span>'s list where the previous
-  entry represents what needs to happen if the user invokes the "undo"
-  command (the "undo" side, lower numbers), and the next entry
-  represents what needs to happen if the user invokes the "redo"
-  command (the "redo" side, higher numbers).</p>
-
-  <p>The <dfn
-  title="dom-UndoManager-position"><code>position</code></dfn>
-  attribute must return the index of the <span>undo object</span>
-  entry nearest to the <span>undo position</span>, on the "redo"
-  side. If there are no <span>undo object</span> entries on the "redo"
-  side, then the attribute must return the same as the <code
-  title="dom-UndoManager-length">length</code> attribute. If there are
-  no <span>undo object</span> entries on the "undo" side of the
-  <span>undo position</span>, the <code
-  title="dom-UndoManager-position">position</code> attribute returns
-  zero.</p>
-
-  <p class="note">Since the <span>undo transaction history</span>
-  contains both <span>undo object</span> entries and <span>DOM
-  changes</span> entries, but the <code
-  title="dom-UndoManager-position">position</code> attribute only
-  returns indices relative to <span>undo object</span> entries, it is
-  possible for several "undo" or "redo" actions to be performed
-  without the value of the <code
-  title="dom-UndoManager-position">position</code> attribute
-  changing.</p>
-
-  <p>The <dfn title="dom-UndoManager-add"><code>add(<var title="">data</var>,
-  <var title="">title</var>)</code></dfn> method's behavior depends on the
-  current state. Normally, it must insert the <var title="">data</var> object
-  passed as an argument into the <span>undo transaction history</span>
-  immediately before the <span>undo position</span>, optionally
-  remembering the given <var title="">title</var> to use in the UI. If the
-  method is called <span title="do-undo">during an undo
-  operation</span>, however, the object must instead be added
-  immediately <em>after</em> the <span>undo position</span>.</p>
-
-  <p>If the method is called and there is neither <span
-  title="do-undo">an undo operation in progress</span> nor <span
-  title="do-redo">a redo operation in progress</span> then any entries
-  in the <span>undo transaction history</span> after the <span>undo
-  position</span> must be removed (as if <code
-  title="dom-UndoManager-clearRedo">clearRedo()</code> had been
-  called).</p>
-
-  <p>The <dfn title="dom-UndoManager-remove"><code>remove(<var
-  title="">index</var>)</code></dfn> method must remove the <span>undo
-  object</span> entry with the specified <var title="">index</var>. If
-  the index is less than zero or greater than or equal to <code
-  title="dom-UndoManager-length">length</code> then the method must
-  raise an <code>INDEX_SIZE_ERR</code> exception. <span>DOM
-  changes</span> entries are unaffected by this method.</p>
-
-  <p>The <dfn
-  title="dom-UndoManager-clearUndo"><code>clearUndo()</code></dfn>
-  method must remove all entries in the <span>undo transaction
-  history</span> before the <span>undo position</span>, be they
-  <span>DOM changes</span> entries or <span>undo object</span>
-  entries.</p>
-
-  <p>The <dfn
-  title="dom-UndoManager-clearRedo"><code>clearRedo()</code></dfn>
-  method must remove all entries in the <span>undo transaction
-  history</span> after the <span>undo position</span>, be they
-  <span>DOM changes</span> entries or <span>undo object</span>
-  entries.</p>
-
-  </div>
-
-
-  <div class="impl">
-
-  <h4><dfn title="do-undo">Undo: moving back in the undo transaction history</dfn></h4>
-
-  <p>When the user invokes an undo operation, or when the <code
-  title="dom-document-execCommand">execCommand()</code> method is
-  called with the <code title="command-undo">undo</code> command, the
-  user agent must perform an undo operation.</p>
-
-  <p>If the <span>undo position</span> is at the start of the
-  <span>undo transaction history</span>, then the user agent must do
-  nothing.</p>
-
-  <p>If the entry immediately before the <span>undo position</span> is
-  a <span>DOM changes</span> entry, then the user agent must remove
-  that <span>DOM changes</span> entry, reverse the DOM changes that
-  were listed in that entry, and, if the changes were reversed with no
-  problems, add a new <span>DOM changes</span> entry (consisting of
-  the opposite of those DOM changes) to the <span>undo transaction
-  history</span> on the other side of the <span>undo
-  position</span>.</p>
-
-  <p>If the DOM changes cannot be undone (e.g. because the DOM state
-  is no longer consistent with the changes represented in the entry),
-  then the user agent must simply remove the <span>DOM changes</span>
-  entry, without doing anything else.</p>
-
-  <p>If the entry immediately before the <span>undo position</span> is
-  an <span>undo object</span> entry, then the user agent must first
-  remove that <span>undo object</span> entry from the <span>undo
-  transaction history</span>, and then must fire an <code
-  title="event-undo">undo</code> event at the <code>Window</code>
-  object, using the <span>undo object</span> entry's associated undo
-  object as the event's data.</p>
-
-  <p>Any calls to <code title="dom-undoManager-add">add()</code> while
-  the event is being handled will be used to populate the redo
-  history, and will then be used if the user invokes the "redo"
-  command to undo his undo.</p>
-
-
-  <h4><dfn title="do-redo">Redo: moving forward in the undo transaction history</dfn></h4>
-
-  <p>When the user invokes a redo operation, or when the <code
-  title="dom-document-execCommand">execCommand()</code> method is
-  called with the <code title="command-redo">redo</code> command, the
-  user agent must perform a redo operation.</p>
-
-  <p>This is mostly the opposite of an <span title="do-undo">undo
-  operation</span>, but the full definition is included here for
-  completeness.</p>
-
-  <p>If the <span>undo position</span> is at the end of the <span>undo
-  transaction history</span>, then the user agent must do nothing.</p>
-
-  <p>If the entry immediately after the <span>undo position</span> is
-  a <span>DOM changes</span> entry, then the user agent must remove
-  that <span>DOM changes</span> entry, reverse the DOM changes that
-  were listed in that entry, and, if the changes were reversed with no
-  problems, add a new <span>DOM changes</span> entry (consisting of
-  the opposite of those DOM changes) to the <span>undo transaction
-  history</span> on the other side of the <span>undo
-  position</span>.</p>
-
-  <p>If the DOM changes cannot be redone (e.g. because the DOM state
-  is no longer consistent with the changes represented in the entry),
-  then the user agent must simply remove the <span>DOM changes</span>
-  entry, without doing anything else.</p>
-
-  <p>If the entry immediately after the <span>undo position</span> is
-  an <span>undo object</span> entry, then the user agent must first
-  remove that <span>undo object</span> entry from the <span>undo
-  transaction history</span>, and then must fire a <code
-  title="event-redo">redo</code> event at the <code>Window</code>
-  object, using the <span>undo object</span> entry's associated undo
-  object as the event's data.</p>
-
-  </div>
-
-
-  <h4>The <code>UndoManagerEvent</code> interface and the <code title="event-undo">undo</code> and <code title="event-redo">redo</code> events</h4>
-
-  <pre class="idl">interface <dfn>UndoManagerEvent</dfn> : <span>Event</span> {
-  readonly attribute any <span title="dom-UndoManagerEvent-data">data</span>;
-  void <span title="dom-UndoManagerEvent-initUndoManagerEvent">initUndoManagerEvent</span>(DOMString typeArg, boolean canBubbleArg, boolean cancelableArg, any dataArg);
-};</pre>
-
-  <dl class="domintro">
-
-   <dt><var title="">event</var>  . <code title="dom-UndoManagerEvent-data">data</code></dt>
-
-   <dd>
-
-    <p>Returns the data that was passed to the <code
-    title="dom-undomanager-add">add()</code> method.</p>
-
-   </dd>
-
-  </dl>
-
-  <div class="impl">
-
-  <p>The <dfn
-  title="dom-UndoManagerEvent-initUndoManagerEvent"><code>initUndoManagerEvent()</code></dfn>
-  method must initialize the event in a manner analogous to the
-  similarly-named method in the DOM Events interfaces. <a
-  href="#refsDOMEVENTS">[DOMEVENTS]</a></p>
-
-  <p>The <dfn title="dom-UndoManagerEvent-data"><code>data</code></dfn>
-  attribute represents the <span>undo object</span> for the event.</p>
-
-  <p>The <dfn title="event-undo"><code>undo</code></dfn> and <dfn
-  title="event-redo"><code>redo</code></dfn> events do not bubble,
-  cannot be canceled, and have no default action. When the user agent
-  fires one of these events it must use the
-  <code>UndoManagerEvent</code> interface, with the <code
-  title="dom-UndoManagerEvent-data">data</code> field containing the
-  relevant <span>undo object</span>.</p>
-
-  </div>
-
-
-  <div class="impl">
-
-  <h4>Implementation notes</h4>
-
-  <p>How user agents present the above conceptual model to the user is
-  not defined. The undo interface could be a filtered view of the
-  <span>undo transaction history</span>, it could manipulate the
-  <span>undo transaction history</span> in ways not described above,
-  and so forth. For example, it is possible to design a UA that
-  appears to have separate <span title="undo transaction history">undo
-  transaction histories</span> for each form control; similarly, it is
-  possible to design systems where the user has access to more undo
-  information than is present in the official (as described above)
-  <span>undo transaction history</span> (such as providing a
-  tree-based approach to document state). Such UI models should be
-  based upon the single <span>undo transaction history</span>
-  described in this section, however, such that to a script there is
-  no detectable difference.</p>
-
-  </div>
-
-<!--UNDO-->
-
-
-<!--FIND-->
-
   <h3>Text search APIs</h3> <!-- window.find() -->
 
   <p class="critical">This legacy API is not very interoperably
@@ -86175,9 +85790,6 @@
    transaction history</span>, restoring the associated state. If the
    <span>undo position</span> is at the end of the <span>undo
    transaction history</span>, the user agent must do nothing.
-<!--END w3c-html--><!--UNDO-->
-   See the <span>undo history</span>.
-<!--START w3c-html--><!--UNDO-->
    </dd>
    <dd><strong>Enabled When</strong>: The <span>undo position</span>
    is not at the end of the <span>undo transaction
@@ -86241,9 +85853,6 @@
    transaction history</span>, restoring the associated state. If the
    <span>undo position</span> is at the start of the <span>undo
    transaction history</span>, the user agent must do nothing.
-<!--END w3c-html--><!--UNDO-->
-   See the <span>undo history</span>.
-<!--START w3c-html--><!--UNDO-->
    </dd>
    <dd><strong>Enabled When</strong>: The <span>undo position</span>
    is not at the start of the <span>undo transaction
@@ -115613,14 +115222,7 @@
      <td> <code>Event</code>
      <td> Fired at the <code>Document</code> when it finishes parsing and again when all its subresources have finished loading
 
-<!--END w3c-html--><!--UNDO-->
     <tr>
-     <td> <code title="event-redo">redo</code>
-     <td> <code>UndoManagerEvent</code>
-     <td> Fired at the <code>Window</code> object when the user <span title="do-redo">goes forward in the undo transaction history</span>
-<!--START w3c-html--><!--UNDO-->
-
-    <tr>
      <td> <code title="event-reset">reset</code>
      <td> <code>Event</code>
      <td> Fired at a <code>form</code> element when it is <span title="concept-form-reset">reset</span>
@@ -115635,14 +115237,7 @@
      <td> <code>Event</code>
      <td> Fired at a <code>form</code> element when it is <span title="concept-form-submit">submitted</span>
 
-<!--END w3c-html--><!--UNDO-->
     <tr>
-     <td> <code title="event-undo">undo</code>
-     <td> <code>UndoManagerEvent</code>
-     <td> Fired at the <code>Window</code> object when the user <span title="do-undo">goes backward in the undo transaction history</span>
-<!--START w3c-html--><!--UNDO-->
-
-    <tr>
      <td> <code title="event-unload">unload</code>
      <td> <code>Event</code>
      <td> Fired at the <code>Window</code> object when the page is going away




More information about the Commit-Watchers mailing list