Fix some case issues with getElementsByTagName(NS) in tag-soup and XHTML. Bug

264609, r+sr=jst
This commit is contained in:
bzbarsky%mit.edu 2004-10-28 02:34:21 +00:00
parent 876e501b18
commit 0c647a6537
3 changed files with 22 additions and 1 deletions

View File

@ -425,6 +425,22 @@ nsGenericHTMLElement::GetElementsByTagName(const nsAString& aTagname,
return nsGenericElement::GetElementsByTagName(tagName, aReturn);
}
nsresult
nsGenericHTMLElement::GetElementsByTagNameNS(const nsAString& aNamespaceURI,
const nsAString& aLocalName,
nsIDOMNodeList** aReturn)
{
nsAutoString localName(aLocalName);
// Only lowercase the name if this element has no namespace (i.e.
// it's a HTML element, not an XHTML element).
if (mNodeInfo && mNodeInfo->NamespaceEquals(kNameSpaceID_None))
ToLowerCase(localName);
return nsGenericElement::GetElementsByTagNameNS(aNamespaceURI, localName,
aReturn);
}
// Implementation for nsIDOMHTMLElement
nsresult
nsGenericHTMLElement::GetId(nsAString& aId)

View File

@ -108,6 +108,9 @@ public:
NS_METHOD GetTagName(nsAString& aTagName);
NS_METHOD GetElementsByTagName(const nsAString& aTagname,
nsIDOMNodeList** aReturn);
NS_METHOD GetElementsByTagNameNS(const nsAString& aNamespaceURI,
const nsAString& aLocalName,
nsIDOMNodeList** aReturn);
// nsIDOMHTMLElement methods. Note that these are non-virtual
// methods, implementations are expected to forward calls to these

View File

@ -1395,7 +1395,9 @@ nsHTMLDocument::GetElementsByTagName(const nsAString& aTagname,
nsIDOMNodeList** aReturn)
{
nsAutoString tmp(aTagname);
ToLowerCase(tmp); // HTML elements are lower case internally.
if (!IsXHTML()) {
ToLowerCase(tmp); // HTML elements are lower case internally.
}
return nsDocument::GetElementsByTagName(tmp, aReturn);
}