Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(280)

Unified Diff: Source/core/dom/NamedNodeMap.cpp

Issue 755213002: Let NamedNodeMap take and return Attr instead of Node (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/dom/NamedNodeMap.cpp
diff --git a/Source/core/dom/NamedNodeMap.cpp b/Source/core/dom/NamedNodeMap.cpp
index 04c6fbcfea3d74b989ff55d120f9b64baf8de0c8..63feb0d72ddfde6382f2d9dccaadadbc87ab9331 100644
--- a/Source/core/dom/NamedNodeMap.cpp
+++ b/Source/core/dom/NamedNodeMap.cpp
@@ -46,17 +46,17 @@ void NamedNodeMap::deref()
}
#endif
-PassRefPtrWillBeRawPtr<Node> NamedNodeMap::getNamedItem(const AtomicString& name) const
+PassRefPtrWillBeRawPtr<Attr> NamedNodeMap::getNamedItem(const AtomicString& name) const
{
return m_element->getAttributeNode(name);
}
-PassRefPtrWillBeRawPtr<Node> NamedNodeMap::getNamedItemNS(const AtomicString& namespaceURI, const AtomicString& localName) const
+PassRefPtrWillBeRawPtr<Attr> NamedNodeMap::getNamedItemNS(const AtomicString& namespaceURI, const AtomicString& localName) const
{
return m_element->getAttributeNodeNS(namespaceURI, localName);
}
-PassRefPtrWillBeRawPtr<Node> NamedNodeMap::removeNamedItem(const AtomicString& name, ExceptionState& exceptionState)
+PassRefPtrWillBeRawPtr<Attr> NamedNodeMap::removeNamedItem(const AtomicString& name, ExceptionState& exceptionState)
{
size_t index = m_element->attributes().findIndex(name, m_element->shouldIgnoreAttributeCase());
if (index == kNotFound) {
@@ -66,7 +66,7 @@ PassRefPtrWillBeRawPtr<Node> NamedNodeMap::removeNamedItem(const AtomicString& n
return m_element->detachAttribute(index);
}
-PassRefPtrWillBeRawPtr<Node> NamedNodeMap::removeNamedItemNS(const AtomicString& namespaceURI, const AtomicString& localName, ExceptionState& exceptionState)
+PassRefPtrWillBeRawPtr<Attr> NamedNodeMap::removeNamedItemNS(const AtomicString& namespaceURI, const AtomicString& localName, ExceptionState& exceptionState)
{
size_t index = m_element->attributes().findIndex(QualifiedName(nullAtom, localName, namespaceURI));
if (index == kNotFound) {
@@ -76,28 +76,19 @@ PassRefPtrWillBeRawPtr<Node> NamedNodeMap::removeNamedItemNS(const AtomicString&
return m_element->detachAttribute(index);
}
-PassRefPtrWillBeRawPtr<Node> NamedNodeMap::setNamedItem(Node* node, ExceptionState& exceptionState)
+PassRefPtrWillBeRawPtr<Attr> NamedNodeMap::setNamedItem(Attr* attr, ExceptionState& exceptionState)
{
- if (!node) {
- exceptionState.throwDOMException(NotFoundError, "The node provided was null.");
- return nullptr;
- }
-
- // Not mentioned in spec: throw a HIERARCHY_REQUEST_ERROR if the user passes in a non-attribute node
- if (!node->isAttributeNode()) {
- exceptionState.throwDOMException(HierarchyRequestError, "The node provided is not an attribute node.");
- return nullptr;
- }
-
- return m_element->setAttributeNode(toAttr(node), exceptionState);
+ ASSERT(attr);
+ return m_element->setAttributeNode(attr, exceptionState);
}
-PassRefPtrWillBeRawPtr<Node> NamedNodeMap::setNamedItemNS(Node* node, ExceptionState& exceptionState)
+PassRefPtrWillBeRawPtr<Attr> NamedNodeMap::setNamedItemNS(Attr* attr, ExceptionState& exceptionState)
{
- return setNamedItem(node, exceptionState);
+ ASSERT(attr);
+ return m_element->setAttributeNodeNS(attr, exceptionState);
}
-PassRefPtrWillBeRawPtr<Node> NamedNodeMap::item(unsigned index) const
+PassRefPtrWillBeRawPtr<Attr> NamedNodeMap::item(unsigned index) const
{
AttributeCollection attributes = m_element->attributes();
if (index >= attributes.size())

Powered by Google App Engine
This is Rietveld 408576698