hixie: Cleanup in Undo Manager section. (whatwg r3891)

hixie: Cleanup in Undo Manager section. (whatwg r3891)

http://dev.w3.org/cvsweb/html5/spec/Overview.html?r1=1.3053&r2=1.3054&f=h
http://html5.org/tools/web-apps-tracker?from=3890&to=3891

===================================================================
RCS file: /sources/public/html5/spec/Overview.html,v
retrieving revision 1.3053
retrieving revision 1.3054
diff -u -d -r1.3053 -r1.3054
--- Overview.html 18 Sep 2009 07:04:17 -0000 1.3053
+++ Overview.html 18 Sep 2009 07:41:46 -0000 1.3054
@@ -977,20 +977,19 @@
      <li><a href="#security-risks-in-the-drag-and-drop-model"><span class="secno">7.9.7 </span>Security risks in the drag-and-drop model</a></ol></li>
    <li><a href="#undo"><span class="secno">7.10 </span>Undo history</a>
     <ol>
-     <li><a href="#introduction-5"><span class="secno">7.10.1 </span>Introduction</a></li>
-     <li><a href="#definitions-2"><span class="secno">7.10.2 </span>Definitions</a></li>
-     <li><a href="#the-undomanager-interface"><span class="secno">7.10.3 </span>The <code>UndoManager</code> interface</a></li>
-     <li><a href="#undo:-moving-back-in-the-undo-transaction-history"><span class="secno">7.10.4 </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">7.10.5 </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">7.10.6 </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">7.10.7 </span>Implementation notes</a></ol></li>
+     <li><a href="#definitions-2"><span class="secno">7.10.1 </span>Definitions</a></li>
+     <li><a href="#the-undomanager-interface"><span class="secno">7.10.2 </span>The <code>UndoManager</code> interface</a></li>
+     <li><a href="#undo:-moving-back-in-the-undo-transaction-history"><span class="secno">7.10.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">7.10.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">7.10.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">7.10.6 </span>Implementation notes</a></ol></li>
    <li><a href="#editing-apis"><span class="secno">7.11 </span>Editing APIs</a></ol></li>
  <li><a href="#comms"><span class="secno">8 </span>Communication</a>
   <ol>
    <li><a href="#event-definitions"><span class="secno">8.1 </span>Event definitions</a></li>
    <li><a href="#crossDocumentMessages"><span class="secno">8.2 </span>Cross-document messaging</a>
     <ol>
-     <li><a href="#introduction-6"><span class="secno">8.2.1 </span>Introduction</a></li>
+     <li><a href="#introduction-5"><span class="secno">8.2.1 </span>Introduction</a></li>
      <li><a href="#security-4"><span class="secno">8.2.2 </span>Security</a>
       <ol>
        <li><a href="#authors"><span class="secno">8.2.2.1 </span>Authors</a></li>
@@ -999,7 +998,7 @@
      <li><a href="#posting-messages-with-message-ports"><span class="secno">8.2.4 </span>Posting messages with message ports</a></ol></li>
    <li><a href="#channel-messaging"><span class="secno">8.3 </span>Channel messaging</a>
     <ol>
-     <li><a href="#introduction-7"><span class="secno">8.3.1 </span>Introduction</a></li>
+     <li><a href="#introduction-6"><span class="secno">8.3.1 </span>Introduction</a></li>
      <li><a href="#message-channels"><span class="secno">8.3.2 </span>Message channels</a></li>
      <li><a href="#message-ports"><span class="secno">8.3.3 </span>Message ports</a>
       <ol>
@@ -1128,10 +1127,10 @@
    <li><a href="#parsing-xhtml-fragments"><span class="secno">10.4 </span>Parsing XHTML fragments</a></ol></li>
  <li><a href="#rendering"><span class="secno">11 </span>Rendering</a>
   <ol>
-   <li><a href="#introduction-8"><span class="secno">11.1 </span>Introduction</a></li>
+   <li><a href="#introduction-7"><span class="secno">11.1 </span>Introduction</a></li>
    <li><a href="#the-css-user-agent-style-sheet-and-presentational-hints"><span class="secno">11.2 </span>The CSS user agent style sheet and presentational hints</a>
     <ol>
-     <li><a href="#introduction-9"><span class="secno">11.2.1 </span>Introduction</a></li>
+     <li><a href="#introduction-8"><span class="secno">11.2.1 </span>Introduction</a></li>
      <li><a href="#display-types"><span class="secno">11.2.2 </span>Display types</a></li>
      <li><a href="#margins-and-padding"><span class="secno">11.2.3 </span>Margins and padding</a></li>
      <li><a href="#alignment"><span class="secno">11.2.4 </span>Alignment</a></li>
@@ -1149,7 +1148,7 @@
      <li><a href="#tool-bars-0"><span class="secno">11.3.5 </span>Tool bars</a></ol></li>
    <li><a href="#bindings"><span class="secno">11.4 </span>Bindings</a>
     <ol>
