| Index: third_party/WebKit/Source/core/dom/SelectorQuery.h
|
| diff --git a/third_party/WebKit/Source/core/dom/SelectorQuery.h b/third_party/WebKit/Source/core/dom/SelectorQuery.h
|
| index 172fecdda138ec62d3e9558a6e082c906a1ca356..7c6ea13c45c6d6e520c82aac5c0d1b15e21fb0b5 100644
|
| --- a/third_party/WebKit/Source/core/dom/SelectorQuery.h
|
| +++ b/third_party/WebKit/Source/core/dom/SelectorQuery.h
|
| @@ -35,71 +35,29 @@
|
|
|
| namespace blink {
|
|
|
| -class CSSSelector;
|
| class ContainerNode;
|
| class Document;
|
| class Element;
|
| class ExceptionState;
|
| +class SelectorMatcher;
|
| template <typename NodeType> class StaticNodeTypeList;
|
| typedef StaticNodeTypeList<Element> StaticElementList;
|
|
|
| -class SelectorDataList {
|
| - DISALLOW_NEW();
|
| -public:
|
| - void initialize(const CSSSelectorList&);
|
| - bool matches(Element&) const;
|
| - Element* closest(Element&) const;
|
| - PassRefPtrWillBeRawPtr<StaticElementList> queryAll(ContainerNode& rootNode) const;
|
| - PassRefPtrWillBeRawPtr<Element> queryFirst(ContainerNode& rootNode) const;
|
| -
|
| -private:
|
| - bool canUseFastQuery(const ContainerNode& rootNode) const;
|
| - bool selectorMatches(const CSSSelector&, Element&, const ContainerNode&) const;
|
| -
|
| - template <typename SelectorQueryTrait>
|
| - void collectElementsByClassName(ContainerNode& rootNode, const AtomicString& className, typename SelectorQueryTrait::OutputType&) const;
|
| - template <typename SelectorQueryTrait>
|
| - void collectElementsByTagName(ContainerNode& rootNode, const QualifiedName& tagName, typename SelectorQueryTrait::OutputType&) const;
|
| -
|
| - template <typename SelectorQueryTrait>
|
| - void findTraverseRootsAndExecute(ContainerNode& rootNode, typename SelectorQueryTrait::OutputType&) const;
|
| -
|
| - enum MatchTraverseRootState { DoesNotMatchTraverseRoots, MatchesTraverseRoots };
|
| - template <typename SelectorQueryTrait>
|
| - void executeForTraverseRoot(const CSSSelector&, ContainerNode* traverseRoot, MatchTraverseRootState, ContainerNode& rootNode, typename SelectorQueryTrait::OutputType&) const;
|
| - template <typename SelectorQueryTrait, typename SimpleElementListType>
|
| - void executeForTraverseRoots(const CSSSelector&, SimpleElementListType& traverseRoots, MatchTraverseRootState, ContainerNode& rootNode, typename SelectorQueryTrait::OutputType&) const;
|
| -
|
| - template <typename SelectorQueryTrait>
|
| - bool selectorListMatches(ContainerNode& rootNode, Element&, typename SelectorQueryTrait::OutputType&) const;
|
| - template <typename SelectorQueryTrait>
|
| - void executeSlow(ContainerNode& rootNode, typename SelectorQueryTrait::OutputType&) const;
|
| - template <typename SelectorQueryTrait>
|
| - void executeSlowTraversingShadowTree(ContainerNode& rootNode, typename SelectorQueryTrait::OutputType&) const;
|
| - template <typename SelectorQueryTrait>
|
| - void execute(ContainerNode& rootNode, typename SelectorQueryTrait::OutputType&) const;
|
| - const CSSSelector* selectorForIdLookup(const CSSSelector&) const;
|
| -
|
| - Vector<const CSSSelector*> m_selectors;
|
| - bool m_usesDeepCombinatorOrShadowPseudo : 1;
|
| - bool m_needsUpdatedDistribution : 1;
|
| -};
|
| -
|
| class SelectorQuery {
|
| WTF_MAKE_NONCOPYABLE(SelectorQuery);
|
| USING_FAST_MALLOC(SelectorQuery);
|
| public:
|
| static PassOwnPtr<SelectorQuery> adopt(CSSSelectorList&);
|
| + ~SelectorQuery();
|
|
|
| bool matches(Element&) const;
|
| Element* closest(Element&) const;
|
| PassRefPtrWillBeRawPtr<StaticElementList> queryAll(ContainerNode& rootNode) const;
|
| - PassRefPtrWillBeRawPtr<Element> queryFirst(ContainerNode& rootNode) const;
|
| + Element* queryFirst(ContainerNode& rootNode) const;
|
| private:
|
| explicit SelectorQuery(CSSSelectorList&);
|
|
|
| - SelectorDataList m_selectors;
|
| - CSSSelectorList m_selectorList;
|
| + OwnPtr<SelectorMatcher> m_matcher;
|
| };
|
|
|
| class SelectorQueryCache {
|
|
|