- From: Ehsan Akhgari <ehsan@mozilla.com>
- Date: Tue, 02 Aug 2011 14:30:49 -0400
This is a very nice proposal; thanks for working on this, Ryosuke! I have a number of questions and concerns on it, and I would appreciate if you can comment on these: 1. The definition of @undoscope seems to not address the question of whether the document element should be an Undo Scope or not. 2. @undoscope seems to make it very hard to support the usecase of moving the undo scope from an element to another. (I'm not sure if that is a concern that we need to address at all, though). 3. In regard to "Should apply return a boolean value indicating whether it successfully applied or not?", answering yes means that we should make sure that we're going to be able to cleanly revert a transaction when it fails, right? Also, saying yes here means that we should decide what happens if that transaction is in a transaction group. ... all of which makes me want to say no. :-) 4. In regard to "Need to restore selection as well", is that something which we want all the time? Imagine an "indent" transaction which indents a paragraph by increasing its start margin, should it change the selection when it's undone? 5. I have serious doubts about the current specification of manual transactions. I don't know why we need to exclude them from group transactions, but honestly, I'm not sure why we need to have them at all. What use cases are we trying to address by manual transactions that would otherwise be impossible to address with managed transactions? 6. I think if we want to address selection saving/restoring, that part belongs to the "Mutation of DOM" section. We might also need to address some other editing related stuff in the DOM state, such as the keyboard layout language, selection, etc. 7. I'm not sure if we should leave the interaction of @contenteditable and @undoscope unaddressed. At the very least, we need to specify whether by default all contenteditable elements on a web page share the same undo manager or not. If I were to pick the default, I would suggest that by default they should all share the document's undo manager. 8. As a last comment, I think a better name for UndoManager is TransactionManager, since, well, that's what it really is! :-) Cheers, Ehsan
Received on Tuesday, 2 August 2011 11:30:49 UTC