| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2011 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 141 | 141 |
| 142 inline bool SelectorDataList::selectorMatches(const SelectorData& selectorData,
Element* element, const Node* rootNode) const | 142 inline bool SelectorDataList::selectorMatches(const SelectorData& selectorData,
Element* element, const Node* rootNode) const |
| 143 { | 143 { |
| 144 if (selectorData.isFastCheckable && !element->isSVGElement()) { | 144 if (selectorData.isFastCheckable && !element->isSVGElement()) { |
| 145 SelectorCheckerFastPath selectorCheckerFastPath(selectorData.selector, e
lement); | 145 SelectorCheckerFastPath selectorCheckerFastPath(selectorData.selector, e
lement); |
| 146 if (!selectorCheckerFastPath.matchesRightmostSelector(SelectorChecker::V
isitedMatchDisabled)) | 146 if (!selectorCheckerFastPath.matchesRightmostSelector(SelectorChecker::V
isitedMatchDisabled)) |
| 147 return false; | 147 return false; |
| 148 return selectorCheckerFastPath.matches(); | 148 return selectorCheckerFastPath.matches(); |
| 149 } | 149 } |
| 150 | 150 |
| 151 SelectorChecker selectorChecker(&element->document(), SelectorChecker::Query
ingRules); | 151 SelectorChecker selectorChecker(element->document(), SelectorChecker::Queryi
ngRules); |
| 152 SelectorChecker::SelectorCheckingContext selectorCheckingContext(selectorDat
a.selector, element, SelectorChecker::VisitedMatchDisabled); | 152 SelectorChecker::SelectorCheckingContext selectorCheckingContext(selectorDat
a.selector, element, SelectorChecker::VisitedMatchDisabled); |
| 153 selectorCheckingContext.behaviorAtBoundary = SelectorChecker::StaysWithinTre
eScope; | 153 selectorCheckingContext.behaviorAtBoundary = SelectorChecker::StaysWithinTre
eScope; |
| 154 selectorCheckingContext.scope = !rootNode->isDocumentNode() && rootNode->isC
ontainerNode() ? toContainerNode(rootNode) : 0; | 154 selectorCheckingContext.scope = !rootNode->isDocumentNode() && rootNode->isC
ontainerNode() ? toContainerNode(rootNode) : 0; |
| 155 PseudoId ignoreDynamicPseudo = NOPSEUDO; | 155 PseudoId ignoreDynamicPseudo = NOPSEUDO; |
| 156 return selectorChecker.match(selectorCheckingContext, ignoreDynamicPseudo, D
OMSiblingTraversalStrategy()) == SelectorChecker::SelectorMatches; | 156 return selectorChecker.match(selectorCheckingContext, ignoreDynamicPseudo, D
OMSiblingTraversalStrategy()) == SelectorChecker::SelectorMatches; |
| 157 } | 157 } |
| 158 | 158 |
| 159 bool SelectorDataList::matches(Element* targetElement) const | 159 bool SelectorDataList::matches(Element* targetElement) const |
| 160 { | 160 { |
| 161 ASSERT(targetElement); | 161 ASSERT(targetElement); |
| (...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 510 m_entries.add(selectors, selectorQuery.release()); | 510 m_entries.add(selectors, selectorQuery.release()); |
| 511 return rawSelectorQuery; | 511 return rawSelectorQuery; |
| 512 } | 512 } |
| 513 | 513 |
| 514 void SelectorQueryCache::invalidate() | 514 void SelectorQueryCache::invalidate() |
| 515 { | 515 { |
| 516 m_entries.clear(); | 516 m_entries.clear(); |
| 517 } | 517 } |
| 518 | 518 |
| 519 } | 519 } |
| OLD | NEW |