RESOLVED FIXED 162091
Text nodes assigned to a linked slot are not clickable
https://bugs.webkit.org/show_bug.cgi?id=162091
Summary Text nodes assigned to a linked slot are not clickable
Jan Miksovsky
Reported 2016-09-16 14:27:25 PDT
See http://jsbin.com/qinaxo/edit?html,output This shows a link in a Shadow DOM subtree. Half the content is directly inside the anchor element, the other half of the content is assigned via a `<slot>` element. Expect: The entire link should be clickable. Actual: The content assigned to the `<slot>` element is not clickable.
Attachments
Fixes the bug (7.00 KB, patch)
2016-09-28 17:48 PDT, Ryosuke Niwa
no flags
Fixes the bug (7.00 KB, patch)
2016-09-28 18:52 PDT, Ryosuke Niwa
koivisto: review+
Radar WebKit Bug Importer
Comment 1 2016-09-20 02:12:36 PDT
Ryosuke Niwa
Comment 2 2016-09-28 17:48:15 PDT
Created attachment 290153 [details] Fixes the bug
Ryosuke Niwa
Comment 3 2016-09-28 18:52:32 PDT
Created attachment 290159 [details] Fixes the bug
Antti Koivisto
Comment 4 2016-09-29 02:06:34 PDT
Comment on attachment 290159 [details] Fixes the bug View in context: https://bugs.webkit.org/attachment.cgi?id=290159&action=review > Source/WebCore/dom/Node.cpp:1845 > - for (Node* node = this; node; node = node->parentOrShadowHostNode()) { > + for (Node* node = this; node; node = node->parentInComposedTree()) { It would be more stylish to use ComposedTreeAncestorIterator. The current composedTreeAncestors() starts from the parent though so dealing with the OrSelf part here would require refactoring a bit (or adding new composedTreeLineage() helper that starts from the current node). I think we should eventually get rid of all these random helpers. On the other hand just switching parentOrShadowHostNode->parentInComposedTree is a good way to make progress fast.
Ryosuke Niwa
Comment 5 2016-09-29 12:42:11 PDT
Comment on attachment 290159 [details] Fixes the bug View in context: https://bugs.webkit.org/attachment.cgi?id=290159&action=review >> Source/WebCore/dom/Node.cpp:1845 >> + for (Node* node = this; node; node = node->parentInComposedTree()) { > > It would be more stylish to use ComposedTreeAncestorIterator. The current composedTreeAncestors() starts from the parent though so dealing with the OrSelf part here would require refactoring a bit (or adding new composedTreeLineage() helper that starts from the current node). > > I think we should eventually get rid of all these random helpers. On the other hand just switching parentOrShadowHostNode->parentInComposedTree is a good way to make progress fast. I'd keep parentInComposedTree for now, and we can do this in a separate patch if we'd so wished.
Ryosuke Niwa
Comment 6 2016-09-29 12:52:18 PDT
Note You need to log in before you can comment on or make changes to this bug.