Fixing bug 134278. Die kNameSpaceID_HTML, die! r=sicking@bigfoot.com, sr=heikki@netscape.com

git-svn-id: svn://10.0.0.236/trunk@121894 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
jst%netscape.com
2002-05-20 22:47:02 +00:00
parent 28e004aa7c
commit 7b7411c3ef
57 changed files with 375 additions and 479 deletions

View File

@@ -110,7 +110,6 @@
#include "nsHTMLTokens.h"
static char kNameSpaceSeparator = ':';
static char kStyleSheetPI[] = "xml-stylesheet";
#define kXSLType "text/xsl"
static NS_DEFINE_CID(kNameSpaceManagerCID, NS_NAMESPACEMANAGER_CID);
@@ -156,9 +155,13 @@ nsXMLContentSink::nsXMLContentSink()
NS_INIT_REFCNT();
gRefCnt++;
if (gRefCnt == 1) {
nsresult rv = nsServiceManager::GetService(kNameSpaceManagerCID,
NS_GET_IID(nsINameSpaceManager),
(nsISupports**) &gNameSpaceManager);
#ifdef DEBUG
nsresult rv =
#endif
nsServiceManager::GetService(kNameSpaceManagerCID,
NS_GET_IID(nsINameSpaceManager),
(nsISupports**) &gNameSpaceManager);
NS_ASSERTION(NS_SUCCEEDED(rv), "unable to get namespace manager");
}
@@ -650,23 +653,6 @@ nsXMLContentSink::AddContentAsLeaf(nsIContent *aContent)
return result;
}
static void
ParseProcessingInstruction(const nsString& aText,
nsString& aTarget,
nsString& aData)
{
PRInt32 offset;
aTarget.Truncate();
aData.Truncate();
offset = aText.FindCharInSet(" \n\r\t");
if (-1 != offset) {
aText.Mid(aTarget, 2, offset-2);
aText.Mid(aData, offset+1, aText.Length()-offset-3);
}
}
// Create an XML parser and an XSL content sink and start parsing
// the XSL stylesheet located at the given URL.
nsresult
@@ -1196,12 +1182,6 @@ nsXMLContentSink::PopNameSpaces()
return nsnull;
}
PRBool
nsXMLContentSink::IsHTMLNameSpace(PRInt32 aID)
{
return PRBool(kNameSpaceID_HTML == aID);
}
nsIContent*
nsXMLContentSink::GetCurrentContent()
{
@@ -1608,7 +1588,6 @@ nsXMLContentSink::HandleStartElement(const PRUnichar *aName,
PRUint32 aLineNumber)
{
nsresult result = NS_OK;
PRBool isHTML = PR_FALSE;
PRBool appendContent = PR_TRUE;
nsCOMPtr<nsIContent> content;
@@ -1643,9 +1622,9 @@ nsXMLContentSink::HandleStartElement(const PRUnichar *aName,
mNodeInfoManager->GetNodeInfo(tagAtom, nameSpacePrefix, nameSpaceID,
*getter_AddRefs(nodeInfo));
isHTML = IsHTMLNameSpace(nameSpaceID);
const PRBool isXHTML = nameSpaceID == kNameSpaceID_XHTML;
if (isHTML) {
if (isXHTML) {
if (tagAtom.get() == nsHTMLAtoms::script) {
result = ProcessStartSCRIPTTag(aLineNumber);
// Don't append the content to the tree until we're all
@@ -1678,7 +1657,7 @@ nsXMLContentSink::HandleStartElement(const PRUnichar *aName,
mDocument->GetAndIncrementContentID(&id);
content->SetContentID(id);
if (isHTML &&
if (isXHTML &&
((tagAtom == nsHTMLAtoms::link) ||
(tagAtom == nsHTMLAtoms::style))) {
nsCOMPtr<nsIStyleSheetLinkingElement> ssle(do_QueryInterface(content));
@@ -1692,7 +1671,7 @@ nsXMLContentSink::HandleStartElement(const PRUnichar *aName,
content->SetDocument(mDocument, PR_FALSE, PR_TRUE);
// Set the attributes on the new content element
result = AddAttributes(aAtts, content, isHTML);
result = AddAttributes(aAtts, content, isXHTML);
if (NS_OK == result) {
// If this is the document element
@@ -1715,9 +1694,11 @@ nsXMLContentSink::HandleStartElement(const PRUnichar *aName,
}
// Set the ID attribute atom on the node info object for this node
if (aIndex != -1) {
nsCOMPtr<nsIAtom> IDAttr = dont_AddRef(NS_NewAtom((const PRUnichar *) aAtts[aIndex]));
if (IDAttr && NS_SUCCEEDED(result)) {
if ((aIndex != (PRUint32)-1) && NS_SUCCEEDED(result)) {
nsCOMPtr<nsIAtom> IDAttr =
dont_AddRef(NS_NewAtom((const PRUnichar *)aAtts[aIndex]));
if (IDAttr) {
result = nodeInfo->SetIDAttributeAtom(IDAttr);
}
}
@@ -1960,7 +1941,6 @@ nsXMLContentSink::HandleProcessingInstruction(const PRUnichar *aTarget,
nsCOMPtr<nsIContent> node;
// ParseProcessingInstruction(text, target, data);
result = NS_NewXMLProcessingInstruction(getter_AddRefs(node), target, data);
if (NS_OK == result) {
nsCOMPtr<nsIStyleSheetLinkingElement> ssle(do_QueryInterface(node));
@@ -2055,14 +2035,16 @@ nsXMLContentSink::ReportError(const PRUnichar* aErrorText,
const PRUnichar* atts[] = {name.get(), value.get(), nsnull};
rv = HandleStartElement(NS_LITERAL_STRING("parsererror").get(), atts, 1, -1, -1);
rv = HandleStartElement(NS_LITERAL_STRING("parsererror").get(), atts, 1,
(PRUint32)-1, (PRUint32)-1);
NS_ENSURE_SUCCESS(rv,rv);
rv = HandleCharacterData(aErrorText, nsCRT::strlen(aErrorText));
NS_ENSURE_SUCCESS(rv,rv);
const PRUnichar* noAtts[] = {0, 0};
rv = HandleStartElement(NS_LITERAL_STRING("sourcetext").get(), noAtts, 0, -1, -1);
rv = HandleStartElement(NS_LITERAL_STRING("sourcetext").get(), noAtts, 0,
(PRUint32)-1, (PRUint32)-1);
NS_ENSURE_SUCCESS(rv,rv);
rv = HandleCharacterData(aSourceText, nsCRT::strlen(aSourceText));

View File

@@ -147,7 +147,6 @@ protected:
nsIAtom **aTagName);
PRInt32 GetNameSpaceId(nsIAtom* aPrefix);
nsINameSpace* PopNameSpaces();
PRBool IsHTMLNameSpace(PRInt32 aId);
nsIContent* GetCurrentContent();
PRInt32 PushContent(nsIContent *aContent);

View File

@@ -938,7 +938,7 @@ MatchId(nsIContent *aContent, const nsAString& aName)
PRInt32 ns;
aContent->GetNameSpaceID(ns);
if (kNameSpaceID_HTML == ns) {
if (kNameSpaceID_XHTML == ns) {
if ((NS_CONTENT_ATTR_HAS_VALUE == aContent->GetAttr(kNameSpaceID_None, nsHTMLAtoms::id, value)) &&
aName.Equals(value)) {
return aContent;
@@ -1067,7 +1067,6 @@ nsXMLDocument::CreateElement(nsINodeInfo *aNodeInfo, nsIDOMElement** aResult)
aNodeInfo->GetNamespaceID(namespaceID);
nsCOMPtr<nsIElementFactory> elementFactory;
mNameSpaceManager->GetElementFactory(namespaceID,
getter_AddRefs(elementFactory));