[Bug 23887] [Shadow] Change the order of insertion points which are involved in a re-distribution in event path

https://www.w3.org/Bugs/Public/show_bug.cgi?id=23887

--- Comment #191 from Hayato Ito <hayato@chromium.org> ---
(In reply to Koji Ishii from comment #189)
> Hayato's algorithm and its test results are here:
> https://codereview.chromium.org/906123002/
> 
> * It changes the result for the spec example to:
> #D, #C, #M, #L, #R, #Q, #P, #O, #N, #K, #J, #I, #H, #G, #U, #T, #S, #F, #X,
> #W, #V, #E, #B, #A

This result is expected one for me. I'm glad to see this result.

As for the position of #E, the short answer is:

  If we remove an arrow from B (the shadow host) to V (the youngest shadow
root), then add a new arrow from E (the older shadow root) to V (the younger
shadow root) in Fig 5 in the spec, [1], this result might look natural.

The long answer is:
  Let me prepare a document how we should view multiple shadow roots. I briefly
explained it in comment #187, however, I need to explain further.


You might notice that the modified Fig 5 is similar to a Fig 1, [2], which
explains a tree of trees. Ignore dotted arrows there. Just focus the non-dotted
arrows.
There, we can view the fig as follows:

- "shadow root in C *hosts* D"
- "shadow root in D *hosts* E"

Yes, we can remove "Multiple" from our head.

If an element A hosts multiple shadow roots, [B, C, D], where B is the oldest
shadow root and D is the youngest shadow root, we can view this "Multiple
shadow roots" as follows:

- An element, A,  hosts a shadow root, B
- The shadow root, B, *hosts* another shadow root, C.
- The shadow root, C, *hosts* another shadow root, D.

I found that if we can view multiple shadow roots in this way, we could make a
lot of things much cleaner and simpler. That's the motivation why I defined a
tree of trees as the current spec defines.

I'll update this thread when I write a document, which wouldn't be long one, I
guess.


[1] Shadow DOM spec Fig. 5:
http://w3c.github.io/webcomponents/spec/shadow/index.htmlfig-an-example-tree-of-trees.-nodes-which-are-not-involved-in-the-example-event-path-which-is-explained-later-are-omitted.x

[2] Shadow DOM spec Fig. 1:
http://w3c.github.io/webcomponents/spec/shadow/index.html#fig-a-tree-of-trees.x

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Monday, 20 April 2015 21:48:58 UTC