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 675 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
686 } | 686 } |
687 | 687 |
688 String caseAdjustedName = name ? (shouldIgnoreCase ? name->lower() : *name)
: String(); | 688 String caseAdjustedName = name ? (shouldIgnoreCase ? name->lower() : *name)
: String(); |
689 | 689 |
690 if (!parsedElement->hasAttributes() && name) { | 690 if (!parsedElement->hasAttributes() && name) { |
691 m_domEditor->removeAttribute(element, caseAdjustedName, errorString); | 691 m_domEditor->removeAttribute(element, caseAdjustedName, errorString); |
692 return; | 692 return; |
693 } | 693 } |
694 | 694 |
695 bool foundOriginalAttribute = false; | 695 bool foundOriginalAttribute = false; |
696 unsigned numAttrs = parsedElement->attributeCount(); | 696 AttributeIteratorAccessor attributes = parsedElement->attributesIterator(); |
697 for (unsigned i = 0; i < numAttrs; ++i) { | 697 AttributeConstIterator end = attributes.end(); |
| 698 for (AttributeConstIterator it = attributes.begin(); it != end; ++it) { |
698 // Add attribute pair | 699 // Add attribute pair |
699 const Attribute& attribute = parsedElement->attributeItem(i); | 700 String attributeName = it->name().toString(); |
700 String attributeName = attribute.name().toString(); | |
701 if (shouldIgnoreCase) | 701 if (shouldIgnoreCase) |
702 attributeName = attributeName.lower(); | 702 attributeName = attributeName.lower(); |
703 foundOriginalAttribute |= name && attributeName == caseAdjustedName; | 703 foundOriginalAttribute |= name && attributeName == caseAdjustedName; |
704 if (!m_domEditor->setAttribute(element, attributeName, attribute.value()
, errorString)) | 704 if (!m_domEditor->setAttribute(element, attributeName, it->value(), erro
rString)) |
705 return; | 705 return; |
706 } | 706 } |
707 | 707 |
708 if (!foundOriginalAttribute && name && !name->stripWhiteSpace().isEmpty()) | 708 if (!foundOriginalAttribute && name && !name->stripWhiteSpace().isEmpty()) |
709 m_domEditor->removeAttribute(element, caseAdjustedName, errorString); | 709 m_domEditor->removeAttribute(element, caseAdjustedName, errorString); |
710 } | 710 } |
711 | 711 |
712 void InspectorDOMAgent::removeAttribute(ErrorString* errorString, int elementId,
const String& name) | 712 void InspectorDOMAgent::removeAttribute(ErrorString* errorString, int elementId,
const String& name) |
713 { | 713 { |
714 Element* element = assertEditableElement(errorString, elementId); | 714 Element* element = assertEditableElement(errorString, elementId); |
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
946 || (startTagFound && !endTagFound && node->nodeName().starts
With(tagNameQuery, false)) | 946 || (startTagFound && !endTagFound && node->nodeName().starts
With(tagNameQuery, false)) |
947 || (!startTagFound && endTagFound && node->nodeName().endsWi
th(tagNameQuery, false))) { | 947 || (!startTagFound && endTagFound && node->nodeName().endsWi
th(tagNameQuery, false))) { |
948 resultCollector.add(node); | 948 resultCollector.add(node); |
949 break; | 949 break; |
950 } | 950 } |
951 // Go through all attributes and serialize them. | 951 // Go through all attributes and serialize them. |
952 const Element* element = toElement(node); | 952 const Element* element = toElement(node); |
953 if (!element->hasAttributes()) | 953 if (!element->hasAttributes()) |
954 break; | 954 break; |
955 | 955 |
956 unsigned numAttrs = element->attributeCount(); | 956 AttributeIteratorAccessor attributes = element->attributesIterat
or(); |
957 for (unsigned i = 0; i < numAttrs; ++i) { | 957 AttributeConstIterator end = attributes.end(); |
| 958 for (AttributeConstIterator it = attributes.begin(); it != end;
++it) { |
958 // Add attribute pair | 959 // Add attribute pair |
959 const Attribute& attribute = element->attributeItem(i); | 960 if (it->localName().find(whitespaceTrimmedQuery, 0, false) !
= kNotFound) { |
960 if (attribute.localName().find(whitespaceTrimmedQuery, 0, fa
lse) != kNotFound) { | |
961 resultCollector.add(node); | 961 resultCollector.add(node); |
962 break; | 962 break; |
963 } | 963 } |
964 size_t foundPosition = attribute.value().find(attributeQuery
, 0, false); | 964 size_t foundPosition = it->value().find(attributeQuery, 0, f
alse); |
965 if (foundPosition != kNotFound) { | 965 if (foundPosition != kNotFound) { |
966 if (!exactAttributeMatch || (!foundPosition && attribute
.value().length() == attributeQuery.length())) { | 966 if (!exactAttributeMatch || (!foundPosition && it->value
().length() == attributeQuery.length())) { |
967 resultCollector.add(node); | 967 resultCollector.add(node); |
968 break; | 968 break; |
969 } | 969 } |
970 } | 970 } |
971 } | 971 } |
972 break; | 972 break; |
973 } | 973 } |
974 default: | 974 default: |
975 break; | 975 break; |
976 } | 976 } |
(...skipping 584 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1561 | 1561 |
1562 return value.release(); | 1562 return value.release(); |
1563 } | 1563 } |
1564 | 1564 |
1565 PassRefPtr<TypeBuilder::Array<String> > InspectorDOMAgent::buildArrayForElementA
ttributes(Element* element) | 1565 PassRefPtr<TypeBuilder::Array<String> > InspectorDOMAgent::buildArrayForElementA
ttributes(Element* element) |
1566 { | 1566 { |
1567 RefPtr<TypeBuilder::Array<String> > attributesValue = TypeBuilder::Array<Str
ing>::create(); | 1567 RefPtr<TypeBuilder::Array<String> > attributesValue = TypeBuilder::Array<Str
ing>::create(); |
1568 // Go through all attributes and serialize them. | 1568 // Go through all attributes and serialize them. |
1569 if (!element->hasAttributes()) | 1569 if (!element->hasAttributes()) |
1570 return attributesValue.release(); | 1570 return attributesValue.release(); |
1571 unsigned numAttrs = element->attributeCount(); | 1571 AttributeIteratorAccessor attributes = element->attributesIterator(); |
1572 for (unsigned i = 0; i < numAttrs; ++i) { | 1572 AttributeConstIterator end = attributes.end(); |
| 1573 for (AttributeConstIterator it = attributes.begin(); it != end; ++it) { |
1573 // Add attribute pair | 1574 // Add attribute pair |
1574 const Attribute& attribute = element->attributeItem(i); | 1575 attributesValue->addItem(it->name().toString()); |
1575 attributesValue->addItem(attribute.name().toString()); | 1576 attributesValue->addItem(it->value()); |
1576 attributesValue->addItem(attribute.value()); | |
1577 } | 1577 } |
1578 return attributesValue.release(); | 1578 return attributesValue.release(); |
1579 } | 1579 } |
1580 | 1580 |
1581 PassRefPtr<TypeBuilder::Array<TypeBuilder::DOM::Node> > InspectorDOMAgent::build
ArrayForContainerChildren(Node* container, int depth, NodeToIdMap* nodesMap) | 1581 PassRefPtr<TypeBuilder::Array<TypeBuilder::DOM::Node> > InspectorDOMAgent::build
ArrayForContainerChildren(Node* container, int depth, NodeToIdMap* nodesMap) |
1582 { | 1582 { |
1583 RefPtr<TypeBuilder::Array<TypeBuilder::DOM::Node> > children = TypeBuilder::
Array<TypeBuilder::DOM::Node>::create(); | 1583 RefPtr<TypeBuilder::Array<TypeBuilder::DOM::Node> > children = TypeBuilder::
Array<TypeBuilder::DOM::Node>::create(); |
1584 if (depth == 0) { | 1584 if (depth == 0) { |
1585 // Special-case the only text child - pretend that container's children
have been requested. | 1585 // Special-case the only text child - pretend that container's children
have been requested. |
1586 Node* firstChild = container->firstChild(); | 1586 Node* firstChild = container->firstChild(); |
(...skipping 476 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2063 if (!m_documentNodeToIdMap.contains(m_document)) { | 2063 if (!m_documentNodeToIdMap.contains(m_document)) { |
2064 RefPtr<TypeBuilder::DOM::Node> root; | 2064 RefPtr<TypeBuilder::DOM::Node> root; |
2065 getDocument(errorString, root); | 2065 getDocument(errorString, root); |
2066 return errorString->isEmpty(); | 2066 return errorString->isEmpty(); |
2067 } | 2067 } |
2068 return true; | 2068 return true; |
2069 } | 2069 } |
2070 | 2070 |
2071 } // namespace WebCore | 2071 } // namespace WebCore |
2072 | 2072 |
OLD | NEW |