Fixing regression bug 233753. Making document.createElement() create HTML elements again when called on an HTML document. r=bzbarsky@mit.edu, sr=dbaron@dbaron.org

git-svn-id: svn://10.0.0.236/trunk@152634 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
jst%mozilla.jstenback.com
2004-02-11 02:22:43 +00:00
parent 6986f24e74
commit 8380e41d46
2 changed files with 30 additions and 6 deletions

View File

@@ -1387,7 +1387,30 @@ NS_IMETHODIMP
nsHTMLDocument::CreateElement(const nsAString& aTagName,
nsIDOMElement** aReturn)
{
return nsDocument::CreateElement(aTagName, aReturn);
*aReturn = nsnull;
nsresult rv = nsContentUtils::CheckQName(aTagName, PR_FALSE);
NS_ENSURE_SUCCESS(rv, rv);
nsAutoString tmp(aTagName);
if (!IsXHTML()) {
ToLowerCase(tmp);
}
nsCOMPtr<nsIAtom> name = do_GetAtom(tmp);
nsCOMPtr<nsINodeInfo> nodeInfo;
rv = mNodeInfoManager->GetNodeInfo(name, nsnull, mDefaultNamespaceID,
getter_AddRefs(nodeInfo));
NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr<nsIHTMLContent> content;
rv = NS_CreateHTMLElement(getter_AddRefs(content), nodeInfo, IsXHTML());
NS_ENSURE_SUCCESS(rv, rv);
content->SetContentID(mNextContentID++);
return CallQueryInterface(content, aReturn);
}
NS_IMETHODIMP