[Webkit-unassigned] [Bug 75302] ShadowContentElement should be able to use query.
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Thu Jan 5 20:01:55 PST 2012
https://bugs.webkit.org/show_bug.cgi?id=75302
--- Comment #11 from Dominic Cooney <dominicc at chromium.org> 2012-01-05 20:01:55 PST ---
(From update of attachment 121234)
View in context: https://bugs.webkit.org/attachment.cgi?id=121234&action=review
> Source/WebCore/dom/ShadowContentElement.cpp:81
> +bool ShadowContentElement::matchesQuery(const ShadowContentSelectorQuery& query, Node* node)
This factoring looks wrong to me:
• The responsibility for defining whether a query matches is split between ShadowContentElement::matchesQuery method and ShadowContentSelectorQuery::matches.
• The ShadowContentElement defines the query, but stores it in an string; then ShadowInclusionsSelector::select is responsible for parsing the query. It doesn’t seem right. Why is the representation of the query split this way?
> Source/WebCore/dom/ShadowContentElement.h:53
> + void setSelect(const String& select) { m_select = select; }
Since the content element doesn’t handle updates, maybe it is safer to remove this method for now?
> Source/WebCore/dom/ShadowContentSelectorQuery.cpp:43
> + parser.parseSelector(querySelector, document, m_selectorList);
This allows selectors not permitted by the Shadow DOM spec, right? If so you definitely need a FIXME here to tighten this up later.
> Source/WebCore/dom/ShadowContentSelectorQuery.cpp:51
> + if (!node)
This is one indication of why it is bad to split matching across two places… this test is now duplicated.
> Source/WebCore/dom/ShadowContentSelectorQuery.cpp:55
> + fprintf(stderr, "selectorCount = %d\n", (int) selectorCount);
Remove logging.
> Source/WebCore/dom/ShadowContentSelectorQuery.cpp:72
> + // return m_selectorChecker.checkSelector(selectorData.selector, element, selectorData.isFastCheckable);
??
> Source/WebCore/dom/ShadowContentSelectorQuery.h:61
> + CSSSelector* selector;
m_ for members
> LayoutTests/fast/dom/shadow/shadow-contents-select-expected.txt:1
> +PASS
This will be hard to debug when it fails because the output is so terse. Consider using a reftest?
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list