| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011, 2013 Apple Inc. All rights reserved. | 2 * Copyright (C) 2011, 2013 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2014 Samsung Electronics. All rights reserved. | 3 * Copyright (C) 2014 Samsung Electronics. All rights reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * | 8 * |
| 9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 129 { | 129 { |
| 130 unsigned selectorCount = m_selectors.size(); | 130 unsigned selectorCount = m_selectors.size(); |
| 131 for (unsigned i = 0; i < selectorCount; ++i) { | 131 for (unsigned i = 0; i < selectorCount; ++i) { |
| 132 if (selectorMatches(*m_selectors[i], targetElement, targetElement)) | 132 if (selectorMatches(*m_selectors[i], targetElement, targetElement)) |
| 133 return true; | 133 return true; |
| 134 } | 134 } |
| 135 | 135 |
| 136 return false; | 136 return false; |
| 137 } | 137 } |
| 138 | 138 |
| 139 Element* SelectorDataList::closest(Element& targetElement) const |
| 140 { |
| 141 unsigned selectorCount = m_selectors.size(); |
| 142 for (Element* currentElement = &targetElement; currentElement; currentElemen
t = currentElement->parentElement()) { |
| 143 for (unsigned i = 0; i < selectorCount; ++i) { |
| 144 if (selectorMatches(*m_selectors[i], *currentElement, targetElement)
) |
| 145 return currentElement; |
| 146 } |
| 147 } |
| 148 return nullptr; |
| 149 } |
| 150 |
| 139 PassRefPtrWillBeRawPtr<StaticElementList> SelectorDataList::queryAll(ContainerNo
de& rootNode) const | 151 PassRefPtrWillBeRawPtr<StaticElementList> SelectorDataList::queryAll(ContainerNo
de& rootNode) const |
| 140 { | 152 { |
| 141 WillBeHeapVector<RefPtrWillBeMember<Element> > result; | 153 WillBeHeapVector<RefPtrWillBeMember<Element> > result; |
| 142 execute<AllElementsSelectorQueryTrait>(rootNode, result); | 154 execute<AllElementsSelectorQueryTrait>(rootNode, result); |
| 143 return StaticElementList::adopt(result); | 155 return StaticElementList::adopt(result); |
| 144 } | 156 } |
| 145 | 157 |
| 146 PassRefPtrWillBeRawPtr<Element> SelectorDataList::queryFirst(ContainerNode& root
Node) const | 158 PassRefPtrWillBeRawPtr<Element> SelectorDataList::queryFirst(ContainerNode& root
Node) const |
| 147 { | 159 { |
| 148 Element* matchedElement = 0; | 160 Element* matchedElement = 0; |
| (...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 474 { | 486 { |
| 475 m_selectorList.adopt(selectorList); | 487 m_selectorList.adopt(selectorList); |
| 476 m_selectors.initialize(m_selectorList); | 488 m_selectors.initialize(m_selectorList); |
| 477 } | 489 } |
| 478 | 490 |
| 479 bool SelectorQuery::matches(Element& element) const | 491 bool SelectorQuery::matches(Element& element) const |
| 480 { | 492 { |
| 481 return m_selectors.matches(element); | 493 return m_selectors.matches(element); |
| 482 } | 494 } |
| 483 | 495 |
| 496 Element* SelectorQuery::closest(Element& element) const |
| 497 { |
| 498 return m_selectors.closest(element); |
| 499 } |
| 500 |
| 484 PassRefPtrWillBeRawPtr<StaticElementList> SelectorQuery::queryAll(ContainerNode&
rootNode) const | 501 PassRefPtrWillBeRawPtr<StaticElementList> SelectorQuery::queryAll(ContainerNode&
rootNode) const |
| 485 { | 502 { |
| 486 return m_selectors.queryAll(rootNode); | 503 return m_selectors.queryAll(rootNode); |
| 487 } | 504 } |
| 488 | 505 |
| 489 PassRefPtrWillBeRawPtr<Element> SelectorQuery::queryFirst(ContainerNode& rootNod
e) const | 506 PassRefPtrWillBeRawPtr<Element> SelectorQuery::queryFirst(ContainerNode& rootNod
e) const |
| 490 { | 507 { |
| 491 return m_selectors.queryFirst(rootNode); | 508 return m_selectors.queryFirst(rootNode); |
| 492 } | 509 } |
| 493 | 510 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 518 | 535 |
| 519 return m_entries.add(selectors, SelectorQuery::adopt(selectorList)).storedVa
lue->value.get(); | 536 return m_entries.add(selectors, SelectorQuery::adopt(selectorList)).storedVa
lue->value.get(); |
| 520 } | 537 } |
| 521 | 538 |
| 522 void SelectorQueryCache::invalidate() | 539 void SelectorQueryCache::invalidate() |
| 523 { | 540 { |
| 524 m_entries.clear(); | 541 m_entries.clear(); |
| 525 } | 542 } |
| 526 | 543 |
| 527 } | 544 } |
| OLD | NEW |