From a1b1c63a3199bb51d7dfdbd687fe8e508c5fbfb8 Mon Sep 17 00:00:00 2001 From: "cvshook%sicking.cc" Date: Wed, 8 Jun 2005 16:42:04 +0000 Subject: [PATCH] Bug 245274: Be more strict about which names we allow for createElement, even in quirks mode. r=doron sr=bz a=asa git-svn-id: svn://10.0.0.236/trunk@174299 18797224-902f-48f8-a5cc-f745e15eee43 --- .../html/document/src/nsHTMLDocument.cpp | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/mozilla/content/html/document/src/nsHTMLDocument.cpp b/mozilla/content/html/document/src/nsHTMLDocument.cpp index f6228236607..b4f69f30236 100644 --- a/mozilla/content/html/document/src/nsHTMLDocument.cpp +++ b/mozilla/content/html/document/src/nsHTMLDocument.cpp @@ -1230,18 +1230,24 @@ nsHTMLDocument::CreateElement(const nsAString& aTagName, *aReturn = nsnull; nsresult rv; - // if we are in quirks, don't validate the tag name - if (mCompatMode != eCompatibility_NavQuirks) { - rv = nsContentUtils::CheckQName(aTagName, PR_FALSE); - NS_ENSURE_SUCCESS(rv, rv); - } + nsAutoString tagName(aTagName); - nsAutoString tmp(aTagName); - if (!IsXHTML()) { - ToLowerCase(tmp); + // if we are in quirks, allow surrounding '<' '>' for IE compat + if (mCompatMode == eCompatibility_NavQuirks && + tagName.Length() > 2 && + tagName.First() == '<' && + tagName.Last() == '>') { + tagName = Substring(tagName, 1, tagName.Length() - 2); } - nsCOMPtr name = do_GetAtom(tmp); + rv = nsContentUtils::CheckQName(tagName, PR_FALSE); + NS_ENSURE_SUCCESS(rv, rv); + + if (!IsXHTML()) { + ToLowerCase(tagName); + } + + nsCOMPtr name = do_GetAtom(tagName); nsCOMPtr content; rv = CreateElem(name, nsnull, GetDefaultNamespaceID(), PR_TRUE,