W3C home > Mailing lists > Public > public-webapps@w3.org > July to September 2012

Re: [UndoManager] Disallowing live UndoManager on detached nodes

From: Ryosuke Niwa <rniwa@webkit.org>
Date: Tue, 21 Aug 2012 14:00:29 -0700
Message-ID: <CABNRm61EG95NY5n34OdMkXJPqpWcS9dv5orFv43GJQKkDbxaiw@mail.gmail.com>
To: public-webapps <public-webapps@w3.org>
Cc: Kentaro Hara <haraken@chromium.org>, Sukolsak Sakshuwong <sukolsak@google.com>, Adam Barth <abarth@webkit.org>, Maciej Stachowiak <mjs@apple.com>, Ehsan Akhgari <ehsan@mozilla.com>, Jonas Sicking <jonas@sicking.cc>, Olli Pettay <Olli.Pettay@helsinki.fi>, Ojan Vafai <ojan@chromium.org>
Maciej, Ojan, and I had a further conversion about this matter off the
list, and we've concluded that we should drop the support for undoscope
content attribute altogether. So we're just going to do that and let
authors use iframe to have multiple undo managers.

I can keep it around in the spec if other browser vendors are so inclined,
but I'm somewhat skeptical that we can get the required two independent
implementations given how much trouble we've had.

- Ryosuke

On Mon, Aug 20, 2012 at 9:52 PM, Ryosuke Niwa <rniwa@webkit.org> wrote:

> Greetings all,
>
> We've been implementing undo manager in WebKit, and we've found out that
> allowing live undo manager on a detached undo scope host is a terrible idea.
>
> e.g. say you have a subtree like follows:
>
>    - A
>       - B
>          - D
>       - C
>
> where A is the undo scope host. If we then detach B from A, and then
> insert A under D, all automatic transactions in A's undo manager are broken
> and may create a cyclic reference graph because nodes touched in automatic
> transactions need to be kept alive for undo/redo.
>
> If there is no objection, I'm changing the spec to disallow live undo
> manager on detached nodes so that scripts can't move the host around inside
> a document or between documents; i.e. when a undo scope host is removed
> from its parent, its undo manager must be *disconnected* and a new undo
> manager be created for the node.
>
> Alternatively, we can turn all automatic transactions in the undo manager
> into no-ops but I'd prefer disconnecting the undo manager altogether to
> make the behavior simple.
>
> Best,
> Ryosuke Niwa
> Software Engineer
> Google Inc.
>
>
>
Received on Tuesday, 21 August 2012 21:01:20 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 18:49:54 GMT