| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2009 Apple Inc. All rights reserved. | 2 * Copyright (C) 2009 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2011 Google Inc. All rights reserved. | 3 * Copyright (C) 2011 Google Inc. All rights reserved. |
| 4 * Copyright (C) 2009 Joseph Pecoraro | 4 * Copyright (C) 2009 Joseph Pecoraro |
| 5 * | 5 * |
| 6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
| 7 * modification, are permitted provided that the following conditions | 7 * modification, are permitted provided that the following conditions |
| 8 * are met: | 8 * are met: |
| 9 * | 9 * |
| 10 * 1. Redistributions of source code must retain the above copyright | 10 * 1. Redistributions of source code must retain the above copyright |
| (...skipping 639 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 650 *elementId = pushNodePathToFrontend(element.get()); | 650 *elementId = pushNodePathToFrontend(element.get()); |
| 651 } | 651 } |
| 652 | 652 |
| 653 void InspectorDOMAgent::querySelectorAll(ErrorString* errorString, int nodeId, c
onst String& selectors, RefPtr<TypeBuilder::Array<int> >& result) | 653 void InspectorDOMAgent::querySelectorAll(ErrorString* errorString, int nodeId, c
onst String& selectors, RefPtr<TypeBuilder::Array<int> >& result) |
| 654 { | 654 { |
| 655 Node* node = assertNode(errorString, nodeId); | 655 Node* node = assertNode(errorString, nodeId); |
| 656 if (!node || !node->isContainerNode()) | 656 if (!node || !node->isContainerNode()) |
| 657 return; | 657 return; |
| 658 | 658 |
| 659 TrackExceptionState exceptionState; | 659 TrackExceptionState exceptionState; |
| 660 RefPtrWillBeRawPtr<StaticNodeList> nodes = toContainerNode(node)->querySelec
torAll(AtomicString(selectors), exceptionState); | 660 RefPtrWillBeRawPtr<StaticElementList> elements = toContainerNode(node)->quer
ySelectorAll(AtomicString(selectors), exceptionState); |
| 661 if (exceptionState.hadException()) { | 661 if (exceptionState.hadException()) { |
| 662 *errorString = "DOM Error while querying"; | 662 *errorString = "DOM Error while querying"; |
| 663 return; | 663 return; |
| 664 } | 664 } |
| 665 | 665 |
| 666 result = TypeBuilder::Array<int>::create(); | 666 result = TypeBuilder::Array<int>::create(); |
| 667 | 667 |
| 668 for (unsigned i = 0; i < nodes->length(); ++i) | 668 for (unsigned i = 0; i < elements->length(); ++i) |
| 669 result->addItem(pushNodePathToFrontend(nodes->item(i))); | 669 result->addItem(pushNodePathToFrontend(elements->item(i))); |
| 670 } | 670 } |
| 671 | 671 |
| 672 int InspectorDOMAgent::pushNodePathToFrontend(Node* nodeToPush) | 672 int InspectorDOMAgent::pushNodePathToFrontend(Node* nodeToPush) |
| 673 { | 673 { |
| 674 ASSERT(nodeToPush); // Invalid input | 674 ASSERT(nodeToPush); // Invalid input |
| 675 | 675 |
| 676 if (!m_document) | 676 if (!m_document) |
| 677 return 0; | 677 return 0; |
| 678 if (!m_documentNodeToIdMap->contains(m_document)) | 678 if (!m_documentNodeToIdMap->contains(m_document)) |
| 679 return 0; | 679 return 0; |
| (...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1094 if (node->nodeType() == Node::ATTRIBUTE_NODE) | 1094 if (node->nodeType() == Node::ATTRIBUTE_NODE) |
| 1095 node = toAttr(node)->ownerElement(); | 1095 node = toAttr(node)->ownerElement(); |
| 1096 resultCollector.add(node); | 1096 resultCollector.add(node); |
| 1097 } | 1097 } |
| 1098 } | 1098 } |
| 1099 | 1099 |
| 1100 // Selector evaluation | 1100 // Selector evaluation |
| 1101 for (WillBeHeapVector<RawPtrWillBeMember<Document> >::iterator it = docs
.begin(); it != docs.end(); ++it) { | 1101 for (WillBeHeapVector<RawPtrWillBeMember<Document> >::iterator it = docs
.begin(); it != docs.end(); ++it) { |
| 1102 Document* document = *it; | 1102 Document* document = *it; |
| 1103 TrackExceptionState exceptionState; | 1103 TrackExceptionState exceptionState; |
| 1104 RefPtrWillBeRawPtr<StaticNodeList> nodeList = document->querySelecto
rAll(AtomicString(whitespaceTrimmedQuery), exceptionState); | 1104 RefPtrWillBeRawPtr<StaticElementList> elementList = document->queryS
electorAll(AtomicString(whitespaceTrimmedQuery), exceptionState); |
| 1105 if (exceptionState.hadException() || !nodeList) | 1105 if (exceptionState.hadException() || !elementList) |
| 1106 continue; | 1106 continue; |
| 1107 | 1107 |
| 1108 unsigned size = nodeList->length(); | 1108 unsigned size = elementList->length(); |
| 1109 for (unsigned i = 0; i < size; ++i) | 1109 for (unsigned i = 0; i < size; ++i) |
| 1110 resultCollector.add(nodeList->item(i)); | 1110 resultCollector.add(elementList->item(i)); |
| 1111 } | 1111 } |
| 1112 } | 1112 } |
| 1113 | 1113 |
| 1114 *searchId = IdentifiersFactory::createIdentifier(); | 1114 *searchId = IdentifiersFactory::createIdentifier(); |
| 1115 WillBeHeapVector<RefPtrWillBeMember<Node> >* resultsIt = &m_searchResults.ad
d(*searchId, WillBeHeapVector<RefPtrWillBeMember<Node> >()).storedValue->value; | 1115 WillBeHeapVector<RefPtrWillBeMember<Node> >* resultsIt = &m_searchResults.ad
d(*searchId, WillBeHeapVector<RefPtrWillBeMember<Node> >()).storedValue->value; |
| 1116 | 1116 |
| 1117 for (WillBeHeapListHashSet<RawPtrWillBeMember<Node> >::iterator it = resultC
ollector.begin(); it != resultCollector.end(); ++it) | 1117 for (WillBeHeapListHashSet<RawPtrWillBeMember<Node> >::iterator it = resultC
ollector.begin(); it != resultCollector.end(); ++it) |
| 1118 resultsIt->append(*it); | 1118 resultsIt->append(*it); |
| 1119 | 1119 |
| 1120 *resultCount = resultsIt->size(); | 1120 *resultCount = resultsIt->size(); |
| (...skipping 1074 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2195 visitor->trace(m_searchResults); | 2195 visitor->trace(m_searchResults); |
| 2196 #endif | 2196 #endif |
| 2197 visitor->trace(m_history); | 2197 visitor->trace(m_history); |
| 2198 visitor->trace(m_domEditor); | 2198 visitor->trace(m_domEditor); |
| 2199 visitor->trace(m_listener); | 2199 visitor->trace(m_listener); |
| 2200 InspectorBaseAgent::trace(visitor); | 2200 InspectorBaseAgent::trace(visitor); |
| 2201 } | 2201 } |
| 2202 | 2202 |
| 2203 } // namespace blink | 2203 } // namespace blink |
| 2204 | 2204 |
| OLD | NEW |