[whatwg] Fixing undo on the Web - UndoManager and Transaction

Ryosuke Niwa rniwa at webkit.org
Thu Dec 1 02:49:48 PST 2011

More updates! http://rniwa.com/editing/undomanager.html

Summary of changes on Dec 1st, 2011:

   - UndoManager's item(n) now always returns an array
   - Changes to DOMTransaction
      - apply no longer has isReapply argument.
      - apply, reapply, unapply on DOMTransaction has been renamed to
      execute, undo, and redo.
      - execute for automatic transaction has been renamed to
      executeAutomatic, and isAutomatic attribute has been removed
   - Automatic transaction now optionally restores selection
   - The user agent that doesn't support displaying multiple labels per
   entry in the undo transaction history is now required to use the first
   transaction's label.
   - Reapplication of DOM changes are now redefined precisely.

- Ryosuke

On Tue, Nov 29, 2011 at 10:24 PM, Ryosuke Niwa <rniwa at webkit.org> wrote:

> Hi all,
> I've updated the draft: http://rniwa.com/editing/undomanager.html to
> reflect the discussions so far.
> Summary of changes:
>    - Automatic transaction now calls unapply and reapply methods (note:
>    this is problematic with apply(isReapply) because now authors have to check
>    the argument even when reapply is not needed; consequently, I didn't change
>    isReapply to return a DOMString since it'll have the same issue; we need
>    more discussion here).
>    - value IDL attributes of input and textarea elements are now
>    considered to a part of DOM states.
>    - Updated TransactionEvent section
>       - initTransactionEvent is replaced by a constructor
>       - TransactionEvent is renamed to DOMTransactionEvent
>       - Added undo and redo events back
>    - UndoManager's undo() and redo() have been rewritten
>    - Precise algorithms to revert DOM changes have been added to section
>    3.1.1.
>       - Automatic DOM transaction (section 3.2) has been rewritten and
>       re-defined in terms of reverting DOM changes.
>       - Section 3.2.1.
>       "Undoability and Redoability of automatic DOM transactions" has been removed
>       - The concept of "highest node affecting an automatic DOM
>       transaction" has been abolished since undoability and redoabillity are
>       now defined precisely.
> - Ryosuke

More information about the whatwg mailing list