-     <li><a href="#introduction-10"><span class="secno">11.4.1 </span>Introduction</a></li>
+     <li><a href="#introduction-9"><span class="secno">11.4.1 </span>Introduction</a></li>
      <li><a href="#the-button-element-0"><span class="secno">11.4.2 </span>The <code>button</code> element</a></li>
      <li><a href="#the-details-element-0"><span class="secno">11.4.3 </span>The <code>details</code> element</a></li>
      <li><a href="#the-input-element-as-a-text-entry-widget"><span class="secno">11.4.4 </span>The <code>input</code> element as a text entry widget</a></li>
@@ -53270,15 +53269,15 @@
   data to be dragged from sensitive sources and dropped into hostile
   documents without the user's consent.</p>
 
-  </div><h3 id="undo"><span class="secno">7.10 </span><dfn>Undo history</dfn></h3><p class="XXX annotation"><b>Status: </b><i>First draft</i><p class="XXX">There has got to be a better way of doing this, surely.<h4 id="introduction-5"><span class="secno">7.10.1 </span>Introduction</h4><p class="XXX">...<div class="impl">
+  </div><h3 id="undo"><span class="secno">7.10 </span><dfn>Undo history</dfn></h3><p class="XXX annotation"><b>Status: </b><i>First draft</i><div class="impl">
 
-  <h4 id="definitions-2"><span class="secno">7.10.2 </span>Definitions</h4>
+  <h4 id="definitions-2"><span class="secno">7.10.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="#htmldocument">HTMLDocument</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 type: <a href="#dom-changes">DOM changes</a> and
+  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
@@ -53288,14 +53287,13 @@
   <ul><li>Changes to the content attributes of an <code>Element</code>
    node.</li>
 
-   <li>Changes to the IDL attributes of a <code>Node</code>.</li> <!--
-   XXX uh, these change on their own, so clearly this isn't going to
-   fly. Which IDL attributes, exactly? -->
-
    <li>Changes to the DOM hierarchy of nodes that are descendants of
    the <code><a href="#htmldocument">HTMLDocument</a></code> object (<code>parentNode</code>,
    <code>childNodes</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
@@ -53310,31 +53308,7 @@
   interactions with server-side state, or in the implementation of a
   drawing tool).</p>
 
