- From: Hayato Ito <hayato@chromium.org>
- Date: Wed, 5 Dec 2012 20:37:27 +0900
- To: Anne van Kesteren <annevk@annevk.nl>
- Cc: whatwg <whatwg@lists.whatwg.org>, Eric Seidel <eric@webkit.org>, Ian Hickson <ian@hixie.ch>, Adam Barth <w3c@adambarth.com>, Ojan Vafai <ojan@chromium.org>
On Wed, Dec 5, 2012 at 8:16 PM, Anne van Kesteren <annevk@annevk.nl> wrote: > On Wed, Dec 5, 2012 at 11:54 AM, Hayato Ito <hayato@chromium.org> wrote: >> Shadow DOM's event retargeting in WebKit uses one Event object for >> every shadow trees. >> When crossing shadow boundaries, an Event object's target (or >> relatedTarget) is set to the appropriate one, but the event object >> itself is reused. > > Interesting. Does Shadow DOM have a concept of events that are private > to the shadow tree or does everything leak? Some kinds of events should be always stopped at the shadow boundaries. See http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#events-that-are-always-stopped > > Also, if you change the target you need to adjust mouse coordinates > and such as well. How does that work? The Shadow DOM spec does not require adjusting mouse coodinates. I think every shadow trees in one document *share* the same x-y coodinates. > Does that also happens if I > dispatch a synthetic event using dispatchEvent()? That should happen for a synthetic event. I am working on that at https://bugs.webkit.org/show_bug.cgi?id=102681. > > (Not having thought much about it this seems especially hairy for > elements from the ordinary node tree that interleaved via a <content> > element.) > > But if Shadow DOM shares the Event object we should probably introduce > a flag (e.g. a reuse Event object flag) next to the cross-boundary > event parent pointer. > > >> There, I created an Event object per frame. You can see the design in >> the ChangeLog of the patch. Please don't take it seriously. It should >> be considered as just an experiment at this stage. >> https://bugs.webkit.org/attachment.cgi?id=168866&action=review > > The design Ian and I thought out is the same as far as calculating the > dispatch tree goes and the same as far as what the result would be of > invoking preventDefault() and such. > > What seems different is that Ian and I envisioned this to work for all > events. And what seems unclear is what if anything is different > between the clones of the Event object. I don't have a clear idea about what should be cloned when crossing boundaries. That's unclear for me. > > > -- > http://annevankesteren.nl/ -- Hayato
Received on Wednesday, 5 December 2012 11:38:52 UTC