mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-25 11:58:55 +00:00
Bug 659539 Part 1: Give nsINodeInfos a nodeType, nodeName and localName. r=bz
This commit is contained in:
parent
9bf170cc97
commit
e3e6dd6825
@ -546,6 +546,7 @@ public:
|
||||
static nsresult GetNodeInfoFromQName(const nsAString& aNamespaceURI,
|
||||
const nsAString& aQualifiedName,
|
||||
nsNodeInfoManager* aNodeInfoManager,
|
||||
PRUint16 aNodeType,
|
||||
nsINodeInfo** aNodeInfo);
|
||||
|
||||
static void SplitExpatName(const PRUnichar *aExpatName, nsIAtom **aPrefix,
|
||||
@ -689,7 +690,9 @@ public:
|
||||
nsNodeInfoManager *niMgr = aNodeInfo->NodeInfoManager();
|
||||
|
||||
*aResult = niMgr->GetNodeInfo(aName, aNodeInfo->GetPrefixAtom(),
|
||||
aNodeInfo->NamespaceID()).get();
|
||||
aNodeInfo->NamespaceID(),
|
||||
aNodeInfo->NodeType(),
|
||||
aNodeInfo->GetExtraName()).get();
|
||||
return *aResult ? NS_OK : NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
|
@ -81,7 +81,7 @@ public:
|
||||
NS_DECLARE_STATIC_IID_ACCESSOR(NS_INODEINFO_IID)
|
||||
|
||||
nsINodeInfo()
|
||||
: mInner(nsnull, nsnull, kNameSpaceID_None),
|
||||
: mInner(nsnull, nsnull, kNameSpaceID_None, 0, nsnull),
|
||||
mOwnerManager(nsnull)
|
||||
{
|
||||
}
|
||||
@ -159,30 +159,35 @@ public:
|
||||
|
||||
/*
|
||||
* Get the namespace URI for a node, if the node has a namespace URI.
|
||||
*
|
||||
* For the HTML element "<body>" in a HTML document this will return a null
|
||||
* string and for the XML element "<html:body>" (assuming that this element,
|
||||
* or one of its ancestors has an
|
||||
* xmlns:html='http://www.w3.org/1999/xhtml' attribute) this will return
|
||||
* the string "http://www.w3.org/1999/xhtml".
|
||||
*/
|
||||
virtual nsresult GetNamespaceURI(nsAString& aNameSpaceURI) const = 0;
|
||||
|
||||
/*
|
||||
* Get the namespace ID for a node if the node has a namespace, if not this
|
||||
* returns kNameSpaceID_None.
|
||||
*
|
||||
* For the HTML element "<body>" in a HTML document this will return
|
||||
* kNameSpaceID_None and for the XML element "<html:body>" (assuming that
|
||||
* this element, or one of its ancestors has an
|
||||
* xmlns:html='http://www.w3.org/1999/xhtml' attribute) this will return
|
||||
* the namespace ID for "http://www.w3.org/1999/xhtml".
|
||||
*/
|
||||
PRInt32 NamespaceID() const
|
||||
{
|
||||
return mInner.mNamespaceID;
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the nodetype for the node. Returns the values specified in nsIDOMNode
|
||||
* for nsIDOMNode.nodeType
|
||||
*/
|
||||
PRUint16 NodeType() const
|
||||
{
|
||||
return mInner.mNodeType;
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the extra name, used by PIs and DocTypes, for the node.
|
||||
*/
|
||||
nsIAtom* GetExtraName() const
|
||||
{
|
||||
return mInner.mExtraName;
|
||||
}
|
||||
|
||||
/*
|
||||
* Get and set the ID attribute atom for this node.
|
||||
* See http://www.w3.org/TR/1998/REC-xml-19980210#sec-attribute-types
|
||||
@ -322,24 +327,28 @@ protected:
|
||||
public:
|
||||
nsNodeInfoInner()
|
||||
: mName(nsnull), mPrefix(nsnull), mNamespaceID(kNameSpaceID_Unknown),
|
||||
mNameString(nsnull)
|
||||
mNodeType(0), mNameString(nsnull), mExtraName(nsnull)
|
||||
{
|
||||
}
|
||||
nsNodeInfoInner(nsIAtom *aName, nsIAtom *aPrefix, PRInt32 aNamespaceID)
|
||||
nsNodeInfoInner(nsIAtom *aName, nsIAtom *aPrefix, PRInt32 aNamespaceID,
|
||||
PRUint16 aNodeType, nsIAtom* aExtraName)
|
||||
: mName(aName), mPrefix(aPrefix), mNamespaceID(aNamespaceID),
|
||||
mNameString(nsnull)
|
||||
mNodeType(aNodeType), mNameString(nsnull), mExtraName(aExtraName)
|
||||
{
|
||||
}
|
||||
nsNodeInfoInner(const nsAString& aTmpName, nsIAtom *aPrefix, PRInt32 aNamespaceID)
|
||||
nsNodeInfoInner(const nsAString& aTmpName, nsIAtom *aPrefix,
|
||||
PRInt32 aNamespaceID, PRUint16 aNodeType)
|
||||
: mName(nsnull), mPrefix(aPrefix), mNamespaceID(aNamespaceID),
|
||||
mNameString(&aTmpName)
|
||||
mNodeType(aNodeType), mNameString(&aTmpName), mExtraName(nsnull)
|
||||
{
|
||||
}
|
||||
|
||||
nsIAtom* mName;
|
||||
nsIAtom* mPrefix;
|
||||
PRInt32 mNamespaceID;
|
||||
PRUint16 mNodeType; // As defined by nsIDOMNode.nodeType
|
||||
const nsAString* mNameString;
|
||||
nsIAtom* mExtraName; // Only used by PIs and DocTypes
|
||||
};
|
||||
|
||||
// nsNodeInfoManager needs to pass mInner to the hash table.
|
||||
@ -361,6 +370,13 @@ protected:
|
||||
// Qualified name in "corrected case"; this will depend on our
|
||||
// document and on mNamespaceID.
|
||||
nsString mQualifiedNameCorrectedCase;
|
||||
|
||||
// nodeName for the node.
|
||||
nsString mNodeName;
|
||||
|
||||
// localName for the node. This is either equal to mInner.mName, or a
|
||||
// void string, depending on mInner.mNodeType.
|
||||
nsString mLocalName;
|
||||
};
|
||||
|
||||
NS_DEFINE_STATIC_IID_ACCESSOR(nsINodeInfo, NS_INODEINFO_IID)
|
||||
|
@ -106,6 +106,8 @@ NS_NewCommentNode(nsIContent** aInstancePtrResult,
|
||||
nsCommentNode::nsCommentNode(already_AddRefed<nsINodeInfo> aNodeInfo)
|
||||
: nsGenericDOMDataNode(aNodeInfo)
|
||||
{
|
||||
NS_ABORT_IF_FALSE(mNodeInfo->NodeType() == nsIDOMNode::COMMENT_NODE,
|
||||
"Bad NodeType in aNodeInfo");
|
||||
}
|
||||
|
||||
nsCommentNode::~nsCommentNode()
|
||||
|
@ -2088,6 +2088,7 @@ nsresult
|
||||
nsContentUtils::GetNodeInfoFromQName(const nsAString& aNamespaceURI,
|
||||
const nsAString& aQualifiedName,
|
||||
nsNodeInfoManager* aNodeInfoManager,
|
||||
PRUint16 aNodeType,
|
||||
nsINodeInfo** aNodeInfo)
|
||||
{
|
||||
nsIParserService* parserService = GetParserService();
|
||||
@ -2107,11 +2108,11 @@ nsContentUtils::GetNodeInfoFromQName(const nsAString& aNamespaceURI,
|
||||
nsCOMPtr<nsIAtom> prefix = do_GetAtom(Substring(qName.get(), colon));
|
||||
|
||||
rv = aNodeInfoManager->GetNodeInfo(Substring(colon + 1, end), prefix,
|
||||
nsID, aNodeInfo);
|
||||
nsID, aNodeType, aNodeInfo);
|
||||
}
|
||||
else {
|
||||
rv = aNodeInfoManager->GetNodeInfo(aQualifiedName, nsnull, nsID,
|
||||
aNodeInfo);
|
||||
aNodeType, aNodeInfo);
|
||||
}
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
|
@ -72,7 +72,8 @@ nsDOMAttribute::nsDOMAttribute(nsDOMAttributeMap *aAttrMap,
|
||||
: nsIAttribute(aAttrMap, aNodeInfo, aNsAware), mValue(aValue), mChild(nsnull)
|
||||
{
|
||||
NS_ABORT_IF_FALSE(mNodeInfo, "We must get a nodeinfo here!");
|
||||
|
||||
NS_ABORT_IF_FALSE(mNodeInfo->NodeType() == nsIDOMNode::ATTRIBUTE_NODE,
|
||||
"Wrong nodeType");
|
||||
|
||||
// We don't add a reference to our content. It will tell us
|
||||
// to drop our reference when it goes away.
|
||||
@ -192,7 +193,8 @@ nsDOMAttribute::SetOwnerDocument(nsIDocument* aDocument)
|
||||
nsCOMPtr<nsINodeInfo> newNodeInfo;
|
||||
newNodeInfo = aDocument->NodeInfoManager()->
|
||||
GetNodeInfo(mNodeInfo->NameAtom(), mNodeInfo->GetPrefixAtom(),
|
||||
mNodeInfo->NamespaceID());
|
||||
mNodeInfo->NamespaceID(),
|
||||
nsIDOMNode::ATTRIBUTE_NODE);
|
||||
NS_ENSURE_TRUE(newNodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
NS_ASSERTION(newNodeInfo, "GetNodeInfo lies");
|
||||
mNodeInfo.swap(newNodeInfo);
|
||||
|
@ -341,7 +341,8 @@ nsDOMAttributeMap::SetNamedItemInternal(nsIDOMNode *aNode,
|
||||
}
|
||||
|
||||
rv = mContent->NodeInfo()->NodeInfoManager()->
|
||||
GetNodeInfo(name, nsnull, kNameSpaceID_None, getter_AddRefs(ni));
|
||||
GetNodeInfo(name, nsnull, kNameSpaceID_None,
|
||||
nsIDOMNode::ATTRIBUTE_NODE, getter_AddRefs(ni));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
// value is already empty
|
||||
}
|
||||
@ -407,7 +408,8 @@ nsDOMAttributeMap::GetItemAt(PRUint32 aIndex, nsresult *aResult)
|
||||
// have the wrong owner document.
|
||||
nsCOMPtr<nsINodeInfo> ni;
|
||||
ni = mContent->NodeInfo()->NodeInfoManager()->
|
||||
GetNodeInfo(name->LocalName(), name->GetPrefix(), name->NamespaceID());
|
||||
GetNodeInfo(name->LocalName(), name->GetPrefix(), name->NamespaceID(),
|
||||
nsIDOMNode::ATTRIBUTE_NODE);
|
||||
if (ni) {
|
||||
node = GetAttribute(ni, PR_TRUE);
|
||||
}
|
||||
@ -484,7 +486,8 @@ nsDOMAttributeMap::GetNamedItemNSInternal(const nsAString& aNamespaceURI,
|
||||
nameAtom->Equals(aLocalName)) {
|
||||
nsCOMPtr<nsINodeInfo> ni;
|
||||
ni = mContent->NodeInfo()->NodeInfoManager()->
|
||||
GetNodeInfo(nameAtom, name->GetPrefix(), nameSpaceID);
|
||||
GetNodeInfo(nameAtom, name->GetPrefix(), nameSpaceID,
|
||||
nsIDOMNode::ATTRIBUTE_NODE);
|
||||
NS_ENSURE_TRUE(ni, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
if (aRemove) {
|
||||
|
@ -78,12 +78,14 @@ NS_NewDOMDocumentType(nsIDOMDocumentType** aDocType,
|
||||
nimgr->SetDocumentPrincipal(aPrincipal);
|
||||
}
|
||||
|
||||
nsCOMPtr<nsINodeInfo> ni;
|
||||
ni = nimgr->GetNodeInfo(nsGkAtoms::documentTypeNodeName, nsnull,
|
||||
kNameSpaceID_None);
|
||||
nsCOMPtr<nsINodeInfo> ni =
|
||||
nimgr->GetNodeInfo(nsGkAtoms::documentTypeNodeName, nsnull,
|
||||
kNameSpaceID_None,
|
||||
nsIDOMNode::DOCUMENT_TYPE_NODE,
|
||||
aName);
|
||||
NS_ENSURE_TRUE(ni, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
*aDocType = new nsDOMDocumentType(ni.forget(), aName, aPublicId, aSystemId,
|
||||
*aDocType = new nsDOMDocumentType(ni.forget(), aPublicId, aSystemId,
|
||||
aInternalSubset);
|
||||
NS_ADDREF(*aDocType);
|
||||
|
||||
@ -91,16 +93,16 @@ NS_NewDOMDocumentType(nsIDOMDocumentType** aDocType,
|
||||
}
|
||||
|
||||
nsDOMDocumentType::nsDOMDocumentType(already_AddRefed<nsINodeInfo> aNodeInfo,
|
||||
nsIAtom *aName,
|
||||
const nsAString& aPublicId,
|
||||
const nsAString& aSystemId,
|
||||
const nsAString& aInternalSubset) :
|
||||
nsDOMDocumentTypeForward(aNodeInfo),
|
||||
mName(aName),
|
||||
mPublicId(aPublicId),
|
||||
mSystemId(aSystemId),
|
||||
mInternalSubset(aInternalSubset)
|
||||
{
|
||||
NS_ABORT_IF_FALSE(mNodeInfo->NodeType() == nsIDOMNode::DOCUMENT_TYPE_NODE,
|
||||
"Bad NodeType in aNodeInfo");
|
||||
}
|
||||
|
||||
nsDOMDocumentType::~nsDOMDocumentType()
|
||||
@ -133,7 +135,7 @@ nsDOMDocumentType::IsNodeOfType(PRUint32 aFlags) const
|
||||
void
|
||||
nsDOMDocumentType::NodeName(nsAString& aNodeName)
|
||||
{
|
||||
mName->ToString(aNodeName);
|
||||
mNodeInfo->GetExtraName()->ToString(aNodeName);
|
||||
}
|
||||
|
||||
PRUint16
|
||||
@ -151,7 +153,7 @@ nsDOMDocumentType::GetText()
|
||||
NS_IMETHODIMP
|
||||
nsDOMDocumentType::GetName(nsAString& aName)
|
||||
{
|
||||
mName->ToString(aName);
|
||||
mNodeInfo->GetExtraName()->ToString(aName);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
@ -182,7 +184,7 @@ nsGenericDOMDataNode*
|
||||
nsDOMDocumentType::CloneDataNode(nsINodeInfo *aNodeInfo, PRBool aCloneText) const
|
||||
{
|
||||
nsCOMPtr<nsINodeInfo> ni = aNodeInfo;
|
||||
return new nsDOMDocumentType(ni.forget(), mName, mPublicId, mSystemId,
|
||||
return new nsDOMDocumentType(ni.forget(), mPublicId, mSystemId,
|
||||
mInternalSubset);
|
||||
}
|
||||
|
||||
@ -208,7 +210,9 @@ nsDOMDocumentType::BindToTree(nsIDocument *aDocument, nsIContent *aParent,
|
||||
nsCOMPtr<nsINodeInfo> newNodeInfo;
|
||||
newNodeInfo = nimgr->GetNodeInfo(mNodeInfo->NameAtom(),
|
||||
mNodeInfo->GetPrefixAtom(),
|
||||
mNodeInfo->NamespaceID());
|
||||
mNodeInfo->NamespaceID(),
|
||||
nsIDOMNode::DOCUMENT_TYPE_NODE,
|
||||
mNodeInfo->GetExtraName());
|
||||
NS_ENSURE_TRUE(newNodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
mNodeInfo.swap(newNodeInfo);
|
||||
|
@ -70,7 +70,6 @@ class nsDOMDocumentType : public nsDOMDocumentTypeForward
|
||||
{
|
||||
public:
|
||||
nsDOMDocumentType(already_AddRefed<nsINodeInfo> aNodeInfo,
|
||||
nsIAtom *aName,
|
||||
const nsAString& aPublicId,
|
||||
const nsAString& aSystemId,
|
||||
const nsAString& aInternalSubset);
|
||||
@ -113,7 +112,6 @@ public:
|
||||
|
||||
virtual nsXPCClassInfo* GetClassInfo();
|
||||
protected:
|
||||
nsCOMPtr<nsIAtom> mName;
|
||||
nsString mPublicId;
|
||||
nsString mSystemId;
|
||||
nsString mInternalSubset;
|
||||
|
@ -1997,6 +1997,8 @@ nsDocument::Init()
|
||||
|
||||
mNodeInfo = mNodeInfoManager->GetDocumentNodeInfo();
|
||||
NS_ENSURE_TRUE(mNodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
NS_ABORT_IF_FALSE(mNodeInfo->NodeType() == nsIDOMNode::DOCUMENT_NODE,
|
||||
"Bad NodeType in aNodeInfo");
|
||||
|
||||
NS_ASSERTION(GetOwnerDoc() == this, "Our nodeinfo is busted!");
|
||||
|
||||
@ -4384,6 +4386,7 @@ nsDocument::CreateElementNS(const nsAString& aNamespaceURI,
|
||||
nsresult rv = nsContentUtils::GetNodeInfoFromQName(aNamespaceURI,
|
||||
aQualifiedName,
|
||||
mNodeInfoManager,
|
||||
nsIDOMNode::ELEMENT_NODE,
|
||||
getter_AddRefs(nodeInfo));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
@ -4516,6 +4519,7 @@ nsDocument::CreateAttribute(const nsAString& aName,
|
||||
|
||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||
rv = mNodeInfoManager->GetNodeInfo(aName, nsnull, kNameSpaceID_None,
|
||||
nsIDOMNode::ATTRIBUTE_NODE,
|
||||
getter_AddRefs(nodeInfo));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
@ -4537,6 +4541,7 @@ nsDocument::CreateAttributeNS(const nsAString & aNamespaceURI,
|
||||
nsresult rv = nsContentUtils::GetNodeInfoFromQName(aNamespaceURI,
|
||||
aQualifiedName,
|
||||
mNodeInfoManager,
|
||||
nsIDOMNode::ATTRIBUTE_NODE,
|
||||
getter_AddRefs(nodeInfo));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
@ -5199,7 +5204,8 @@ nsDocument::SetTitle(const nsAString& aTitle)
|
||||
{
|
||||
nsCOMPtr<nsINodeInfo> titleInfo;
|
||||
titleInfo = mNodeInfoManager->GetNodeInfo(nsGkAtoms::title, nsnull,
|
||||
kNameSpaceID_XHTML);
|
||||
kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
if (!titleInfo)
|
||||
return NS_OK;
|
||||
title = NS_NewHTMLTitleElement(titleInfo.forget());
|
||||
@ -6929,6 +6935,7 @@ nsDocument::CreateElem(const nsAString& aName, nsIAtom *aPrefix, PRInt32 aNamesp
|
||||
|
||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||
mNodeInfoManager->GetNodeInfo(aName, aPrefix, aNamespaceID,
|
||||
nsIDOMNode::ELEMENT_NODE,
|
||||
getter_AddRefs(nodeInfo));
|
||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
|
@ -142,7 +142,8 @@ NS_NewDocumentFragment(nsIDOMDocumentFragment** aInstancePtrResult,
|
||||
|
||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||
nodeInfo = aNodeInfoManager->GetNodeInfo(nsGkAtoms::documentFragmentNodeName,
|
||||
nsnull, kNameSpaceID_None);
|
||||
nsnull, kNameSpaceID_None,
|
||||
nsIDOMNode::DOCUMENT_FRAGMENT_NODE);
|
||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
nsDocumentFragment *it = new nsDocumentFragment(nodeInfo.forget());
|
||||
|
@ -72,6 +72,13 @@ namespace css = mozilla::css;
|
||||
nsGenericDOMDataNode::nsGenericDOMDataNode(already_AddRefed<nsINodeInfo> aNodeInfo)
|
||||
: nsIContent(aNodeInfo)
|
||||
{
|
||||
NS_ABORT_IF_FALSE(mNodeInfo->NodeType() == nsIDOMNode::TEXT_NODE ||
|
||||
mNodeInfo->NodeType() == nsIDOMNode::CDATA_SECTION_NODE ||
|
||||
mNodeInfo->NodeType() == nsIDOMNode::COMMENT_NODE ||
|
||||
mNodeInfo->NodeType() ==
|
||||
nsIDOMNode::PROCESSING_INSTRUCTION_NODE ||
|
||||
mNodeInfo->NodeType() == nsIDOMNode::DOCUMENT_TYPE_NODE,
|
||||
"Bad NodeType in aNodeInfo");
|
||||
}
|
||||
|
||||
nsGenericDOMDataNode::~nsGenericDOMDataNode()
|
||||
|
@ -2223,6 +2223,13 @@ nsGenericElement::nsDOMSlots::~nsDOMSlots()
|
||||
nsGenericElement::nsGenericElement(already_AddRefed<nsINodeInfo> aNodeInfo)
|
||||
: Element(aNodeInfo)
|
||||
{
|
||||
NS_ABORT_IF_FALSE(mNodeInfo->NodeType() == nsIDOMNode::ELEMENT_NODE ||
|
||||
(mNodeInfo->NodeType() ==
|
||||
nsIDOMNode::DOCUMENT_FRAGMENT_NODE &&
|
||||
mNodeInfo->Equals(nsGkAtoms::documentFragmentNodeName,
|
||||
kNameSpaceID_None)),
|
||||
"Bad NodeType in aNodeInfo");
|
||||
|
||||
// Set the default scriptID to JS - but skip SetScriptTypeID as it
|
||||
// does extra work we know isn't necessary here...
|
||||
SetFlags((nsIProgrammingLanguage::JAVASCRIPT << NODE_SCRIPT_TYPE_OFFSET));
|
||||
@ -2579,6 +2586,7 @@ nsGenericElement::SetAttributeNS(const nsAString& aNamespaceURI,
|
||||
nsresult rv =
|
||||
nsContentUtils::GetNodeInfoFromQName(aNamespaceURI, aQualifiedName,
|
||||
mNodeInfo->NodeInfoManager(),
|
||||
nsIDOMNode::ATTRIBUTE_NODE,
|
||||
getter_AddRefs(ni));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
@ -3455,8 +3463,9 @@ nsGenericElement::GetExistingAttrNameFromQName(const nsAString& aStr) const
|
||||
|
||||
nsINodeInfo* nodeInfo;
|
||||
if (name->IsAtom()) {
|
||||
nodeInfo = mNodeInfo->NodeInfoManager()->GetNodeInfo(name->Atom(), nsnull,
|
||||
kNameSpaceID_None).get();
|
||||
nodeInfo = mNodeInfo->NodeInfoManager()->
|
||||
GetNodeInfo(name->Atom(), nsnull, kNameSpaceID_None,
|
||||
nsIDOMNode::ATTRIBUTE_NODE).get();
|
||||
}
|
||||
else {
|
||||
NS_ADDREF(nodeInfo = name->NodeInfo());
|
||||
@ -4695,7 +4704,8 @@ nsGenericElement::SetAttrAndNotify(PRInt32 aNamespaceID,
|
||||
else {
|
||||
nsCOMPtr<nsINodeInfo> ni;
|
||||
ni = mNodeInfo->NodeInfoManager()->GetNodeInfo(aName, aPrefix,
|
||||
aNamespaceID);
|
||||
aNamespaceID,
|
||||
nsIDOMNode::ATTRIBUTE_NODE);
|
||||
NS_ENSURE_TRUE(ni, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
rv = mAttrsAndChildren.SetAndTakeAttr(ni, aParsedValue);
|
||||
|
@ -1089,6 +1089,7 @@ GK_ATOM(headerCSP, "x-content-security-policy")
|
||||
GK_ATOM(headerCSPReportOnly, "x-content-security-policy-report-only")
|
||||
GK_ATOM(headerXFO, "x-frame-options")
|
||||
GK_ATOM(xml, "xml")
|
||||
GK_ATOM(xml_stylesheet, "xml-stylesheet")
|
||||
GK_ATOM(xmlns, "xmlns")
|
||||
GK_ATOM(xmp, "xmp")
|
||||
GK_ATOM(xulcontentsgenerated, "xulcontentsgenerated")
|
||||
|
@ -69,6 +69,7 @@ nsFixedSizeAllocator* nsNodeInfo::sNodeInfoPool = nsnull;
|
||||
// static
|
||||
nsNodeInfo*
|
||||
nsNodeInfo::Create(nsIAtom *aName, nsIAtom *aPrefix, PRInt32 aNamespaceID,
|
||||
PRUint16 aNodeType, nsIAtom *aExtraName,
|
||||
nsNodeInfoManager *aOwnerManager)
|
||||
{
|
||||
if (!sNodeInfoPool) {
|
||||
@ -88,7 +89,8 @@ nsNodeInfo::Create(nsIAtom *aName, nsIAtom *aPrefix, PRInt32 aNamespaceID,
|
||||
// Create a new one
|
||||
void* place = sNodeInfoPool->Alloc(sizeof(nsNodeInfo));
|
||||
return place ?
|
||||
new (place) nsNodeInfo(aName, aPrefix, aNamespaceID, aOwnerManager) :
|
||||
new (place) nsNodeInfo(aName, aPrefix, aNamespaceID, aNodeType, aExtraName,
|
||||
aOwnerManager) :
|
||||
nsnull;
|
||||
}
|
||||
|
||||
@ -99,34 +101,33 @@ nsNodeInfo::~nsNodeInfo()
|
||||
|
||||
NS_RELEASE(mInner.mName);
|
||||
NS_IF_RELEASE(mInner.mPrefix);
|
||||
NS_IF_RELEASE(mInner.mExtraName);
|
||||
}
|
||||
|
||||
|
||||
nsNodeInfo::nsNodeInfo(nsIAtom *aName, nsIAtom *aPrefix, PRInt32 aNamespaceID,
|
||||
PRUint16 aNodeType, nsIAtom* aExtraName,
|
||||
nsNodeInfoManager *aOwnerManager)
|
||||
{
|
||||
NS_ABORT_IF_FALSE(aName, "Must have a name");
|
||||
NS_ABORT_IF_FALSE(aOwnerManager, "Must have an owner manager");
|
||||
|
||||
mInner.mName = aName;
|
||||
NS_ADDREF(mInner.mName);
|
||||
|
||||
mInner.mPrefix = aPrefix;
|
||||
NS_IF_ADDREF(mInner.mPrefix);
|
||||
CHECK_VALID_NODEINFO(aNodeType, aName, aNamespaceID, aExtraName);
|
||||
NS_ABORT_IF_FALSE(aOwnerManager, "Invalid aOwnerManager");
|
||||
|
||||
// Initialize mInner
|
||||
NS_ADDREF(mInner.mName = aName);
|
||||
NS_IF_ADDREF(mInner.mPrefix = aPrefix);
|
||||
mInner.mNamespaceID = aNamespaceID;
|
||||
|
||||
mOwnerManager = aOwnerManager;
|
||||
NS_ADDREF(mOwnerManager);
|
||||
mInner.mNodeType = aNodeType;
|
||||
NS_ADDREF(mOwnerManager = aOwnerManager);
|
||||
NS_IF_ADDREF(mInner.mExtraName = aExtraName);
|
||||
|
||||
// Now compute our cached members.
|
||||
|
||||
// Qualified name. If we have no prefix, use ToString on
|
||||
// mInner.mName so that we get to share its buffer.
|
||||
if (aPrefix) {
|
||||
aPrefix->ToString(mQualifiedName);
|
||||
mQualifiedName.Append(PRUnichar(':'));
|
||||
mQualifiedName.Append(nsDependentAtomString(mInner.mName));
|
||||
mQualifiedName = nsDependentAtomString(mInner.mPrefix) +
|
||||
NS_LITERAL_STRING(":") +
|
||||
nsDependentAtomString(mInner.mName);
|
||||
} else {
|
||||
mInner.mName->ToString(mQualifiedName);
|
||||
}
|
||||
@ -138,6 +139,30 @@ nsNodeInfo::nsNodeInfo(nsIAtom *aName, nsIAtom *aPrefix, PRInt32 aNamespaceID,
|
||||
} else {
|
||||
mQualifiedNameCorrectedCase = mQualifiedName;
|
||||
}
|
||||
|
||||
switch (aNodeType) {
|
||||
case nsIDOMNode::ELEMENT_NODE:
|
||||
case nsIDOMNode::ATTRIBUTE_NODE:
|
||||
mNodeName = mQualifiedNameCorrectedCase;
|
||||
mInner.mName->ToString(mLocalName);
|
||||
break;
|
||||
case nsIDOMNode::TEXT_NODE:
|
||||
case nsIDOMNode::CDATA_SECTION_NODE:
|
||||
case nsIDOMNode::COMMENT_NODE:
|
||||
case nsIDOMNode::DOCUMENT_NODE:
|
||||
case nsIDOMNode::DOCUMENT_FRAGMENT_NODE:
|
||||
mInner.mName->ToString(mNodeName);
|
||||
SetDOMStringToNull(mLocalName);
|
||||
break;
|
||||
case nsIDOMNode::PROCESSING_INSTRUCTION_NODE:
|
||||
case nsIDOMNode::DOCUMENT_TYPE_NODE:
|
||||
mInner.mExtraName->ToString(mNodeName);
|
||||
SetDOMStringToNull(mLocalName);
|
||||
break;
|
||||
default:
|
||||
NS_ABORT_IF_FALSE(aNodeType == PR_UINT16_MAX,
|
||||
"Unknown node type");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -69,12 +69,14 @@ public:
|
||||
* aName and aOwnerManager may not be null.
|
||||
*/
|
||||
static nsNodeInfo *Create(nsIAtom *aName, nsIAtom *aPrefix,
|
||||
PRInt32 aNamespaceID,
|
||||
PRInt32 aNamespaceID, PRUint16 aNodeType,
|
||||
nsIAtom *aExtraName,
|
||||
nsNodeInfoManager *aOwnerManager);
|
||||
private:
|
||||
nsNodeInfo(); // Unimplemented
|
||||
nsNodeInfo(const nsNodeInfo& aOther); // Unimplemented
|
||||
nsNodeInfo(nsIAtom *aName, nsIAtom *aPrefix, PRInt32 aNamespaceID,
|
||||
PRUint16 aNodeType, nsIAtom *aExtraName,
|
||||
nsNodeInfoManager *aOwnerManager);
|
||||
protected:
|
||||
virtual ~nsNodeInfo();
|
||||
@ -96,4 +98,42 @@ private:
|
||||
void LastRelease();
|
||||
};
|
||||
|
||||
#define CHECK_VALID_NODEINFO(_nodeType, _name, _namespaceID, _extraName) \
|
||||
NS_ABORT_IF_FALSE(_nodeType == nsIDOMNode::ELEMENT_NODE || \
|
||||
_nodeType == nsIDOMNode::ATTRIBUTE_NODE || \
|
||||
_nodeType == nsIDOMNode::TEXT_NODE || \
|
||||
_nodeType == nsIDOMNode::CDATA_SECTION_NODE || \
|
||||
_nodeType == nsIDOMNode::PROCESSING_INSTRUCTION_NODE || \
|
||||
_nodeType == nsIDOMNode::COMMENT_NODE || \
|
||||
_nodeType == nsIDOMNode::DOCUMENT_NODE || \
|
||||
_nodeType == nsIDOMNode::DOCUMENT_TYPE_NODE || \
|
||||
_nodeType == nsIDOMNode::DOCUMENT_FRAGMENT_NODE || \
|
||||
_nodeType == PR_UINT16_MAX, \
|
||||
"Invalid nodeType"); \
|
||||
NS_ABORT_IF_FALSE((_nodeType == nsIDOMNode::PROCESSING_INSTRUCTION_NODE || \
|
||||
_nodeType == nsIDOMNode::DOCUMENT_TYPE_NODE) == \
|
||||
(_extraName != nsnull), \
|
||||
"Supply aExtraName for and only for PIs and doctypes"); \
|
||||
NS_ABORT_IF_FALSE(_nodeType == nsIDOMNode::ELEMENT_NODE || \
|
||||
_nodeType == nsIDOMNode::ATTRIBUTE_NODE || \
|
||||
_nodeType == PR_UINT16_MAX || \
|
||||
aNamespaceID == kNameSpaceID_None, \
|
||||
"Only attributes and elements can be in a namespace"); \
|
||||
NS_ABORT_IF_FALSE(_name && _name != nsGkAtoms::_empty, "Invalid localName");\
|
||||
NS_ABORT_IF_FALSE(((_nodeType == nsIDOMNode::TEXT_NODE) == \
|
||||
(_name == nsGkAtoms::textTagName)) && \
|
||||
((_nodeType == nsIDOMNode::CDATA_SECTION_NODE) == \
|
||||
(_name == nsGkAtoms::cdataTagName)) && \
|
||||
((_nodeType == nsIDOMNode::COMMENT_NODE) == \
|
||||
(_name == nsGkAtoms::commentTagName)) && \
|
||||
((_nodeType == nsIDOMNode::DOCUMENT_NODE) == \
|
||||
(_name == nsGkAtoms::documentNodeName)) && \
|
||||
((_nodeType == nsIDOMNode::DOCUMENT_FRAGMENT_NODE) == \
|
||||
(_name == nsGkAtoms::documentFragmentNodeName)) && \
|
||||
((_nodeType == nsIDOMNode::DOCUMENT_TYPE_NODE) == \
|
||||
(_name == nsGkAtoms::documentTypeNodeName)) && \
|
||||
((_nodeType == nsIDOMNode::PROCESSING_INSTRUCTION_NODE) ==\
|
||||
(_name == nsGkAtoms::processingInstructionTagName)), \
|
||||
"Wrong localName for nodeType");
|
||||
|
||||
#endif /* nsNodeInfo_h___ */
|
||||
|
@ -91,7 +91,9 @@ nsNodeInfoManager::NodeInfoInnerKeyCompare(const void *key1, const void *key2)
|
||||
reinterpret_cast<const nsINodeInfo::nsNodeInfoInner *>(key2);
|
||||
|
||||
if (node1->mPrefix != node2->mPrefix ||
|
||||
node1->mNamespaceID != node2->mNamespaceID) {
|
||||
node1->mNamespaceID != node2->mNamespaceID ||
|
||||
node1->mNodeType != node2->mNodeType ||
|
||||
node1->mExtraName != node2->mExtraName) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -205,13 +207,13 @@ nsNodeInfoManager::DropDocumentReference()
|
||||
|
||||
already_AddRefed<nsINodeInfo>
|
||||
nsNodeInfoManager::GetNodeInfo(nsIAtom *aName, nsIAtom *aPrefix,
|
||||
PRInt32 aNamespaceID)
|
||||
PRInt32 aNamespaceID, PRUint16 aNodeType,
|
||||
nsIAtom* aExtraName /* = nsnull */)
|
||||
{
|
||||
NS_ENSURE_TRUE(aName, nsnull);
|
||||
NS_ASSERTION(!aName->Equals(EmptyString()),
|
||||
"Don't pass an empty string to GetNodeInfo, fix caller.");
|
||||
CHECK_VALID_NODEINFO(aNodeType, aName, aNamespaceID, aExtraName);
|
||||
|
||||
nsINodeInfo::nsNodeInfoInner tmpKey(aName, aPrefix, aNamespaceID);
|
||||
nsINodeInfo::nsNodeInfoInner tmpKey(aName, aPrefix, aNamespaceID, aNodeType,
|
||||
aExtraName);
|
||||
|
||||
void *node = PL_HashTableLookup(mNodeInfoHash, &tmpKey);
|
||||
|
||||
@ -224,7 +226,8 @@ nsNodeInfoManager::GetNodeInfo(nsIAtom *aName, nsIAtom *aPrefix,
|
||||
}
|
||||
|
||||
nsRefPtr<nsNodeInfo> newNodeInfo =
|
||||
nsNodeInfo::Create(aName, aPrefix, aNamespaceID, this);
|
||||
nsNodeInfo::Create(aName, aPrefix, aNamespaceID, aNodeType, aExtraName,
|
||||
this);
|
||||
NS_ENSURE_TRUE(newNodeInfo, nsnull);
|
||||
|
||||
PLHashEntry *he;
|
||||
@ -242,12 +245,17 @@ nsNodeInfoManager::GetNodeInfo(nsIAtom *aName, nsIAtom *aPrefix,
|
||||
|
||||
nsresult
|
||||
nsNodeInfoManager::GetNodeInfo(const nsAString& aName, nsIAtom *aPrefix,
|
||||
PRInt32 aNamespaceID, nsINodeInfo** aNodeInfo)
|
||||
PRInt32 aNamespaceID, PRUint16 aNodeType,
|
||||
nsINodeInfo** aNodeInfo)
|
||||
{
|
||||
NS_ASSERTION(!aName.IsEmpty(),
|
||||
"Don't pass an empty string to GetNodeInfo, fix caller.");
|
||||
#ifdef DEBUG
|
||||
{
|
||||
nsCOMPtr<nsIAtom> nameAtom = do_GetAtom(aName);
|
||||
CHECK_VALID_NODEINFO(aNodeType, nameAtom, aNamespaceID, nsnull);
|
||||
}
|
||||
#endif
|
||||
|
||||
nsINodeInfo::nsNodeInfoInner tmpKey(aName, aPrefix, aNamespaceID);
|
||||
nsINodeInfo::nsNodeInfoInner tmpKey(aName, aPrefix, aNamespaceID, aNodeType);
|
||||
|
||||
void *node = PL_HashTableLookup(mNodeInfoHash, &tmpKey);
|
||||
|
||||
@ -264,7 +272,8 @@ nsNodeInfoManager::GetNodeInfo(const nsAString& aName, nsIAtom *aPrefix,
|
||||
NS_ENSURE_TRUE(nameAtom, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
nsRefPtr<nsNodeInfo> newNodeInfo =
|
||||
nsNodeInfo::Create(nameAtom, aPrefix, aNamespaceID, this);
|
||||
nsNodeInfo::Create(nameAtom, aPrefix, aNamespaceID, aNodeType, nsnull,
|
||||
this);
|
||||
NS_ENSURE_TRUE(newNodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
PLHashEntry *he;
|
||||
@ -280,11 +289,9 @@ nsNodeInfoManager::GetNodeInfo(const nsAString& aName, nsIAtom *aPrefix,
|
||||
nsresult
|
||||
nsNodeInfoManager::GetNodeInfo(const nsAString& aName, nsIAtom *aPrefix,
|
||||
const nsAString& aNamespaceURI,
|
||||
PRUint16 aNodeType,
|
||||
nsINodeInfo** aNodeInfo)
|
||||
{
|
||||
nsCOMPtr<nsIAtom> nameAtom = do_GetAtom(aName);
|
||||
NS_ENSURE_TRUE(nameAtom, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
PRInt32 nsid = kNameSpaceID_None;
|
||||
|
||||
if (!aNamespaceURI.IsEmpty()) {
|
||||
@ -293,15 +300,16 @@ nsNodeInfoManager::GetNodeInfo(const nsAString& aName, nsIAtom *aPrefix,
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
}
|
||||
|
||||
*aNodeInfo = GetNodeInfo(nameAtom, aPrefix, nsid).get();
|
||||
return *aNodeInfo ? NS_OK : NS_ERROR_OUT_OF_MEMORY;
|
||||
return GetNodeInfo(aName, aPrefix, nsid, aNodeType, aNodeInfo);
|
||||
}
|
||||
|
||||
already_AddRefed<nsINodeInfo>
|
||||
nsNodeInfoManager::GetTextNodeInfo()
|
||||
{
|
||||
if (!mTextNodeInfo) {
|
||||
mTextNodeInfo = GetNodeInfo(nsGkAtoms::textTagName, nsnull, kNameSpaceID_None).get();
|
||||
mTextNodeInfo = GetNodeInfo(nsGkAtoms::textTagName, nsnull,
|
||||
kNameSpaceID_None,
|
||||
nsIDOMNode::TEXT_NODE, nsnull).get();
|
||||
}
|
||||
else {
|
||||
NS_ADDREF(mTextNodeInfo);
|
||||
@ -314,7 +322,9 @@ already_AddRefed<nsINodeInfo>
|
||||
nsNodeInfoManager::GetCommentNodeInfo()
|
||||
{
|
||||
if (!mCommentNodeInfo) {
|
||||
mCommentNodeInfo = GetNodeInfo(nsGkAtoms::commentTagName, nsnull, kNameSpaceID_None).get();
|
||||
mCommentNodeInfo = GetNodeInfo(nsGkAtoms::commentTagName, nsnull,
|
||||
kNameSpaceID_None,
|
||||
nsIDOMNode::COMMENT_NODE, nsnull).get();
|
||||
}
|
||||
else {
|
||||
NS_ADDREF(mCommentNodeInfo);
|
||||
@ -327,7 +337,9 @@ already_AddRefed<nsINodeInfo>
|
||||
nsNodeInfoManager::GetDocumentNodeInfo()
|
||||
{
|
||||
if (!mDocumentNodeInfo) {
|
||||
mDocumentNodeInfo = GetNodeInfo(nsGkAtoms::documentNodeName, nsnull, kNameSpaceID_None).get();
|
||||
mDocumentNodeInfo = GetNodeInfo(nsGkAtoms::documentNodeName, nsnull,
|
||||
kNameSpaceID_None,
|
||||
nsIDOMNode::DOCUMENT_NODE, nsnull).get();
|
||||
}
|
||||
else {
|
||||
NS_ADDREF(mDocumentNodeInfo);
|
||||
|
@ -85,11 +85,14 @@ public:
|
||||
* Methods for creating nodeinfo's from atoms and/or strings.
|
||||
*/
|
||||
already_AddRefed<nsINodeInfo> GetNodeInfo(nsIAtom *aName, nsIAtom *aPrefix,
|
||||
PRInt32 aNamespaceID);
|
||||
PRInt32 aNamespaceID,
|
||||
PRUint16 aNodeType,
|
||||
nsIAtom* aExtraName = nsnull);
|
||||
nsresult GetNodeInfo(const nsAString& aName, nsIAtom *aPrefix,
|
||||
PRInt32 aNamespaceID, nsINodeInfo** aNodeInfo);
|
||||
PRInt32 aNamespaceID, PRUint16 aNodeType,
|
||||
nsINodeInfo** aNodeInfo);
|
||||
nsresult GetNodeInfo(const nsAString& aName, nsIAtom *aPrefix,
|
||||
const nsAString& aNamespaceURI,
|
||||
const nsAString& aNamespaceURI, PRUint16 aNodeType,
|
||||
nsINodeInfo** aNodeInfo);
|
||||
|
||||
/**
|
||||
|
@ -502,7 +502,9 @@ nsNodeUtils::CloneAndAdopt(nsINode *aNode, PRBool aClone, PRBool aDeep,
|
||||
|
||||
newNodeInfo = nodeInfoManager->GetNodeInfo(nodeInfo->NameAtom(),
|
||||
nodeInfo->GetPrefixAtom(),
|
||||
nodeInfo->NamespaceID());
|
||||
nodeInfo->NamespaceID(),
|
||||
nodeInfo->NodeType(),
|
||||
nodeInfo->GetExtraName());
|
||||
NS_ENSURE_TRUE(newNodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
nodeInfo = newNodeInfo;
|
||||
|
@ -143,6 +143,8 @@ NS_NewTextNode(nsIContent** aInstancePtrResult,
|
||||
nsTextNode::nsTextNode(already_AddRefed<nsINodeInfo> aNodeInfo)
|
||||
: nsGenericDOMDataNode(aNodeInfo)
|
||||
{
|
||||
NS_ABORT_IF_FALSE(mNodeInfo->NodeType() == nsIDOMNode::TEXT_NODE,
|
||||
"Bad NodeType in aNodeInfo");
|
||||
}
|
||||
|
||||
nsTextNode::~nsTextNode()
|
||||
|
@ -84,7 +84,8 @@ NS_NewHTMLAudioElement(already_AddRefed<nsINodeInfo> aNodeInfo,
|
||||
NS_ENSURE_TRUE(doc, nsnull);
|
||||
|
||||
nodeInfo = doc->NodeInfoManager()->GetNodeInfo(nsGkAtoms::audio, nsnull,
|
||||
kNameSpaceID_XHTML);
|
||||
kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ENSURE_TRUE(nodeInfo, nsnull);
|
||||
}
|
||||
|
||||
|
@ -170,7 +170,8 @@ NS_NewHTMLImageElement(already_AddRefed<nsINodeInfo> aNodeInfo,
|
||||
NS_ENSURE_TRUE(doc, nsnull);
|
||||
|
||||
nodeInfo = doc->NodeInfoManager()->GetNodeInfo(nsGkAtoms::img, nsnull,
|
||||
kNameSpaceID_XHTML);
|
||||
kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ENSURE_TRUE(nodeInfo, nsnull);
|
||||
}
|
||||
|
||||
|
@ -107,7 +107,8 @@ NS_NewHTMLOptionElement(already_AddRefed<nsINodeInfo> aNodeInfo,
|
||||
NS_ENSURE_TRUE(doc, nsnull);
|
||||
|
||||
nodeInfo = doc->NodeInfoManager()->GetNodeInfo(nsGkAtoms::option, nsnull,
|
||||
kNameSpaceID_XHTML);
|
||||
kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ENSURE_TRUE(nodeInfo, nsnull);
|
||||
}
|
||||
|
||||
|
@ -1562,7 +1562,8 @@ nsTextEditorState::CreateRootNode()
|
||||
// Now create a DIV and add it to the anonymous content child list.
|
||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||
nodeInfo = doc->NodeInfoManager()->GetNodeInfo(nsGkAtoms::div, nsnull,
|
||||
kNameSpaceID_XHTML);
|
||||
kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
nsresult rv = NS_NewHTMLElement(getter_AddRefs(mRootNode), nodeInfo.forget(),
|
||||
@ -1639,7 +1640,8 @@ be called if @placeholder is the empty string when trimmed from line breaks");
|
||||
// and add it to the anonymous content child list
|
||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||
nodeInfo = pNodeInfoManager->GetNodeInfo(nsGkAtoms::div, nsnull,
|
||||
kNameSpaceID_XHTML);
|
||||
kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
rv = NS_NewHTMLElement(getter_AddRefs(mPlaceholderDiv), nodeInfo.forget(),
|
||||
|
@ -651,7 +651,8 @@ ImageDocument::CreateSyntheticDocument()
|
||||
|
||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||
nodeInfo = mNodeInfoManager->GetNodeInfo(nsGkAtoms::img, nsnull,
|
||||
kNameSpaceID_XHTML);
|
||||
kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
mImageContent = NS_NewHTMLImageElement(nodeInfo.forget());
|
||||
|
@ -237,7 +237,8 @@ MediaDocument::CreateSyntheticDocument()
|
||||
|
||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||
nodeInfo = mNodeInfoManager->GetNodeInfo(nsGkAtoms::html, nsnull,
|
||||
kNameSpaceID_XHTML);
|
||||
kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
nsRefPtr<nsGenericHTMLElement> root = NS_NewHTMLHtmlElement(nodeInfo.forget());
|
||||
@ -250,7 +251,8 @@ MediaDocument::CreateSyntheticDocument()
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nodeInfo = mNodeInfoManager->GetNodeInfo(nsGkAtoms::head, nsnull,
|
||||
kNameSpaceID_XHTML);
|
||||
kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
// Create a <head> so our title has somewhere to live
|
||||
@ -262,7 +264,8 @@ MediaDocument::CreateSyntheticDocument()
|
||||
root->AppendChildTo(head, PR_FALSE);
|
||||
|
||||
nodeInfo = mNodeInfoManager->GetNodeInfo(nsGkAtoms::body, nsnull,
|
||||
kNameSpaceID_XHTML);
|
||||
kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
nsRefPtr<nsGenericHTMLElement> body = NS_NewHTMLBodyElement(nodeInfo.forget());
|
||||
|
@ -298,7 +298,8 @@ PluginDocument::CreateSyntheticPluginDocument()
|
||||
// make plugin content
|
||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||
nodeInfo = mNodeInfoManager->GetNodeInfo(nsGkAtoms::embed, nsnull,
|
||||
kNameSpaceID_XHTML);
|
||||
kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
rv = NS_NewHTMLElement(getter_AddRefs(mPluginContent), nodeInfo.forget(),
|
||||
NOT_FROM_PARSER);
|
||||
|
@ -112,7 +112,8 @@ VideoDocument::CreateSyntheticVideoDocument(nsIChannel* aChannel,
|
||||
// make content
|
||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||
nodeInfo = mNodeInfoManager->GetNodeInfo(nsGkAtoms::video, nsnull,
|
||||
kNameSpaceID_XHTML);
|
||||
kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_FAILURE);
|
||||
|
||||
nsRefPtr<nsHTMLMediaElement> element =
|
||||
|
@ -534,7 +534,8 @@ HTMLContentSink::CreateContentObject(const nsIParserNode& aNode,
|
||||
nsAutoString lower;
|
||||
nsContentUtils::ASCIIToLower(aNode.GetText(), lower);
|
||||
nsCOMPtr<nsIAtom> name = do_GetAtom(lower);
|
||||
nodeInfo = mNodeInfoManager->GetNodeInfo(name, nsnull, kNameSpaceID_XHTML);
|
||||
nodeInfo = mNodeInfoManager->GetNodeInfo(name, nsnull, kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
}
|
||||
else if (mNodeInfoCache[aNodeType]) {
|
||||
nodeInfo = mNodeInfoCache[aNodeType];
|
||||
@ -547,7 +548,8 @@ HTMLContentSink::CreateContentObject(const nsIParserNode& aNode,
|
||||
nsIAtom *name = parserService->HTMLIdToAtomTag(aNodeType);
|
||||
NS_ASSERTION(name, "What? Reverse mapping of id to string broken!!!");
|
||||
|
||||
nodeInfo = mNodeInfoManager->GetNodeInfo(name, nsnull, kNameSpaceID_XHTML);
|
||||
nodeInfo = mNodeInfoManager->GetNodeInfo(name, nsnull, kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_IF_ADDREF(mNodeInfoCache[aNodeType] = nodeInfo);
|
||||
}
|
||||
|
||||
@ -1602,7 +1604,8 @@ HTMLContentSink::Init(nsIDocument* aDoc,
|
||||
|
||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||
nodeInfo = mNodeInfoManager->GetNodeInfo(nsGkAtoms::html, nsnull,
|
||||
kNameSpaceID_XHTML);
|
||||
kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
// Make root part
|
||||
@ -1618,7 +1621,8 @@ HTMLContentSink::Init(nsIDocument* aDoc,
|
||||
|
||||
// Make head part
|
||||
nodeInfo = mNodeInfoManager->GetNodeInfo(nsGkAtoms::head,
|
||||
nsnull, kNameSpaceID_XHTML);
|
||||
nsnull, kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
mHead = NS_NewHTMLHeadElement(nodeInfo.forget());
|
||||
@ -2595,7 +2599,9 @@ HTMLContentSink::ProcessLINKTag(const nsIParserNode& aNode)
|
||||
// Create content object
|
||||
nsCOMPtr<nsIContent> element;
|
||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||
nodeInfo = mNodeInfoManager->GetNodeInfo(nsGkAtoms::link, nsnull, kNameSpaceID_XHTML);
|
||||
nodeInfo = mNodeInfoManager->GetNodeInfo(nsGkAtoms::link, nsnull,
|
||||
kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
|
||||
result = NS_NewHTMLElement(getter_AddRefs(element), nodeInfo.forget(),
|
||||
NOT_FROM_PARSER);
|
||||
|
@ -367,7 +367,8 @@ nsHTMLFragmentContentSink::OpenContainer(const nsIParserNode& aNode)
|
||||
nsCOMPtr<nsIAtom> name = do_GetAtom(lower);
|
||||
nodeInfo = mNodeInfoManager->GetNodeInfo(name,
|
||||
nsnull,
|
||||
kNameSpaceID_XHTML);
|
||||
kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
}
|
||||
else if (mNodeInfoCache[nodeType]) {
|
||||
@ -383,7 +384,8 @@ nsHTMLFragmentContentSink::OpenContainer(const nsIParserNode& aNode)
|
||||
|
||||
nodeInfo = mNodeInfoManager->GetNodeInfo(name,
|
||||
nsnull,
|
||||
kNameSpaceID_XHTML);
|
||||
kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
NS_ADDREF(mNodeInfoCache[nodeType] = nodeInfo);
|
||||
@ -461,7 +463,8 @@ nsHTMLFragmentContentSink::AddLeaf(const nsIParserNode& aNode)
|
||||
nsContentUtils::ASCIIToLower(aNode.GetText(), lower);
|
||||
nsCOMPtr<nsIAtom> name = do_GetAtom(lower);
|
||||
nodeInfo = mNodeInfoManager->GetNodeInfo(name, nsnull,
|
||||
kNameSpaceID_XHTML);
|
||||
kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
}
|
||||
else if (mNodeInfoCache[nodeType]) {
|
||||
@ -472,7 +475,8 @@ nsHTMLFragmentContentSink::AddLeaf(const nsIParserNode& aNode)
|
||||
NS_ASSERTION(name, "This should not happen!");
|
||||
|
||||
nodeInfo = mNodeInfoManager->GetNodeInfo(name, nsnull,
|
||||
kNameSpaceID_XHTML);
|
||||
kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
NS_ADDREF(mNodeInfoCache[nodeType] = nodeInfo);
|
||||
}
|
||||
@ -944,13 +948,7 @@ nsHTMLParanoidFragmentSink::NameFromNode(const nsIParserNode& aNode,
|
||||
|
||||
*aResult = nsnull;
|
||||
if (type == eHTMLTag_userdefined) {
|
||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||
rv =
|
||||
mNodeInfoManager->GetNodeInfo(aNode.GetText(), nsnull,
|
||||
kNameSpaceID_XHTML,
|
||||
getter_AddRefs(nodeInfo));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
NS_IF_ADDREF(*aResult = nodeInfo->NameAtom());
|
||||
*aResult = NS_NewAtom(aNode.GetText());
|
||||
} else {
|
||||
rv = NameFromType(type, aResult);
|
||||
}
|
||||
|
@ -1364,7 +1364,8 @@ nsSVGElement::AddMappedSVGValue(nsIAtom* aName, nsISupports* aValue,
|
||||
else {
|
||||
nsCOMPtr<nsINodeInfo> ni;
|
||||
ni = mNodeInfo->NodeInfoManager()->GetNodeInfo(aName, nsnull,
|
||||
aNamespaceID);
|
||||
aNamespaceID,
|
||||
nsIDOMNode::ATTRIBUTE_NODE);
|
||||
NS_ENSURE_TRUE(ni, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
rv = mMappedAttributes.SetAndTakeAttr(ni, attrVal);
|
||||
|
@ -339,7 +339,9 @@ nsSVGUseElement::CreateAnonymousContent()
|
||||
return nsnull;
|
||||
|
||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||
nodeInfo = nodeInfoManager->GetNodeInfo(nsGkAtoms::svg, nsnull, kNameSpaceID_SVG);
|
||||
nodeInfo = nodeInfoManager->GetNodeInfo(nsGkAtoms::svg, nsnull,
|
||||
kNameSpaceID_SVG,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
if (!nodeInfo)
|
||||
return nsnull;
|
||||
|
||||
|
@ -954,7 +954,8 @@ nsXBLContentSink::AddAttributesToXULPrototype(const PRUnichar **aAtts,
|
||||
}
|
||||
else {
|
||||
nsCOMPtr<nsINodeInfo> ni;
|
||||
ni = mNodeInfoManager->GetNodeInfo(localName, prefix, nameSpaceID);
|
||||
ni = mNodeInfoManager->GetNodeInfo(localName, prefix, nameSpaceID,
|
||||
nsIDOMNode::ATTRIBUTE_NODE);
|
||||
attrs[i].mName.SetTo(ni);
|
||||
}
|
||||
|
||||
|
@ -89,7 +89,8 @@ NS_NewXMLCDATASection(nsIContent** aInstancePtrResult,
|
||||
|
||||
nsCOMPtr<nsINodeInfo> ni;
|
||||
ni = aNodeInfoManager->GetNodeInfo(nsGkAtoms::cdataTagName,
|
||||
nsnull, kNameSpaceID_None);
|
||||
nsnull, kNameSpaceID_None,
|
||||
nsIDOMNode::CDATA_SECTION_NODE);
|
||||
NS_ENSURE_TRUE(ni, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
nsXMLCDATASection *instance = new nsXMLCDATASection(ni.forget());
|
||||
@ -105,6 +106,8 @@ NS_NewXMLCDATASection(nsIContent** aInstancePtrResult,
|
||||
nsXMLCDATASection::nsXMLCDATASection(already_AddRefed<nsINodeInfo> aNodeInfo)
|
||||
: nsGenericDOMDataNode(aNodeInfo)
|
||||
{
|
||||
NS_ABORT_IF_FALSE(mNodeInfo->NodeType() == nsIDOMNode::CDATA_SECTION_NODE,
|
||||
"Bad NodeType in aNodeInfo");
|
||||
}
|
||||
|
||||
nsXMLCDATASection::~nsXMLCDATASection()
|
||||
|
@ -50,7 +50,10 @@ NS_NewXMLProcessingInstruction(nsIContent** aInstancePtrResult,
|
||||
{
|
||||
NS_PRECONDITION(aNodeInfoManager, "Missing nodeinfo manager");
|
||||
|
||||
if (aTarget.EqualsLiteral("xml-stylesheet")) {
|
||||
nsCOMPtr<nsIAtom> target = do_GetAtom(aTarget);
|
||||
NS_ENSURE_TRUE(target, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
if (target == nsGkAtoms::xml_stylesheet) {
|
||||
return NS_NewXMLStylesheetProcessingInstruction(aInstancePtrResult,
|
||||
aNodeInfoManager, aData);
|
||||
}
|
||||
@ -59,11 +62,13 @@ NS_NewXMLProcessingInstruction(nsIContent** aInstancePtrResult,
|
||||
|
||||
nsCOMPtr<nsINodeInfo> ni;
|
||||
ni = aNodeInfoManager->GetNodeInfo(nsGkAtoms::processingInstructionTagName,
|
||||
nsnull, kNameSpaceID_None);
|
||||
nsnull, kNameSpaceID_None,
|
||||
nsIDOMNode::PROCESSING_INSTRUCTION_NODE,
|
||||
target);
|
||||
NS_ENSURE_TRUE(ni, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
nsXMLProcessingInstruction *instance =
|
||||
new nsXMLProcessingInstruction(ni.forget(), aTarget, aData);
|
||||
new nsXMLProcessingInstruction(ni.forget(), aData);
|
||||
if (!instance) {
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
@ -74,11 +79,13 @@ NS_NewXMLProcessingInstruction(nsIContent** aInstancePtrResult,
|
||||
}
|
||||
|
||||
nsXMLProcessingInstruction::nsXMLProcessingInstruction(already_AddRefed<nsINodeInfo> aNodeInfo,
|
||||
const nsAString& aTarget,
|
||||
const nsAString& aData)
|
||||
: nsGenericDOMDataNode(aNodeInfo),
|
||||
mTarget(aTarget)
|
||||
: nsGenericDOMDataNode(aNodeInfo)
|
||||
{
|
||||
NS_ABORT_IF_FALSE(mNodeInfo->NodeType() ==
|
||||
nsIDOMNode::PROCESSING_INSTRUCTION_NODE,
|
||||
"Bad NodeType in aNodeInfo");
|
||||
|
||||
SetTextInternal(0, mText.GetLength(),
|
||||
aData.BeginReading(), aData.Length(),
|
||||
PR_FALSE); // Don't notify (bug 420429).
|
||||
@ -110,7 +117,7 @@ NS_IMPL_RELEASE_INHERITED(nsXMLProcessingInstruction, nsGenericDOMDataNode)
|
||||
NS_IMETHODIMP
|
||||
nsXMLProcessingInstruction::GetTarget(nsAString& aTarget)
|
||||
{
|
||||
aTarget.Assign(mTarget);
|
||||
NodeInfo()->GetExtraName()->ToString(aTarget);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
@ -151,7 +158,7 @@ nsXMLProcessingInstruction::NodeType()
|
||||
void
|
||||
nsXMLProcessingInstruction::NodeName(nsAString& aNodeName)
|
||||
{
|
||||
aNodeName.Assign(mTarget);
|
||||
NodeInfo()->GetExtraName()->ToString(aNodeName);
|
||||
}
|
||||
|
||||
nsGenericDOMDataNode*
|
||||
@ -161,7 +168,7 @@ nsXMLProcessingInstruction::CloneDataNode(nsINodeInfo *aNodeInfo,
|
||||
nsAutoString data;
|
||||
nsGenericDOMDataNode::GetData(data);
|
||||
nsCOMPtr<nsINodeInfo> ni = aNodeInfo;
|
||||
return new nsXMLProcessingInstruction(ni.forget(), mTarget, data);
|
||||
return new nsXMLProcessingInstruction(ni.forget(), data);
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
@ -175,7 +182,7 @@ nsXMLProcessingInstruction::List(FILE* out, PRInt32 aIndent) const
|
||||
|
||||
nsAutoString tmp;
|
||||
ToCString(tmp, 0, mText.GetLength());
|
||||
tmp.Insert(mTarget.get(), 0);
|
||||
tmp.Insert(nsDependentAtomString(NodeInfo()->GetExtraName()).get(), 0);
|
||||
fputs(NS_LossyConvertUTF16toASCII(tmp).get(), out);
|
||||
|
||||
fputs(">\n", out);
|
||||
|
@ -50,7 +50,6 @@ class nsXMLProcessingInstruction : public nsGenericDOMDataNode,
|
||||
{
|
||||
public:
|
||||
nsXMLProcessingInstruction(already_AddRefed<nsINodeInfo> aNodeInfo,
|
||||
const nsAString& aTarget,
|
||||
const nsAString& aData);
|
||||
virtual ~nsXMLProcessingInstruction();
|
||||
|
||||
@ -89,8 +88,6 @@ protected:
|
||||
* aAttribute. Empty if the attribute isn't present.
|
||||
*/
|
||||
PRBool GetAttrValue(nsIAtom *aName, nsAString& aValue);
|
||||
|
||||
nsString mTarget;
|
||||
};
|
||||
|
||||
#endif //nsIXMLProcessingInstruction_h___
|
||||
|
@ -105,8 +105,7 @@ NS_IMPL_RELEASE_INHERITED(nsXMLStylesheetPI, nsXMLProcessingInstruction)
|
||||
|
||||
nsXMLStylesheetPI::nsXMLStylesheetPI(already_AddRefed<nsINodeInfo> aNodeInfo,
|
||||
const nsAString& aData)
|
||||
: nsXMLProcessingInstruction(aNodeInfo, NS_LITERAL_STRING("xml-stylesheet"),
|
||||
aData)
|
||||
: nsXMLProcessingInstruction(aNodeInfo, aData)
|
||||
{
|
||||
}
|
||||
|
||||
@ -266,7 +265,9 @@ NS_NewXMLStylesheetProcessingInstruction(nsIContent** aInstancePtrResult,
|
||||
|
||||
nsCOMPtr<nsINodeInfo> ni;
|
||||
ni = aNodeInfoManager->GetNodeInfo(nsGkAtoms::processingInstructionTagName,
|
||||
nsnull, kNameSpaceID_None);
|
||||
nsnull, kNameSpaceID_None,
|
||||
nsIDOMNode::PROCESSING_INSTRUCTION_NODE,
|
||||
nsGkAtoms::xml_stylesheet);
|
||||
NS_ENSURE_TRUE(ni, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
nsXMLStylesheetPI *instance = new nsXMLStylesheetPI(ni.forget(), aData);
|
||||
|
@ -1012,7 +1012,8 @@ nsXMLContentSink::HandleStartElement(const PRUnichar *aName,
|
||||
}
|
||||
|
||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||
nodeInfo = mNodeInfoManager->GetNodeInfo(localName, prefix, nameSpaceID);
|
||||
nodeInfo = mNodeInfoManager->GetNodeInfo(localName, prefix, nameSpaceID,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
result = CreateElement(aAtts, aAttsCount, nodeInfo, aLineNumber,
|
||||
|
@ -641,7 +641,6 @@ nsXHTMLParanoidFragmentSink::AddAttributes(const PRUnichar** aAtts,
|
||||
nsTArray<const PRUnichar *> allowedAttrs;
|
||||
PRInt32 nameSpaceID;
|
||||
nsCOMPtr<nsIAtom> prefix, localName;
|
||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||
|
||||
if (!mNullPrincipal) {
|
||||
mNullPrincipal = do_CreateInstance(NS_NULLPRINCIPAL_CONTRACTID, &rv);
|
||||
@ -651,10 +650,8 @@ nsXHTMLParanoidFragmentSink::AddAttributes(const PRUnichar** aAtts,
|
||||
while (*aAtts) {
|
||||
nsContentUtils::SplitExpatName(aAtts[0], getter_AddRefs(prefix),
|
||||
getter_AddRefs(localName), &nameSpaceID);
|
||||
nodeInfo = mNodeInfoManager->GetNodeInfo(localName, prefix, nameSpaceID);
|
||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
// check the attributes we allow that contain URIs
|
||||
if (IsAttrURI(nodeInfo->NameAtom())) {
|
||||
if (IsAttrURI(localName)) {
|
||||
if (!aAtts[1])
|
||||
rv = NS_ERROR_FAILURE;
|
||||
if (!baseURI)
|
||||
@ -696,21 +693,16 @@ nsXHTMLParanoidFragmentSink::HandleStartElement(const PRUnichar *aName,
|
||||
if (nameSpaceID != kNameSpaceID_XHTML)
|
||||
return NS_OK;
|
||||
|
||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||
nodeInfo = mNodeInfoManager->GetNodeInfo(localName, prefix, nameSpaceID);
|
||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
// bounce it if it's not on the whitelist or we're inside
|
||||
// <script> or <style>
|
||||
nsCOMPtr<nsIAtom> name = nodeInfo->NameAtom();
|
||||
if (mSkipLevel != 0 ||
|
||||
name == nsGkAtoms::script ||
|
||||
name == nsGkAtoms::style) {
|
||||
localName == nsGkAtoms::script ||
|
||||
localName == nsGkAtoms::style) {
|
||||
++mSkipLevel; // track this so we don't spew script text
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
if (!sAllowedTags || !sAllowedTags->GetEntry(name))
|
||||
if (!sAllowedTags || !sAllowedTags->GetEntry(localName))
|
||||
return NS_OK;
|
||||
|
||||
// It's an allowed element, so let's scrub the attributes
|
||||
@ -718,14 +710,10 @@ nsXHTMLParanoidFragmentSink::HandleStartElement(const PRUnichar *aName,
|
||||
for (PRUint32 i = 0; i < aAttsCount; i += 2) {
|
||||
nsContentUtils::SplitExpatName(aAtts[i], getter_AddRefs(prefix),
|
||||
getter_AddRefs(localName), &nameSpaceID);
|
||||
nodeInfo = mNodeInfoManager->GetNodeInfo(localName, prefix, nameSpaceID);
|
||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
name = nodeInfo->NameAtom();
|
||||
// Add if it's xmlns, xml: or on the HTML whitelist
|
||||
if (nameSpaceID == kNameSpaceID_XMLNS ||
|
||||
nameSpaceID == kNameSpaceID_XML ||
|
||||
(sAllowedAttributes && sAllowedAttributes->GetEntry(name))) {
|
||||
(sAllowedAttributes && sAllowedAttributes->GetEntry(localName))) {
|
||||
allowedAttrs.AppendElement(aAtts[i]);
|
||||
allowedAttrs.AppendElement(aAtts[i + 1]);
|
||||
}
|
||||
@ -752,17 +740,12 @@ nsXHTMLParanoidFragmentSink::HandleEndElement(const PRUnichar *aName)
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||
nodeInfo = mNodeInfoManager->GetNodeInfo(localName, prefix, nameSpaceID);
|
||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
nsCOMPtr<nsIAtom> name = nodeInfo->NameAtom();
|
||||
if (mSkipLevel != 0) {
|
||||
--mSkipLevel;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
if (!sAllowedTags || !sAllowedTags->GetEntry(name)) {
|
||||
if (!sAllowedTags || !sAllowedTags->GetEntry(localName)) {
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
@ -285,7 +285,8 @@ txMozillaTextOutput::createXHTMLElement(nsIAtom* aName,
|
||||
|
||||
nsCOMPtr<nsINodeInfo> ni;
|
||||
ni = mDocument->NodeInfoManager()->
|
||||
GetNodeInfo(aName, nsnull, kNameSpaceID_XHTML);
|
||||
GetNodeInfo(aName, nsnull, kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ENSURE_TRUE(ni, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
return NS_NewHTMLElement(aResult, ni.forget(), NOT_FROM_PARSER);
|
||||
|
@ -561,7 +561,8 @@ txMozillaXMLOutput::startElementInternal(nsIAtom* aPrefix,
|
||||
|
||||
// Create the element
|
||||
nsCOMPtr<nsINodeInfo> ni;
|
||||
ni = mNodeInfoManager->GetNodeInfo(aLocalName, aPrefix, aNsID);
|
||||
ni = mNodeInfoManager->GetNodeInfo(aLocalName, aPrefix, aNsID,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ENSURE_TRUE(ni, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
NS_NewElement(getter_AddRefs(mOpenedElement), aNsID, ni.forget(),
|
||||
@ -968,7 +969,8 @@ txMozillaXMLOutput::createHTMLElement(nsIAtom* aName,
|
||||
|
||||
nsCOMPtr<nsINodeInfo> ni;
|
||||
ni = mNodeInfoManager->GetNodeInfo(aName, nsnull,
|
||||
kNameSpaceID_XHTML);
|
||||
kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ENSURE_TRUE(ni, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
return NS_NewHTMLElement(aResult, ni.forget(), mCreatingNewDocument ?
|
||||
|
@ -536,7 +536,9 @@ nsXTFElementWrapper::GetExistingAttrNameFromQName(const nsAString& aStr) const
|
||||
if (!nodeInfo) {
|
||||
nsCOMPtr<nsIAtom> nameAtom = do_GetAtom(aStr);
|
||||
if (HandledByInner(nameAtom))
|
||||
nodeInfo = mNodeInfo->NodeInfoManager()->GetNodeInfo(nameAtom, nsnull, kNameSpaceID_None).get();
|
||||
nodeInfo = mNodeInfo->NodeInfoManager()->
|
||||
GetNodeInfo(nameAtom, nsnull, kNameSpaceID_None,
|
||||
nsIDOMNode::ATTRIBUTE_NODE).get();
|
||||
}
|
||||
|
||||
return nodeInfo;
|
||||
|
@ -329,9 +329,9 @@ nsXULElement::Create(nsXULPrototypeElement* aPrototype,
|
||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||
if (aDocument) {
|
||||
nsINodeInfo* ni = aPrototype->mNodeInfo;
|
||||
nodeInfo = aDocument->NodeInfoManager()->GetNodeInfo(ni->NameAtom(),
|
||||
ni->GetPrefixAtom(),
|
||||
ni->NamespaceID());
|
||||
nodeInfo = aDocument->NodeInfoManager()->
|
||||
GetNodeInfo(ni->NameAtom(), ni->GetPrefixAtom(), ni->NamespaceID(),
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
}
|
||||
else {
|
||||
@ -2652,7 +2652,8 @@ nsXULPrototypeElement::Serialize(nsIObjectOutputStream* aStream,
|
||||
if (mAttributes[i].mName.IsAtom()) {
|
||||
ni = mNodeInfo->NodeInfoManager()->
|
||||
GetNodeInfo(mAttributes[i].mName.Atom(), nsnull,
|
||||
kNameSpaceID_None);
|
||||
kNameSpaceID_None,
|
||||
nsIDOMNode::ATTRIBUTE_NODE);
|
||||
NS_ASSERTION(ni, "the nodeinfo should already exist");
|
||||
}
|
||||
else {
|
||||
|
@ -465,7 +465,8 @@ XULContentSinkImpl::NormalizeAttributeString(const PRUnichar *aExpatName,
|
||||
|
||||
nsCOMPtr<nsINodeInfo> ni;
|
||||
ni = mNodeInfoManager->GetNodeInfo(localName, prefix,
|
||||
nameSpaceID);
|
||||
nameSpaceID,
|
||||
nsIDOMNode::ATTRIBUTE_NODE);
|
||||
NS_ENSURE_TRUE(ni, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
aName.SetTo(ni);
|
||||
@ -518,7 +519,8 @@ XULContentSinkImpl::HandleStartElement(const PRUnichar *aName,
|
||||
getter_AddRefs(localName), &nameSpaceID);
|
||||
|
||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||
nodeInfo = mNodeInfoManager->GetNodeInfo(localName, prefix, nameSpaceID);
|
||||
nodeInfo = mNodeInfoManager->GetNodeInfo(localName, prefix, nameSpaceID,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
nsresult rv = NS_OK;
|
||||
|
@ -3704,7 +3704,8 @@ nsXULDocument::CreateElementFromPrototype(nsXULPrototypeElement* aPrototype,
|
||||
nsCOMPtr<nsINodeInfo> newNodeInfo;
|
||||
newNodeInfo = mNodeInfoManager->GetNodeInfo(aPrototype->mNodeInfo->NameAtom(),
|
||||
aPrototype->mNodeInfo->GetPrefixAtom(),
|
||||
aPrototype->mNodeInfo->NamespaceID());
|
||||
aPrototype->mNodeInfo->NamespaceID(),
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
if (!newNodeInfo) return NS_ERROR_OUT_OF_MEMORY;
|
||||
nsCOMPtr<nsIContent> content;
|
||||
PRInt32 ns = newNodeInfo->NamespaceID();
|
||||
|
@ -317,7 +317,11 @@ nsXULPrototypeDocument::Read(nsIObjectInputStream* aStream)
|
||||
rv |= aStream->ReadString(localName);
|
||||
|
||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||
// Using PR_UINT16_MAX here as we don't know which nodeinfos will be
|
||||
// used for attributes and which for elements. And that doesn't really
|
||||
// matter.
|
||||
rv |= mNodeInfoManager->GetNodeInfo(localName, prefix, namespaceURI,
|
||||
PR_UINT16_MAX,
|
||||
getter_AddRefs(nodeInfo));
|
||||
if (!nodeInfos.AppendObject(nodeInfo))
|
||||
rv |= NS_ERROR_OUT_OF_MEMORY;
|
||||
@ -369,7 +373,8 @@ GetNodeInfos(nsXULPrototypeElement* aPrototype,
|
||||
nsAttrName* name = &aPrototype->mAttributes[i].mName;
|
||||
if (name->IsAtom()) {
|
||||
ni = aPrototype->mNodeInfo->NodeInfoManager()->
|
||||
GetNodeInfo(name->Atom(), nsnull, kNameSpaceID_None);
|
||||
GetNodeInfo(name->Atom(), nsnull, kNameSpaceID_None,
|
||||
nsIDOMNode::ATTRIBUTE_NODE);
|
||||
NS_ENSURE_TRUE(ni, NS_ERROR_OUT_OF_MEMORY);
|
||||
}
|
||||
else {
|
||||
|
@ -1401,7 +1401,8 @@ nsXULContentBuilder::CreateElement(PRInt32 aNameSpaceID,
|
||||
nsCOMPtr<nsIContent> result;
|
||||
|
||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||
nodeInfo = doc->NodeInfoManager()->GetNodeInfo(aTag, nsnull, aNameSpaceID);
|
||||
nodeInfo = doc->NodeInfoManager()->GetNodeInfo(aTag, nsnull, aNameSpaceID,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
|
||||
rv = NS_NewElement(getter_AddRefs(result), aNameSpaceID, nodeInfo.forget(),
|
||||
NOT_FROM_PARSER);
|
||||
|
@ -1535,8 +1535,9 @@ nsCSSFrameConstructor::CreateGeneratedContent(nsFrameConstructorState& aState,
|
||||
// XXX Check if it's an image type we can handle...
|
||||
|
||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||
nodeInfo = mDocument->NodeInfoManager()->GetNodeInfo(nsGkAtoms::mozgeneratedcontentimage, nsnull,
|
||||
kNameSpaceID_XHTML);
|
||||
nodeInfo = mDocument->NodeInfoManager()->
|
||||
GetNodeInfo(nsGkAtoms::mozgeneratedcontentimage, nsnull,
|
||||
kNameSpaceID_XHTML, nsIDOMNode::ELEMENT_NODE);
|
||||
|
||||
nsCOMPtr<nsIContent> content;
|
||||
NS_NewGenConImageContent(getter_AddRefs(content), nodeInfo.forget(),
|
||||
@ -1712,7 +1713,8 @@ nsCSSFrameConstructor::CreateGeneratedContentItem(nsFrameConstructorState& aStat
|
||||
nsIAtom* elemName = aPseudoElement == nsCSSPseudoElements::ePseudo_before ?
|
||||
nsGkAtoms::mozgeneratedcontentbefore : nsGkAtoms::mozgeneratedcontentafter;
|
||||
nodeInfo = mDocument->NodeInfoManager()->GetNodeInfo(elemName, nsnull,
|
||||
kNameSpaceID_None);
|
||||
kNameSpaceID_None,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
nsCOMPtr<nsIContent> container;
|
||||
nsresult rv = NS_NewXMLElement(getter_AddRefs(container), nodeInfo.forget());
|
||||
if (NS_FAILED(rv))
|
||||
|
@ -378,17 +378,20 @@ nsContentDLF::CreateBlankDocument(nsILoadGroup *aLoadGroup,
|
||||
nsCOMPtr<nsINodeInfo> htmlNodeInfo;
|
||||
|
||||
// generate an html html element
|
||||
htmlNodeInfo = nim->GetNodeInfo(nsGkAtoms::html, 0, kNameSpaceID_XHTML);
|
||||
htmlNodeInfo = nim->GetNodeInfo(nsGkAtoms::html, 0, kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
nsCOMPtr<nsIContent> htmlElement =
|
||||
NS_NewHTMLHtmlElement(htmlNodeInfo.forget());
|
||||
|
||||
// generate an html head element
|
||||
htmlNodeInfo = nim->GetNodeInfo(nsGkAtoms::head, 0, kNameSpaceID_XHTML);
|
||||
htmlNodeInfo = nim->GetNodeInfo(nsGkAtoms::head, 0, kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
nsCOMPtr<nsIContent> headElement =
|
||||
NS_NewHTMLHeadElement(htmlNodeInfo.forget());
|
||||
|
||||
// generate an html body elemment
|
||||
htmlNodeInfo = nim->GetNodeInfo(nsGkAtoms::body, 0, kNameSpaceID_XHTML);
|
||||
htmlNodeInfo = nim->GetNodeInfo(nsGkAtoms::body, 0, kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
nsCOMPtr<nsIContent> bodyElement =
|
||||
NS_NewHTMLBodyElement(htmlNodeInfo.forget());
|
||||
|
||||
|
@ -1029,7 +1029,8 @@ nsComboboxControlFrame::CreateAnonymousContent(nsTArray<ContentInfo>& aElements)
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
|
||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||
nodeInfo = nimgr->GetNodeInfo(nsGkAtoms::button, nsnull, kNameSpaceID_XHTML);
|
||||
nodeInfo = nimgr->GetNodeInfo(nsGkAtoms::button, nsnull, kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
|
||||
// create button which drops the list down
|
||||
NS_NewHTMLElement(getter_AddRefs(mButtonContent), nodeInfo.forget(),
|
||||
|
@ -237,7 +237,8 @@ nsFileControlFrame::CreateAnonymousContent(nsTArray<ContentInfo>& aElements)
|
||||
|
||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||
nodeInfo = doc->NodeInfoManager()->GetNodeInfo(nsGkAtoms::input, nsnull,
|
||||
kNameSpaceID_XHTML);
|
||||
kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
|
||||
// Create the text content
|
||||
NS_NewHTMLElement(getter_AddRefs(mTextContent), nodeInfo.forget(),
|
||||
@ -291,7 +292,8 @@ nsFileControlFrame::CreateAnonymousContent(nsTArray<ContentInfo>& aElements)
|
||||
|
||||
// Create the browse button
|
||||
nodeInfo = doc->NodeInfoManager()->GetNodeInfo(nsGkAtoms::input, nsnull,
|
||||
kNameSpaceID_XHTML);
|
||||
kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_NewHTMLElement(getter_AddRefs(mBrowse), nodeInfo.forget(),
|
||||
dom::NOT_FROM_PARSER);
|
||||
if (!mBrowse)
|
||||
@ -317,7 +319,8 @@ nsFileControlFrame::CreateAnonymousContent(nsTArray<ContentInfo>& aElements)
|
||||
if (mode != 0) {
|
||||
mCaptureMouseListener->mMode = mode;
|
||||
nodeInfo = doc->NodeInfoManager()->GetNodeInfo(nsGkAtoms::input, nsnull,
|
||||
kNameSpaceID_XHTML);
|
||||
kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_NewHTMLElement(getter_AddRefs(mCapture), nodeInfo.forget(),
|
||||
dom::NOT_FROM_PARSER);
|
||||
if (!mCapture)
|
||||
|
@ -195,7 +195,8 @@ nsIsIndexFrame::CreateAnonymousContent(nsTArray<ContentInfo>& aElements)
|
||||
|
||||
// Create an hr
|
||||
nsCOMPtr<nsINodeInfo> hrInfo;
|
||||
hrInfo = nimgr->GetNodeInfo(nsGkAtoms::hr, nsnull, kNameSpaceID_XHTML);
|
||||
hrInfo = nimgr->GetNodeInfo(nsGkAtoms::hr, nsnull, kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
|
||||
NS_NewHTMLElement(getter_AddRefs(mPreHr), hrInfo.forget(),
|
||||
dom::NOT_FROM_PARSER);
|
||||
@ -214,7 +215,8 @@ nsIsIndexFrame::CreateAnonymousContent(nsTArray<ContentInfo>& aElements)
|
||||
|
||||
// Create text input field
|
||||
nsCOMPtr<nsINodeInfo> inputInfo;
|
||||
inputInfo = nimgr->GetNodeInfo(nsGkAtoms::input, nsnull, kNameSpaceID_XHTML);
|
||||
inputInfo = nimgr->GetNodeInfo(nsGkAtoms::input, nsnull, kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
|
||||
NS_NewHTMLElement(getter_AddRefs(mInputContent), inputInfo.forget(),
|
||||
dom::NOT_FROM_PARSER);
|
||||
@ -232,7 +234,8 @@ nsIsIndexFrame::CreateAnonymousContent(nsTArray<ContentInfo>& aElements)
|
||||
mInputContent->AddEventListenerByIID(mListener, NS_GET_IID(nsIDOMKeyListener));
|
||||
|
||||
// Create an hr
|
||||
hrInfo = nimgr->GetNodeInfo(nsGkAtoms::hr, nsnull, kNameSpaceID_XHTML);
|
||||
hrInfo = nimgr->GetNodeInfo(nsGkAtoms::hr, nsnull, kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_NewHTMLElement(getter_AddRefs(mPostHr), hrInfo.forget(),
|
||||
dom::NOT_FROM_PARSER);
|
||||
if (!mPostHr || !aElements.AppendElement(mPostHr))
|
||||
|
@ -90,7 +90,8 @@ nsProgressFrame::CreateAnonymousContent(nsTArray<ContentInfo>& aElements)
|
||||
|
||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||
nodeInfo = doc->NodeInfoManager()->GetNodeInfo(nsGkAtoms::div, nsnull,
|
||||
kNameSpaceID_XHTML);
|
||||
kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
// Create the div.
|
||||
|
@ -2437,7 +2437,8 @@ nsGfxScrollFrameInner::CreateAnonymousContent(
|
||||
presContext->Document()->NodeInfoManager();
|
||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||
nodeInfo = nodeInfoManager->GetNodeInfo(nsGkAtoms::scrollbar, nsnull,
|
||||
kNameSpaceID_XUL);
|
||||
kNameSpaceID_XUL,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
if (canHaveHorizontal) {
|
||||
@ -2465,7 +2466,8 @@ nsGfxScrollFrameInner::CreateAnonymousContent(
|
||||
if (isResizable) {
|
||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||
nodeInfo = nodeInfoManager->GetNodeInfo(nsGkAtoms::resizer, nsnull,
|
||||
kNameSpaceID_XUL);
|
||||
kNameSpaceID_XUL,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
NS_TrustedNewXULElement(getter_AddRefs(mResizerContent), nodeInfo.forget());
|
||||
@ -2510,7 +2512,8 @@ nsGfxScrollFrameInner::CreateAnonymousContent(
|
||||
|
||||
if (canHaveHorizontal && canHaveVertical) {
|
||||
nodeInfo = nodeInfoManager->GetNodeInfo(nsGkAtoms::scrollcorner, nsnull,
|
||||
kNameSpaceID_XUL);
|
||||
kNameSpaceID_XUL,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_TrustedNewXULElement(getter_AddRefs(mScrollCornerContent), nodeInfo.forget());
|
||||
if (!aElements.AppendElement(mScrollCornerContent))
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
|
@ -100,7 +100,8 @@ nsVideoFrame::CreateAnonymousContent(nsTArray<ContentInfo>& aElements)
|
||||
// before we load, or on a subsequent load.
|
||||
nodeInfo = nodeInfoManager->GetNodeInfo(nsGkAtoms::img,
|
||||
nsnull,
|
||||
kNameSpaceID_XHTML);
|
||||
kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
Element* element = NS_NewHTMLImageElement(nodeInfo.forget());
|
||||
mPosterImage = element;
|
||||
@ -134,7 +135,8 @@ nsVideoFrame::CreateAnonymousContent(nsTArray<ContentInfo>& aElements)
|
||||
// actual controls.
|
||||
nodeInfo = nodeInfoManager->GetNodeInfo(nsGkAtoms::videocontrols,
|
||||
nsnull,
|
||||
kNameSpaceID_XUL);
|
||||
kNameSpaceID_XUL,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
NS_TrustedNewXULElement(getter_AddRefs(mVideoControls), nodeInfo.forget());
|
||||
|
@ -122,7 +122,8 @@ nsDocElementBoxFrame::CreateAnonymousContent(nsTArray<ContentInfo>& aElements)
|
||||
// create the top-secret popupgroup node. shhhhh!
|
||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||
nodeInfo = nodeInfoManager->GetNodeInfo(nsGkAtoms::popupgroup,
|
||||
nsnull, kNameSpaceID_XUL);
|
||||
nsnull, kNameSpaceID_XUL,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
nsresult rv = NS_NewXULElement(getter_AddRefs(mPopupgroupContent),
|
||||
@ -134,7 +135,8 @@ nsDocElementBoxFrame::CreateAnonymousContent(nsTArray<ContentInfo>& aElements)
|
||||
|
||||
// create the top-secret default tooltip node. shhhhh!
|
||||
nodeInfo = nodeInfoManager->GetNodeInfo(nsGkAtoms::tooltip, nsnull,
|
||||
kNameSpaceID_XUL);
|
||||
kNameSpaceID_XUL,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
rv = NS_NewXULElement(getter_AddRefs(mTooltipContent), nodeInfo.forget());
|
||||
|
@ -377,7 +377,8 @@ nsHtml5TreeOperation::Perform(nsHtml5TreeOpExecutor* aBuilder,
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIContent> newContent;
|
||||
nsCOMPtr<nsINodeInfo> nodeInfo = aBuilder->GetNodeInfoManager()->GetNodeInfo(name, nsnull, ns);
|
||||
nsCOMPtr<nsINodeInfo> nodeInfo = aBuilder->GetNodeInfoManager()->
|
||||
GetNodeInfo(name, nsnull, ns, nsIDOMNode::ELEMENT_NODE);
|
||||
NS_ASSERTION(nodeInfo, "Got null nodeinfo.");
|
||||
NS_NewElement(getter_AddRefs(newContent),
|
||||
ns, nodeInfo.forget(),
|
||||
@ -418,7 +419,8 @@ nsHtml5TreeOperation::Perform(nsHtml5TreeOpExecutor* aBuilder,
|
||||
nsCOMPtr<nsINodeInfo> optionNodeInfo =
|
||||
aBuilder->GetNodeInfoManager()->GetNodeInfo(nsHtml5Atoms::option,
|
||||
nsnull,
|
||||
kNameSpaceID_XHTML);
|
||||
kNameSpaceID_XHTML,
|
||||
nsIDOMNode::ELEMENT_NODE);
|
||||
|
||||
for (PRUint32 i = 0; i < theContent.Length(); ++i) {
|
||||
nsCOMPtr<nsIContent> optionElt;
|
||||
|
Loading…
x
Reference in New Issue
Block a user