-  </div><h4 id="the-undomanager-interface"><span class="secno">7.10.3 </span>The <code><a href="#undomanager">UndoManager</a></code> interface</h4><div class="impl">
-
-  <div class="XXX">
-
-   <p>This API sucks. Seriously. It's a terrible API. Really bad. I
-   hate it. Here are the requirements:</p>
-
-   <ul><li>Has to cope with cases where the server has undo state already
-    when the page is loaded, that can be stuffed into the undo buffer
-    onload.</li>
-
-    <li>Has to support undo/redo.</li>
-
-    <li>Has to cope with the "undo" action being "contact the server
-    and tell it to undo", rather than it being the opposite of the
-    "redo" action.</li>
-
-    <li>Has to cope with some undo states expiring from the undo
-    history (e.g. server can only remember one undelete action) but
-    other states not expiring (e.g. client can undo arbitrary amounts
-    of local edits).</li>
-
-   </ul></div>
-
-  </div><p>To manage <a href="#undo-object">undo object</a> entries in the <a href="#undo-transaction-history">undo
+  </div><h4 id="the-undomanager-interface"><span class="secno">7.10.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:<pre class="idl">interface <dfn id="undomanager">UndoManager</dfn> {
   readonly attribute unsigned long <a href="#dom-undomanager-length" title="dom-UndoManager-length">length</a>;
@@ -53430,7 +53404,7 @@
   case there are no <span>supported indexed properties</span>.</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>.</p> <!-- XXX out of range handling? -->
+  transaction history</a>, if there is one, or null otherwise.</p>
 
   <p>The <a href="#undo-transaction-history">undo transaction history</a> has a <dfn id="undo-position" title="undo
   position">current position</dfn>. This is the position between two
@@ -53472,15 +53446,6 @@
   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 class="XXX">We could fire events when someone adds
-  something to the undo history -- one event per undo object entry
-  before the position (or after, during redo addition), allowing the
-  script to decide if that entry should remain or not. Or
-  something. Would make it potentially easier to expire server-held
-  state when the server limitations come into play.</p>
-
-  <!-- XXX note on expiring undo in case server can only do one level undo -->
-
   <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
@@ -53499,13 +53464,9 @@
   <a href="#dom-changes">DOM changes</a> entries or <a href="#undo-object">undo object</a>
   entries.</p>
 
-  <p class="XXX">Another idea is to have a way for scripts to
-  say "startBatchingDOMChangesForUndo()" and after that the changes to
-  the DOM go in as if the user had done them.</p>
-
   </div><div class="impl">
 
-  <h4 id="undo:-moving-back-in-the-undo-transaction-history"><span class="secno">7.10.4 </span><dfn title="do-undo">Undo: moving back in the undo transaction history</dfn></h4>
+  <h4 id="undo:-moving-back-in-the-undo-transaction-history"><span class="secno">7.10.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
@@ -53542,7 +53503,7 @@
   command to undo his undo.</p>
 
 
-  <h4 id="redo:-moving-forward-in-the-undo-transaction-history"><span class="secno">7.10.5 </span><dfn title="do-redo">Redo: moving forward in the undo transaction history</dfn></h4>
+  <h4 id="redo:-moving-forward-in-the-undo-transaction-history"><span class="secno">7.10.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
@@ -53576,7 +53537,7 @@
   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">7.10.6 </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> : Event {
+  </div><h4 id="the-undomanagerevent-interface-and-the-undo-and-redo-events"><span class="secno">7.10.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> : Event {
   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>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in any dataArg);
   void <span title="dom-UndoManagerEvent-initUndoManagerEventNS">initUndoManagerEventNS</span>(in DOMString namespaceURIArg, in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in any dataArg);
@@ -53606,7 +53567,7 @@
 
   </div><div class="impl">
 
-  <h4 id="implementation-notes"><span class="secno">7.10.7 </span>Implementation notes</h4>
+  <h4 id="implementation-notes"><span class="secno">7.10.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
@@ -54173,7 +54134,7 @@
   <p>The <a href="#task-source">task source</a> for the <a href="#concept-task" title="concept-task">tasks</a> in <a href="#crossDocumentMessages">cross-document
   messaging</a> is the <dfn id="posted-message-task-source">posted message task source</dfn>.</p>
 
-  </div><h4 id="introduction-6"><span class="secno">8.2.1 </span>Introduction</h4><p><i>This section is non-normative.</i><div class="example">
+  </div><h4 id="introduction-5"><span class="secno">8.2.1 </span>Introduction</h4><p><i>This section is non-normative.</i><div class="example">
 
    <p>For example, if document A contains an <code><a href="#the-iframe-element">iframe</a></code>
    element that contains document B, and script in document A calls
@@ -54445,7 +54406,7 @@
   sections be kept separate so that implementors can avoid getting
   confused with the 'port' step. -->
 
-  </div><h3 id="channel-messaging"><span class="secno">8.3 </span><dfn>Channel messaging</dfn></h3><p class="XXX annotation"><b>Status: </b><i>Last call for comments</i><h4 id="introduction-7"><span class="secno">8.3.1 </span>Introduction</h4><p><i>This section is non-normative.</i><p class="XXX">An introduction to the channel and port
+  </div><h3 id="channel-messaging"><span class="secno">8.3 </span><dfn>Channel messaging</dfn></h3><p class="XXX annotation"><b>Status: </b><i>Last call for comments</i><h4 id="introduction-6"><span class="secno">8.3.1 </span>Introduction</h4><p><i>This section is non-normative.</i><p class="XXX">An introduction to the channel and port
   APIs.<h4 id="message-channels"><span class="secno">8.3.2 </span>Message channels</h4><pre class="idl">[<a href="#dom-messagechannel" title="dom-MessageChannel">Constructor</a>]
 interface <dfn id="messagechannel">MessageChannel</dfn> {
   readonly attribute <a href="#messageport">MessagePort</a> <a href="#dom-channel-port1" title="dom-channel-port1">port1</a>;
@@ -64776,7 +64737,7 @@
   lead to this experience.</i></p>
 
 
-  <h3 id="introduction-8"><span class="secno">11.1 </span>Introduction</h3>
+  <h3 id="introduction-7"><span class="secno">11.1 </span>Introduction</h3>
 
   <p>In general, user agents are expected to support CSS, and many of
   the suggestions in this section are expressed in CSS terms. User
@@ -64811,7 +64772,7 @@
 
   <h3 id="the-css-user-agent-style-sheet-and-presentational-hints"><span class="secno">11.2 </span>The CSS user agent style sheet and presentational hints</h3>
 
-  <h4 id="introduction-9"><span class="secno">11.2.1 </span>Introduction</h4>
+  <h4 id="introduction-8"><span class="secno">11.2.1 </span>Introduction</h4>
 
   <p>The CSS rules given in these subsections are, unless otherwise
   specified, expected to be used as part of the user-agent level style
@@ -65941,7 +65902,7 @@
 
   <h3 id="bindings"><span class="secno">11.4 </span>Bindings</h3>
 
-  <h4 id="introduction-10"><span class="secno">11.4.1 </span>Introduction</h4>
+  <h4 id="introduction-9"><span class="secno">11.4.1 </span>Introduction</h4>
 
   <p>A number of elements have their rendering defined in terms of the
   'binding' property. <a href="#refsBECSS">[BECSS]</a></p>

Received on Friday, 18 September 2009 07:42:59 UTC