[whatwg] Feedback on UndoManager spec

Ryosuke Niwa rniwa at webkit.org
Wed Nov 30 13:00:30 PST 2011


I initially thought this is a good idea. But then it would make the
interface for automatic transaction and manual transaction different, and
it won't help us converging on 3 methods or boolean/string argument.

While I'd like to make sure everyone's happy with API (both developers and
implementors), I feel we've spent enough time on bike-shedding about this
and want to move forward with the spec.

Thus, using my editorial power, *I'd declare that we'll go with 3
methods*(apply, unapply, reapply) for both automatic transaction and
manual
transaction for now especially because Jonas said he's okay with it on
#whatwg. If we find out that authors end up emulating boolean/string
argument, then we can add the argument back in the future.

- Ryosuke

On Wed, Nov 30, 2011 at 12:29 PM, Ehsan Akhgari <ehsan at mozilla.com> wrote:

> As I mentioned on #whatwg today, I'm fine with this proposal.
>
> Cheers,
> Ehsan
>
> ----- Original Message -----
> > From: "Ryosuke Niwa" <rniwa at webkit.org>
> > To: "Jonas Sicking" <jonas at sicking.cc>, "Aryeh Gregor" <ayg at aryeh.name>,
> "Ojan Vafai" <ojan at chromium.org>, "whatwg"
> > <whatwg at lists.whatwg.org>, "Ehsan Akhgari" <ehsan at mozilla.com>
> > Sent: Wednesday, November 30, 2011 3:05:39 PM
> > Subject: Re: [whatwg] Feedback on UndoManager spec
> > I've talked about this with Jonas and Ehsan on #whatwg. Jonas made a
> > proposal that we can void this issue by renaming automatic
> > transaction's apply to "implement" (name TBD) without the argument so
> > that we can differentiate automatic transactions from manual
> > transactions. So we can do:
> >
> >
> >
> > editor.undoManager.transact({implement: function() { ... }});
> > editor.undoManager.transact({implement: function() { ... }, reapply:
> > function() {...}});
> >
> >
> > while still letting apply take an argument for manual transactions:
> >
> >
> >
> > editor.undoManager.transact({apply: function(type) { if (type) ...
> > else ... }});
> > editor.undoManager.transact({apply: function() { ... }, reapply:
> > function() {...}});
> >
> >
> > - Ryosuke
> >
> >
> > On Sat, Nov 26, 2011 at 4:41 PM, Ryosuke Niwa < rniwa at webkit.org >
> > wrote:
> >
> >
> > Calling apply, unapply, and reapply methods for automatic DOM
> > transaction poses a problem if we merge apply and reapply because now
> > whenever you define an automatic transaction, you'd have to check the
> > argument and bail out as needed:
> > editor.undoManager.transact({apply: function (isReapply) {
> > if (isReapply)
> > return;
> > ...
> > }, isAutomatic: true});
> >
> > as supposed to:
> >
> >
> >
> > editor.undoManager.transact({apply: function (isReapply) {
> > ...
> > }, isAutomatic: true});
> >
> >
> > This is strictly worse than having apply, unapply and reapply methods.
> > UA now makes a call to apply on reapply even though the author isn't
> > going to do anything, and the author has to manually check the
> > argument in very simple case where he/she wants the UA to take care of
> > everything.
> >
> >
> > - Ryosuke
> >
> >
> >
> >
> >
> > On Fri, Oct 28, 2011 at 1:31 PM, Jonas Sicking <jonas at sicking.cc>
> > wrote:
> >
> >
> >
> > On Fri, Oct 28, 2011 at 12:20 PM, Aryeh Gregor < ayg at aryeh.name >
> > wrote:
> > > On Fri, Oct 28, 2011 at 2:47 PM, Ojan Vafai < ojan at chromium.org >
> > > wrote:
> > >> On Fri, Oct 28, 2011 at 11:36 AM, Aryeh Gregor < ayg at aryeh.name >
> > >> wrote:
> > >>> It's a few extra characters. I really think the increase in
> > >>> clarity
> > >>> is worth it. Boolean parameters are much more confusing, and
> > >>> should
> > >>> be avoided wherever possible.
> > >>
> > >> +1. I'm also OK with the argument if it's a string.
> > >
> > > Jonas?
> >
> > I'm ok with the string argument too. But I'm also fine with keeping it
> > a boolean. I don't really see the risk that people will use the wrong
> > interpretation of the boolean and that that wrong impression would
> > spread through copy-past as being a very real risk.
> >
> > I agree boolean arguments can be a pain. But they are more of a pain
> > on the caller side than on the callee side.
> >
> > / Jonas
>
> --
> --
> Ehsan Akhgari
> ehsan at mozilla.com
> http://ehsanakhgari.org/
>



More information about the whatwg mailing list