From dc5efe66e135b9bc124e4414e628094cd78b7380 Mon Sep 17 00:00:00 2001 From: "jst%netscape.com" Date: Thu, 14 Sep 2000 05:19:00 +0000 Subject: [PATCH] Fixing nsbeta3+ bug 52572. Updating the DOM intefaces in mozilla to match the current DOM Level 2 PR. r=kandrot@netscape.com git-svn-id: svn://10.0.0.236/trunk@79073 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/content/base/src/nsDOMAttribute.cpp | 17 ++++- mozilla/content/base/src/nsDocument.cpp | 19 ++++-- .../content/base/src/nsDocumentFragment.cpp | 14 ++-- .../content/base/src/nsGenericDOMDataNode.cpp | 8 +-- .../content/base/src/nsGenericDOMDataNode.h | 42 +++++++----- mozilla/content/base/src/nsGenericElement.cpp | 26 ++++++-- mozilla/content/base/src/nsGenericElement.h | 65 ++++++++++--------- .../html/document/src/nsHTMLDocument.cpp | 13 +++- .../xul/content/src/nsXULAttributes.cpp | 14 +++- .../content/xul/content/src/nsXULElement.cpp | 21 +++++- .../xul/document/src/nsXULDocument.cpp | 17 ++++- mozilla/dom/public/coreDom/nsIDOMNode.h | 10 ++- mozilla/dom/public/idl/coreDom/Node.idl | 10 +-- mozilla/dom/public/nsDOMPropEnums.h | 5 +- mozilla/dom/public/nsDOMPropNames.h | 5 +- mozilla/dom/src/coreDOM/nsJSNode.cpp | 47 ++++++++++++-- mozilla/layout/base/src/nsDOMAttribute.cpp | 17 ++++- mozilla/layout/base/src/nsDocument.cpp | 19 ++++-- .../layout/base/src/nsDocumentFragment.cpp | 14 ++-- .../layout/base/src/nsGenericDOMDataNode.cpp | 8 +-- .../layout/base/src/nsGenericDOMDataNode.h | 42 +++++++----- mozilla/layout/base/src/nsGenericElement.cpp | 26 ++++++-- mozilla/layout/base/src/nsGenericElement.h | 65 ++++++++++--------- .../html/document/src/nsHTMLDocument.cpp | 13 +++- mozilla/rdf/content/src/nsXULAttributes.cpp | 14 +++- mozilla/rdf/content/src/nsXULDocument.cpp | 17 ++++- mozilla/rdf/content/src/nsXULElement.cpp | 21 +++++- 27 files changed, 414 insertions(+), 175 deletions(-) diff --git a/mozilla/content/base/src/nsDOMAttribute.cpp b/mozilla/content/base/src/nsDOMAttribute.cpp index d48d00c7c7f..4829cda18e7 100644 --- a/mozilla/content/base/src/nsDOMAttribute.cpp +++ b/mozilla/content/base/src/nsDOMAttribute.cpp @@ -310,6 +310,16 @@ nsDOMAttribute::HasChildNodes(PRBool* aHasChildNodes) return NS_OK; } +NS_IMETHODIMP +nsDOMAttribute::HasAttributes(PRBool* aHasAttributes) +{ + NS_ENSURE_ARG_POINTER(aHasAttributes); + + *aHasAttributes = PR_FALSE; + + return NS_OK; +} + NS_IMETHODIMP nsDOMAttribute::GetFirstChild(nsIDOMNode** aFirstChild) { @@ -510,10 +520,11 @@ nsDOMAttribute::Normalize() } NS_IMETHODIMP -nsDOMAttribute::Supports(const nsAReadableString& aFeature, const nsAReadableString& aVersion, - PRBool* aReturn) +nsDOMAttribute::IsSupported(const nsAReadableString& aFeature, + const nsAReadableString& aVersion, + PRBool* aReturn) { - return nsGenericElement::InternalSupports(aFeature, aVersion, aReturn); + return nsGenericElement::InternalIsSupported(aFeature, aVersion, aReturn); } diff --git a/mozilla/content/base/src/nsDocument.cpp b/mozilla/content/base/src/nsDocument.cpp index 3ec95f36ec0..8e5631cdfba 100644 --- a/mozilla/content/base/src/nsDocument.cpp +++ b/mozilla/content/base/src/nsDocument.cpp @@ -421,7 +421,7 @@ nsDOMImplementation::HasFeature(const nsAReadableString& aFeature, const nsAReadableString& aVersion, PRBool* aReturn) { - return nsGenericElement::InternalSupports(aFeature, aVersion, aReturn); + return nsGenericElement::InternalIsSupported(aFeature, aVersion, aReturn); } NS_IMETHODIMP @@ -2593,6 +2593,16 @@ nsDocument::HasChildNodes(PRBool* aHasChildNodes) return NS_OK; } +NS_IMETHODIMP +nsDocument::HasAttributes(PRBool* aHasAttributes) +{ + NS_ENSURE_ARG(aHasAttributes); + + *aHasAttributes = PR_FALSE; + + return NS_OK; +} + NS_IMETHODIMP nsDocument::GetFirstChild(nsIDOMNode** aFirstChild) { @@ -2968,10 +2978,11 @@ nsDocument::Normalize() } NS_IMETHODIMP -nsDocument::Supports(const nsAReadableString& aFeature, const nsAReadableString& aVersion, - PRBool* aReturn) +nsDocument::IsSupported(const nsAReadableString& aFeature, + const nsAReadableString& aVersion, + PRBool* aReturn) { - return nsGenericElement::InternalSupports(aFeature, aVersion, aReturn); + return nsGenericElement::InternalIsSupported(aFeature, aVersion, aReturn); } NS_IMETHODIMP diff --git a/mozilla/content/base/src/nsDocumentFragment.cpp b/mozilla/content/base/src/nsDocumentFragment.cpp index a45a1535527..ad3923d36ff 100644 --- a/mozilla/content/base/src/nsDocumentFragment.cpp +++ b/mozilla/content/base/src/nsDocumentFragment.cpp @@ -89,14 +89,17 @@ public: { return mInner.AppendChild(aNewChild, aReturn); } NS_IMETHOD HasChildNodes(PRBool* aReturn) { return mInner.HasChildNodes(aReturn); } + NS_IMETHOD HasAttributes(PRBool* aReturn) + { return mInner.HasAttributes(aReturn); } NS_IMETHOD CloneNode(PRBool aDeep, nsIDOMNode** aReturn); NS_IMETHOD GetPrefix(nsAWritableString& aPrefix); NS_IMETHOD SetPrefix(const nsAReadableString& aPrefix); NS_IMETHOD GetNamespaceURI(nsAWritableString& aNamespaceURI); NS_IMETHOD GetLocalName(nsAWritableString& aLocalName); NS_IMETHOD Normalize(); - NS_IMETHOD Supports(const nsAReadableString& aFeature, const nsAReadableString& aVersion, - PRBool* aReturn); + NS_IMETHOD IsSupported(const nsAReadableString& aFeature, + const nsAReadableString& aVersion, + PRBool* aReturn); // interface nsIScriptObjectOwner NS_IMETHOD GetScriptObject(nsIScriptContext* aContext, void** aScriptObject); @@ -428,10 +431,11 @@ nsDocumentFragment::Normalize() NS_IMETHODIMP -nsDocumentFragment::Supports(const nsAReadableString& aFeature, const nsAReadableString& aVersion, - PRBool* aReturn) +nsDocumentFragment::IsSupported(const nsAReadableString& aFeature, + const nsAReadableString& aVersion, + PRBool* aReturn) { - return nsGenericElement::InternalSupports(aFeature, aVersion, aReturn); + return nsGenericElement::InternalIsSupported(aFeature, aVersion, aReturn); } NS_IMETHODIMP diff --git a/mozilla/content/base/src/nsGenericDOMDataNode.cpp b/mozilla/content/base/src/nsGenericDOMDataNode.cpp index 61c161bbc03..6a6be9c8405 100644 --- a/mozilla/content/base/src/nsGenericDOMDataNode.cpp +++ b/mozilla/content/base/src/nsGenericDOMDataNode.cpp @@ -231,11 +231,11 @@ nsGenericDOMDataNode::Normalize() } nsresult -nsGenericDOMDataNode::Supports(const nsAReadableString& aFeature, - const nsAReadableString& aVersion, - PRBool* aReturn) +nsGenericDOMDataNode::IsSupported(const nsAReadableString& aFeature, + const nsAReadableString& aVersion, + PRBool* aReturn) { - return nsGenericElement::InternalSupports(aFeature, aVersion, aReturn); + return nsGenericElement::InternalIsSupported(aFeature, aVersion, aReturn); } #if 0 diff --git a/mozilla/content/base/src/nsGenericDOMDataNode.h b/mozilla/content/base/src/nsGenericDOMDataNode.h index 44c3b143895..6c9b298cedf 100644 --- a/mozilla/content/base/src/nsGenericDOMDataNode.h +++ b/mozilla/content/base/src/nsGenericDOMDataNode.h @@ -69,6 +69,11 @@ struct nsGenericDOMDataNode { *aHasChildNodes = PR_FALSE; return NS_OK; } + nsresult HasAttributes(PRBool* aHasAttributes) { + NS_ENSURE_ARG_POINTER(aHasAttributes); + *aHasAttributes = PR_FALSE; + return NS_OK; + } nsresult GetFirstChild(nsIDOMNode** aFirstChild) { NS_ENSURE_ARG_POINTER(aFirstChild); *aFirstChild = nsnull; @@ -116,8 +121,9 @@ struct nsGenericDOMDataNode { nsresult GetPrefix(nsAWritableString& aPrefix); nsresult SetPrefix(const nsAReadableString& aPrefix); nsresult Normalize(); - nsresult Supports(const nsAReadableString& aFeature, const nsAReadableString& aVersion, - PRBool* aReturn); + nsresult IsSupported(const nsAReadableString& aFeature, + const nsAReadableString& aVersion, + PRBool* aReturn); // Implementation for nsIDOMCharacterData nsresult GetData(nsAWritableString& aData); @@ -285,14 +291,14 @@ struct nsGenericDOMDataNode { * NS_IMETHOD CloneNode(PRBool aDeep, nsIDOMNode** aReturn); */ #define NS_IMPL_IDOMNODE_USING_GENERIC_DOM_DATA(_g) \ - NS_IMETHOD GetNodeName(nsAWritableString& aNodeName); \ - NS_IMETHOD GetLocalName(nsAWritableString& aLocalName) { \ + NS_IMETHOD GetNodeName(nsAWritableString& aNodeName); \ + NS_IMETHOD GetLocalName(nsAWritableString& aLocalName) { \ return GetNodeName(aLocalName); \ } \ - NS_IMETHOD GetNodeValue(nsAWritableString& aNodeValue) { \ + NS_IMETHOD GetNodeValue(nsAWritableString& aNodeValue) { \ return _g.GetNodeValue(aNodeValue); \ } \ - NS_IMETHOD SetNodeValue(const nsAReadableString& aNodeValue) { \ + NS_IMETHOD SetNodeValue(const nsAReadableString& aNodeValue) { \ return _g.SetNodeValue(this, aNodeValue); \ } \ NS_IMETHOD GetNodeType(PRUint16* aNodeType); \ @@ -305,6 +311,9 @@ struct nsGenericDOMDataNode { NS_IMETHOD HasChildNodes(PRBool* aHasChildNodes) { \ return _g.HasChildNodes(aHasChildNodes); \ } \ + NS_IMETHOD HasAttributes(PRBool* aHasAttributes) { \ + return _g.HasAttributes(aHasAttributes); \ + } \ NS_IMETHOD GetFirstChild(nsIDOMNode** aFirstChild) { \ return _g.GetFirstChild(aFirstChild); \ } \ @@ -337,29 +346,30 @@ struct nsGenericDOMDataNode { NS_IMETHOD GetOwnerDocument(nsIDOMDocument** aOwnerDocument) { \ return _g.GetOwnerDocument(aOwnerDocument); \ } \ - NS_IMETHOD GetNamespaceURI(nsAWritableString& aNamespaceURI) { \ + NS_IMETHOD GetNamespaceURI(nsAWritableString& aNamespaceURI) { \ return _g.GetNamespaceURI(aNamespaceURI); \ } \ - NS_IMETHOD GetPrefix(nsAWritableString& aPrefix) { \ + NS_IMETHOD GetPrefix(nsAWritableString& aPrefix) { \ return _g.GetPrefix(aPrefix); \ } \ - NS_IMETHOD SetPrefix(const nsAReadableString& aPrefix) { \ + NS_IMETHOD SetPrefix(const nsAReadableString& aPrefix) { \ return _g.SetPrefix(aPrefix); \ } \ NS_IMETHOD Normalize() { \ return NS_OK; \ } \ - NS_IMETHOD Supports(const nsAReadableString& aFeature, const nsAReadableString& aVersion,\ + NS_IMETHOD IsSupported(const nsAReadableString& aFeature, \ + const nsAReadableString& aVersion, \ PRBool* aReturn) { \ - return _g.Supports(aFeature, aVersion, aReturn); \ + return _g.IsSupported(aFeature, aVersion, aReturn); \ } \ NS_IMETHOD CloneNode(PRBool aDeep, nsIDOMNode** aReturn); -#define NS_IMPL_IDOMCHARACTERDATA_USING_GENERIC_DOM_DATA(_g) \ - NS_IMETHOD GetData(nsAWritableString& aData) { \ +#define NS_IMPL_IDOMCHARACTERDATA_USING_GENERIC_DOM_DATA(_g) \ + NS_IMETHOD GetData(nsAWritableString& aData) { \ return _g.GetData(aData); \ } \ - NS_IMETHOD SetData(const nsAReadableString& aData) { \ + NS_IMETHOD SetData(const nsAReadableString& aData) { \ return _g.SetData(this, aData); \ } \ NS_IMETHOD GetLength(PRUint32* aLength) { \ @@ -368,10 +378,10 @@ struct nsGenericDOMDataNode { NS_IMETHOD SubstringData(PRUint32 aStart, PRUint32 aEnd, nsAWritableString& aReturn) { \ return _g.SubstringData(aStart, aEnd, aReturn); \ } \ - NS_IMETHOD AppendData(const nsAReadableString& aData) { \ + NS_IMETHOD AppendData(const nsAReadableString& aData) { \ return _g.AppendData(this, aData); \ } \ - NS_IMETHOD InsertData(PRUint32 aOffset, const nsAReadableString& aData) { \ + NS_IMETHOD InsertData(PRUint32 aOffset, const nsAReadableString& aData) { \ return _g.InsertData(this, aOffset, aData); \ } \ NS_IMETHOD DeleteData(PRUint32 aOffset, PRUint32 aCount) { \ diff --git a/mozilla/content/base/src/nsGenericElement.cpp b/mozilla/content/base/src/nsGenericElement.cpp index 1d571ad3685..2212afaf283 100644 --- a/mozilla/content/base/src/nsGenericElement.cpp +++ b/mozilla/content/base/src/nsGenericElement.cpp @@ -632,9 +632,9 @@ nsGenericElement::SetPrefix(const nsAReadableString& aPrefix) } nsresult -nsGenericElement::InternalSupports(const nsAReadableString& aFeature, - const nsAReadableString& aVersion, - PRBool* aReturn) +nsGenericElement::InternalIsSupported(const nsAReadableString& aFeature, + const nsAReadableString& aVersion, + PRBool* aReturn) { NS_ENSURE_ARG_POINTER(aReturn); *aReturn = PR_FALSE; @@ -665,10 +665,24 @@ nsGenericElement::InternalSupports(const nsAReadableString& aFeature, } nsresult -nsGenericElement::Supports(const nsAReadableString& aFeature, const nsAReadableString& aVersion, - PRBool* aReturn) +nsGenericElement::IsSupported(const nsAReadableString& aFeature, + const nsAReadableString& aVersion, + PRBool* aReturn) { - return InternalSupports(aFeature, aVersion, aReturn); + return InternalIsSupported(aFeature, aVersion, aReturn); +} + +nsresult +nsGenericElement::HasAttributes(PRBool* aReturn) +{ + NS_ENSURE_ARG_POINTER(aReturn); + PRInt32 attrCount = 0; + + mContent->GetAttributeCount(attrCount); + + *aReturn = !!attrCount; + + return NS_OK; } nsresult diff --git a/mozilla/content/base/src/nsGenericElement.h b/mozilla/content/base/src/nsGenericElement.h index b91b04d9914..a1f784e5f56 100644 --- a/mozilla/content/base/src/nsGenericElement.h +++ b/mozilla/content/base/src/nsGenericElement.h @@ -139,8 +139,9 @@ public: nsresult GetPrefix(nsAWritableString& aPrefix); nsresult SetPrefix(const nsAReadableString& aPrefix); nsresult Normalize(); - nsresult Supports(const nsAReadableString& aFeature, - const nsAReadableString& aVersion, PRBool* aReturn); + nsresult IsSupported(const nsAReadableString& aFeature, + const nsAReadableString& aVersion, PRBool* aReturn); + nsresult HasAttributes(PRBool* aHasAttributes); // Implementation for nsIDOMElement nsresult GetTagName(nsAWritableString& aTagName); @@ -269,8 +270,9 @@ public: static nsIAtom* CutNameSpacePrefix(nsString& aString); - static nsresult InternalSupports(const nsAReadableString& aFeature, - const nsAReadableString& aVersion, PRBool* aReturn); + static nsresult InternalIsSupported(const nsAReadableString& aFeature, + const nsAReadableString& aVersion, + PRBool* aReturn); nsDOMSlots *GetDOMSlots(); void MaybeClearDOMSlots(); @@ -384,13 +386,13 @@ public: * NS_IMETHOD CloneNode(PRBool aDeep, nsIDOMNode** aReturn); */ #define NS_IMPL_IDOMNODE_USING_GENERIC(_g) \ - NS_IMETHOD GetNodeName(nsAWritableString& aNodeName) { \ + NS_IMETHOD GetNodeName(nsAWritableString& aNodeName) { \ return _g.GetNodeName(aNodeName); \ } \ - NS_IMETHOD GetNodeValue(nsAWritableString& aNodeValue) { \ + NS_IMETHOD GetNodeValue(nsAWritableString& aNodeValue) { \ return _g.GetNodeValue(aNodeValue); \ } \ - NS_IMETHOD SetNodeValue(const nsAReadableString& aNodeValue) { \ + NS_IMETHOD SetNodeValue(const nsAReadableString& aNodeValue) { \ return _g.SetNodeValue(aNodeValue); \ } \ NS_IMETHOD GetNodeType(PRUint16* aNodeType) { \ @@ -405,6 +407,9 @@ public: NS_IMETHOD HasChildNodes(PRBool* aHasChildNodes) { \ return _g.HasChildNodes(aHasChildNodes); \ } \ + NS_IMETHOD HasAttributes(PRBool* aHasAttributes) { \ + return _g.HasAttributes(aHasAttributes); \ + } \ NS_IMETHOD GetFirstChild(nsIDOMNode** aFirstChild) { \ return _g.GetFirstChild(aFirstChild); \ } \ @@ -420,16 +425,16 @@ public: NS_IMETHOD GetAttributes(nsIDOMNamedNodeMap** aAttributes) { \ return _g.GetAttributes(aAttributes); \ } \ - NS_IMETHOD GetNamespaceURI(nsAWritableString& aNamespaceURI) { \ + NS_IMETHOD GetNamespaceURI(nsAWritableString& aNamespaceURI) { \ return _g.GetNamespaceURI(aNamespaceURI); \ } \ - NS_IMETHOD GetPrefix(nsAWritableString& aPrefix) { \ + NS_IMETHOD GetPrefix(nsAWritableString& aPrefix) { \ return _g.GetPrefix(aPrefix); \ } \ - NS_IMETHOD SetPrefix(const nsAReadableString& aPrefix) { \ + NS_IMETHOD SetPrefix(const nsAReadableString& aPrefix) { \ return _g.SetPrefix(aPrefix); \ } \ - NS_IMETHOD GetLocalName(nsAWritableString& aLocalName) { \ + NS_IMETHOD GetLocalName(nsAWritableString& aLocalName) { \ return _g.GetLocalName(aLocalName); \ } \ NS_IMETHOD InsertBefore(nsIDOMNode* aNewChild, nsIDOMNode* aRefChild, \ @@ -453,9 +458,9 @@ public: NS_IMETHOD Normalize() { \ return _g.Normalize(); \ } \ - NS_IMETHOD Supports(const nsAReadableString& aFeature, \ - const nsAReadableString& aVersion, PRBool* aReturn) { \ - return _g.Supports(aFeature, aVersion, aReturn); \ + NS_IMETHOD IsSupported(const nsAReadableString& aFeature, \ + const nsAReadableString& aVersion, PRBool* aReturn) { \ + return _g.IsSupported(aFeature, aVersion, aReturn); \ } /** @@ -464,7 +469,7 @@ public: * nsGenericHTMLContainerContent) */ #define NS_IMPL_IDOMELEMENT_USING_GENERIC(_g) \ - NS_IMETHOD GetTagName(nsAWritableString& aTagName) { \ + NS_IMETHOD GetTagName(nsAWritableString& aTagName) { \ return _g.GetTagName(aTagName); \ } \ NS_IMETHOD GetAttribute(const nsAReadableString& aName, nsAWritableString& aReturn) { \ @@ -473,10 +478,10 @@ public: NS_IMETHOD SetAttribute(const nsAReadableString& aName, const nsAReadableString& aValue) { \ return _g.SetAttribute(aName, aValue); \ } \ - NS_IMETHOD RemoveAttribute(const nsAReadableString& aName) { \ + NS_IMETHOD RemoveAttribute(const nsAReadableString& aName) { \ return _g.RemoveAttribute(aName); \ } \ - NS_IMETHOD GetAttributeNode(const nsAReadableString& aName, \ + NS_IMETHOD GetAttributeNode(const nsAReadableString& aName, \ nsIDOMAttr** aReturn) { \ return _g.GetAttributeNode(aName, aReturn); \ } \ @@ -486,40 +491,40 @@ public: NS_IMETHOD RemoveAttributeNode(nsIDOMAttr* aOldAttr, nsIDOMAttr** aReturn) {\ return _g.RemoveAttributeNode(aOldAttr, aReturn); \ } \ - NS_IMETHOD GetElementsByTagName(const nsAReadableString& aTagname, \ + NS_IMETHOD GetElementsByTagName(const nsAReadableString& aTagname, \ nsIDOMNodeList** aReturn) { \ return _g.GetElementsByTagName(aTagname, aReturn); \ } \ - NS_IMETHOD GetAttributeNS(const nsAReadableString& aNamespaceURI, \ + NS_IMETHOD GetAttributeNS(const nsAReadableString& aNamespaceURI, \ const nsAReadableString& aLocalName, nsAWritableString& aReturn) { \ return _g.GetAttributeNS(aNamespaceURI, aLocalName, aReturn); \ } \ - NS_IMETHOD SetAttributeNS(const nsAReadableString& aNamespaceURI, \ - const nsAReadableString& aQualifiedName, \ - const nsAReadableString& aValue) { \ + NS_IMETHOD SetAttributeNS(const nsAReadableString& aNamespaceURI, \ + const nsAReadableString& aQualifiedName, \ + const nsAReadableString& aValue) { \ return _g.SetAttributeNS(aNamespaceURI, aQualifiedName, aValue); \ } \ - NS_IMETHOD RemoveAttributeNS(const nsAReadableString& aNamespaceURI, \ - const nsAReadableString& aLocalName) { \ + NS_IMETHOD RemoveAttributeNS(const nsAReadableString& aNamespaceURI, \ + const nsAReadableString& aLocalName) { \ return _g.RemoveAttributeNS(aNamespaceURI, aLocalName); \ } \ - NS_IMETHOD GetAttributeNodeNS(const nsAReadableString& aNamespaceURI, \ - const nsAReadableString& aLocalName, \ + NS_IMETHOD GetAttributeNodeNS(const nsAReadableString& aNamespaceURI, \ + const nsAReadableString& aLocalName, \ nsIDOMAttr** aReturn) { \ return _g.GetAttributeNodeNS(aNamespaceURI, aLocalName, aReturn); \ } \ NS_IMETHOD SetAttributeNodeNS(nsIDOMAttr* aNewAttr, nsIDOMAttr** aReturn) { \ return _g.SetAttributeNodeNS(aNewAttr, aReturn); \ } \ - NS_IMETHOD GetElementsByTagNameNS(const nsAReadableString& aNamespaceURI, \ - const nsAReadableString& aLocalName, \ + NS_IMETHOD GetElementsByTagNameNS(const nsAReadableString& aNamespaceURI, \ + const nsAReadableString& aLocalName, \ nsIDOMNodeList** aReturn) { \ return _g.GetElementsByTagNameNS(aNamespaceURI, aLocalName, aReturn); \ } \ - NS_IMETHOD HasAttribute(const nsAReadableString& aName, PRBool* aReturn) { \ + NS_IMETHOD HasAttribute(const nsAReadableString& aName, PRBool* aReturn) { \ return _g.HasAttribute(aName, aReturn); \ } \ - NS_IMETHOD HasAttributeNS(const nsAReadableString& aNamespaceURI, \ + NS_IMETHOD HasAttributeNS(const nsAReadableString& aNamespaceURI, \ const nsAReadableString& aLocalName, PRBool* aReturn) { \ return _g.HasAttributeNS(aNamespaceURI, aLocalName, aReturn); \ } diff --git a/mozilla/content/html/document/src/nsHTMLDocument.cpp b/mozilla/content/html/document/src/nsHTMLDocument.cpp index e484072b569..ce4a1169ce5 100644 --- a/mozilla/content/html/document/src/nsHTMLDocument.cpp +++ b/mozilla/content/html/document/src/nsHTMLDocument.cpp @@ -1574,6 +1574,12 @@ nsHTMLDocument::HasChildNodes(PRBool* aReturn) return nsDocument::HasChildNodes(aReturn); } +NS_IMETHODIMP +nsHTMLDocument::HasAttributes(PRBool* aReturn) +{ + return nsDocument::HasAttributes(aReturn); +} + NS_IMETHODIMP nsHTMLDocument::GetNodeName(nsAWritableString& aNodeName) { @@ -1665,10 +1671,11 @@ nsHTMLDocument::Normalize() } NS_IMETHODIMP -nsHTMLDocument::Supports(const nsAReadableString& aFeature, const nsAReadableString& aVersion, - PRBool* aReturn) +nsHTMLDocument::IsSupported(const nsAReadableString& aFeature, + const nsAReadableString& aVersion, + PRBool* aReturn) { - return nsDocument::Supports(aFeature, aVersion, aReturn); + return nsDocument::IsSupported(aFeature, aVersion, aReturn); } diff --git a/mozilla/content/xul/content/src/nsXULAttributes.cpp b/mozilla/content/xul/content/src/nsXULAttributes.cpp index 9cc89dc6670..71e3452e26f 100644 --- a/mozilla/content/xul/content/src/nsXULAttributes.cpp +++ b/mozilla/content/xul/content/src/nsXULAttributes.cpp @@ -435,6 +435,14 @@ nsXULAttribute::HasChildNodes(PRBool* aReturn) return NS_OK; } +NS_IMETHODIMP +nsXULAttribute::HasAttributes(PRBool* aReturn) +{ + NS_ENSURE_ARG_POINTER(aReturn); + *aReturn = PR_FALSE; + return NS_OK; +} + NS_IMETHODIMP nsXULAttribute::CloneNode(PRBool aDeep, nsIDOMNode** aReturn) { @@ -449,9 +457,9 @@ nsXULAttribute::Normalize() } NS_IMETHODIMP -nsXULAttribute::Supports(const nsAReadableString& aFeature, - const nsAReadableString& aVersion, - PRBool* aReturn) +nsXULAttribute::IsSupported(const nsAReadableString& aFeature, + const nsAReadableString& aVersion, + PRBool* aReturn) { NS_NOTYETIMPLEMENTED("write me"); return NS_ERROR_NOT_IMPLEMENTED; diff --git a/mozilla/content/xul/content/src/nsXULElement.cpp b/mozilla/content/xul/content/src/nsXULElement.cpp index 3ba45a1cfeb..6b416ff53c6 100644 --- a/mozilla/content/xul/content/src/nsXULElement.cpp +++ b/mozilla/content/xul/content/src/nsXULElement.cpp @@ -1066,6 +1066,21 @@ nsXULElement::HasChildNodes(PRBool* aReturn) } +NS_IMETHODIMP +nsXULElement::HasAttributes(PRBool* aReturn) +{ + NS_ENSURE_ARG_POINTER(aReturn); + + PRInt32 attrCount = 0; + + GetAttributeCount(attrCount); + + *aReturn = (attrCount > 0); + + return NS_OK; +} + + NS_IMETHODIMP nsXULElement::CloneNode(PRBool aDeep, nsIDOMNode** aReturn) { @@ -1164,9 +1179,9 @@ nsXULElement::Normalize() NS_IMETHODIMP -nsXULElement::Supports(const nsAReadableString& aFeature, - const nsAReadableString& aVersion, - PRBool* aReturn) +nsXULElement::IsSupported(const nsAReadableString& aFeature, + const nsAReadableString& aVersion, + PRBool* aReturn) { NS_NOTYETIMPLEMENTED("write me!"); return NS_ERROR_NOT_IMPLEMENTED; diff --git a/mozilla/content/xul/document/src/nsXULDocument.cpp b/mozilla/content/xul/document/src/nsXULDocument.cpp index d223383cb33..95b6e7861bd 100644 --- a/mozilla/content/xul/document/src/nsXULDocument.cpp +++ b/mozilla/content/xul/document/src/nsXULDocument.cpp @@ -3513,6 +3513,17 @@ nsXULDocument::HasChildNodes(PRBool* aHasChildNodes) } +NS_IMETHODIMP +nsXULDocument::HasAttributes(PRBool* aHasAttributes) +{ + NS_ENSURE_ARG_POINTER(aHasAttributes); + + *aHasAttributes = PR_FALSE; + + return NS_OK; +} + + NS_IMETHODIMP nsXULDocument::GetFirstChild(nsIDOMNode** aFirstChild) { @@ -3676,9 +3687,9 @@ nsXULDocument::Normalize() NS_IMETHODIMP -nsXULDocument::Supports(const nsAReadableString& aFeature, - const nsAReadableString& aVersion, - PRBool* aReturn) +nsXULDocument::IsSupported(const nsAReadableString& aFeature, + const nsAReadableString& aVersion, + PRBool* aReturn) { NS_NOTYETIMPLEMENTED("write me"); return NS_ERROR_NOT_IMPLEMENTED; diff --git a/mozilla/dom/public/coreDom/nsIDOMNode.h b/mozilla/dom/public/coreDom/nsIDOMNode.h index 6aa9a5f7292..44f052e5250 100644 --- a/mozilla/dom/public/coreDom/nsIDOMNode.h +++ b/mozilla/dom/public/coreDom/nsIDOMNode.h @@ -99,7 +99,9 @@ public: NS_IMETHOD Normalize()=0; - NS_IMETHOD Supports(const nsAReadableString& aFeature, const nsAReadableString& aVersion, PRBool* aReturn)=0; + NS_IMETHOD IsSupported(const nsAReadableString& aFeature, const nsAReadableString& aVersion, PRBool* aReturn)=0; + + NS_IMETHOD HasAttributes(PRBool* aReturn)=0; }; @@ -127,7 +129,8 @@ public: NS_IMETHOD HasChildNodes(PRBool* aReturn); \ NS_IMETHOD CloneNode(PRBool aDeep, nsIDOMNode** aReturn); \ NS_IMETHOD Normalize(); \ - NS_IMETHOD Supports(const nsAReadableString& aFeature, const nsAReadableString& aVersion, PRBool* aReturn); \ + NS_IMETHOD IsSupported(const nsAReadableString& aFeature, const nsAReadableString& aVersion, PRBool* aReturn); \ + NS_IMETHOD HasAttributes(PRBool* aReturn); \ @@ -155,7 +158,8 @@ public: NS_IMETHOD HasChildNodes(PRBool* aReturn) { return _to HasChildNodes(aReturn); } \ NS_IMETHOD CloneNode(PRBool aDeep, nsIDOMNode** aReturn) { return _to CloneNode(aDeep, aReturn); } \ NS_IMETHOD Normalize() { return _to Normalize(); } \ - NS_IMETHOD Supports(const nsAReadableString& aFeature, const nsAReadableString& aVersion, PRBool* aReturn) { return _to Supports(aFeature, aVersion, aReturn); } \ + NS_IMETHOD IsSupported(const nsAReadableString& aFeature, const nsAReadableString& aVersion, PRBool* aReturn) { return _to IsSupported(aFeature, aVersion, aReturn); } \ + NS_IMETHOD HasAttributes(PRBool* aReturn) { return _to HasAttributes(aReturn); } \ extern "C" NS_DOM nsresult NS_InitNodeClass(nsIScriptContext *aContext, void **aPrototype); diff --git a/mozilla/dom/public/idl/coreDom/Node.idl b/mozilla/dom/public/idl/coreDom/Node.idl index 55928e4f3e9..b8121bbf20f 100644 --- a/mozilla/dom/public/idl/coreDom/Node.idl +++ b/mozilla/dom/public/idl/coreDom/Node.idl @@ -1,4 +1,4 @@ - interface Node { +interface Node { /* IID: { 0xa6cf907c, 0x15b3, 0x11d2, \ { 0x93, 0x2e, 0x00, 0x80, 0x5f, 0x8a, 0xdd, 0x32 } } */ @@ -41,11 +41,11 @@ raises(DOMException); boolean hasChildNodes(); Node cloneNode(in boolean deep); - // Introduced in DOM Level 2: + // Modified in DOM Level 2: void normalize(); // Introduced in DOM Level 2: - boolean supports(in DOMString feature, - in DOMString version); + boolean isSupported(in DOMString feature, + in DOMString version); // Introduced in DOM Level 2: readonly attribute DOMString namespaceURI; // Introduced in DOM Level 2: @@ -54,6 +54,8 @@ // Introduced in DOM Level 2: readonly attribute DOMString localName; + // Introduced in DOM Level 2: + boolean hasAttributes(); }; interface EventTarget { diff --git a/mozilla/dom/public/nsDOMPropEnums.h b/mozilla/dom/public/nsDOMPropEnums.h index 531dff8d63b..98ec52f9bf4 100644 --- a/mozilla/dom/public/nsDOMPropEnums.h +++ b/mozilla/dom/public/nsDOMPropEnums.h @@ -737,8 +737,10 @@ enum nsDOMProp { NS_DOM_PROP_NODE_CHILDNODES, NS_DOM_PROP_NODE_CLONENODE, NS_DOM_PROP_NODE_FIRSTCHILD, + NS_DOM_PROP_NODE_HASATTRIBUTES, NS_DOM_PROP_NODE_HASCHILDNODES, NS_DOM_PROP_NODE_INSERTBEFORE, + NS_DOM_PROP_NODE_ISSUPPORTED, NS_DOM_PROP_NODE_LASTCHILD, NS_DOM_PROP_NODE_LOCALNAME, NS_DOM_PROP_NODE_NAMESPACEURI, @@ -753,7 +755,6 @@ enum nsDOMProp { NS_DOM_PROP_NODE_PREVIOUSSIBLING, NS_DOM_PROP_NODE_REMOVECHILD, NS_DOM_PROP_NODE_REPLACECHILD, - NS_DOM_PROP_NODE_SUPPORTS, NS_DOM_PROP_NODELIST_ITEM, NS_DOM_PROP_NODELIST_LENGTH, NS_DOM_PROP_NOTATION_PUBLICID, @@ -945,9 +946,9 @@ enum nsDOMProp { NS_DOM_PROP_WINDOW_SCRIPTGLOBALS, NS_DOM_PROP_WINDOW_SCROLLBARS, NS_DOM_PROP_WINDOW_SCROLLBY, - NS_DOM_PROP_WINDOW_SCROLLTO, NS_DOM_PROP_WINDOW_SCROLLBYLINES, NS_DOM_PROP_WINDOW_SCROLLBYPAGES, + NS_DOM_PROP_WINDOW_SCROLLTO, NS_DOM_PROP_WINDOW_SCROLLX, NS_DOM_PROP_WINDOW_SCROLLY, NS_DOM_PROP_WINDOW_TOP, diff --git a/mozilla/dom/public/nsDOMPropNames.h b/mozilla/dom/public/nsDOMPropNames.h index 732a7a0ceed..702186ebc93 100644 --- a/mozilla/dom/public/nsDOMPropNames.h +++ b/mozilla/dom/public/nsDOMPropNames.h @@ -735,8 +735,10 @@ "node.childnodes", \ "node.clonenode", \ "node.firstchild", \ + "node.hasattributes", \ "node.haschildnodes", \ "node.insertbefore", \ + "node.issupported", \ "node.lastchild", \ "node.localname", \ "node.namespaceuri", \ @@ -751,7 +753,6 @@ "node.previoussibling", \ "node.removechild", \ "node.replacechild", \ - "node.supports", \ "nodelist.item", \ "nodelist.length", \ "notation.publicid", \ @@ -943,6 +944,8 @@ "window.scriptglobals", \ "window.scrollbars", \ "window.scrollby", \ + "window.scrollbylines", \ + "window.scrollbypages", \ "window.scrollto", \ "window.scrollx", \ "window.scrolly", \ diff --git a/mozilla/dom/src/coreDOM/nsJSNode.cpp b/mozilla/dom/src/coreDOM/nsJSNode.cpp index 498fa3c2941..5898c6c72f9 100644 --- a/mozilla/dom/src/coreDOM/nsJSNode.cpp +++ b/mozilla/dom/src/coreDOM/nsJSNode.cpp @@ -695,10 +695,10 @@ NodeNormalize(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval // -// Native method Supports +// Native method IsSupported // PR_STATIC_CALLBACK(JSBool) -NodeSupports(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) +NodeIsSupported(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { nsIDOMNode *nativeThis = (nsIDOMNode*)nsJSUtils::nsGetNativeThis(cx, obj); nsresult result = NS_OK; @@ -715,7 +715,7 @@ NodeSupports(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj); if (!secMan) return PR_FALSE; - result = secMan->CheckScriptAccess(cx, obj, NS_DOM_PROP_NODE_SUPPORTS, PR_FALSE); + result = secMan->CheckScriptAccess(cx, obj, NS_DOM_PROP_NODE_ISSUPPORTED, PR_FALSE); if (NS_FAILED(result)) { return nsJSUtils::nsReportError(cx, obj, result); } @@ -726,7 +726,43 @@ NodeSupports(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) nsJSUtils::nsConvertJSValToString(b0, cx, argv[0]); nsJSUtils::nsConvertJSValToString(b1, cx, argv[1]); - result = nativeThis->Supports(b0, b1, &nativeRet); + result = nativeThis->IsSupported(b0, b1, &nativeRet); + if (NS_FAILED(result)) { + return nsJSUtils::nsReportError(cx, obj, result); + } + + *rval = BOOLEAN_TO_JSVAL(nativeRet); + } + + return JS_TRUE; +} + + +// +// Native method HasAttributes +// +PR_STATIC_CALLBACK(JSBool) +NodeHasAttributes(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) +{ + nsIDOMNode *nativeThis = (nsIDOMNode*)nsJSUtils::nsGetNativeThis(cx, obj); + nsresult result = NS_OK; + PRBool nativeRet; + // If there's no private data, this must be the prototype, so ignore + if (nsnull == nativeThis) { + return JS_TRUE; + } + + { + *rval = JSVAL_NULL; + nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj); + if (!secMan) + return PR_FALSE; + result = secMan->CheckScriptAccess(cx, obj, NS_DOM_PROP_NODE_HASATTRIBUTES, PR_FALSE); + if (NS_FAILED(result)) { + return nsJSUtils::nsReportError(cx, obj, result); + } + + result = nativeThis->HasAttributes(&nativeRet); if (NS_FAILED(result)) { return nsJSUtils::nsReportError(cx, obj, result); } @@ -959,7 +995,8 @@ static JSFunctionSpec NodeMethods[] = {"hasChildNodes", NodeHasChildNodes, 0}, {"cloneNode", NodeCloneNode, 1}, {"normalize", NodeNormalize, 0}, - {"supports", NodeSupports, 2}, + {"isSupported", NodeIsSupported, 2}, + {"hasAttributes", NodeHasAttributes, 0}, {"addEventListener", EventTargetAddEventListener, 3}, {"removeEventListener", EventTargetRemoveEventListener, 3}, {"dispatchEvent", EventTargetDispatchEvent, 1}, diff --git a/mozilla/layout/base/src/nsDOMAttribute.cpp b/mozilla/layout/base/src/nsDOMAttribute.cpp index d48d00c7c7f..4829cda18e7 100644 --- a/mozilla/layout/base/src/nsDOMAttribute.cpp +++ b/mozilla/layout/base/src/nsDOMAttribute.cpp @@ -310,6 +310,16 @@ nsDOMAttribute::HasChildNodes(PRBool* aHasChildNodes) return NS_OK; } +NS_IMETHODIMP +nsDOMAttribute::HasAttributes(PRBool* aHasAttributes) +{ + NS_ENSURE_ARG_POINTER(aHasAttributes); + + *aHasAttributes = PR_FALSE; + + return NS_OK; +} + NS_IMETHODIMP nsDOMAttribute::GetFirstChild(nsIDOMNode** aFirstChild) { @@ -510,10 +520,11 @@ nsDOMAttribute::Normalize() } NS_IMETHODIMP -nsDOMAttribute::Supports(const nsAReadableString& aFeature, const nsAReadableString& aVersion, - PRBool* aReturn) +nsDOMAttribute::IsSupported(const nsAReadableString& aFeature, + const nsAReadableString& aVersion, + PRBool* aReturn) { - return nsGenericElement::InternalSupports(aFeature, aVersion, aReturn); + return nsGenericElement::InternalIsSupported(aFeature, aVersion, aReturn); } diff --git a/mozilla/layout/base/src/nsDocument.cpp b/mozilla/layout/base/src/nsDocument.cpp index 3ec95f36ec0..8e5631cdfba 100644 --- a/mozilla/layout/base/src/nsDocument.cpp +++ b/mozilla/layout/base/src/nsDocument.cpp @@ -421,7 +421,7 @@ nsDOMImplementation::HasFeature(const nsAReadableString& aFeature, const nsAReadableString& aVersion, PRBool* aReturn) { - return nsGenericElement::InternalSupports(aFeature, aVersion, aReturn); + return nsGenericElement::InternalIsSupported(aFeature, aVersion, aReturn); } NS_IMETHODIMP @@ -2593,6 +2593,16 @@ nsDocument::HasChildNodes(PRBool* aHasChildNodes) return NS_OK; } +NS_IMETHODIMP +nsDocument::HasAttributes(PRBool* aHasAttributes) +{ + NS_ENSURE_ARG(aHasAttributes); + + *aHasAttributes = PR_FALSE; + + return NS_OK; +} + NS_IMETHODIMP nsDocument::GetFirstChild(nsIDOMNode** aFirstChild) { @@ -2968,10 +2978,11 @@ nsDocument::Normalize() } NS_IMETHODIMP -nsDocument::Supports(const nsAReadableString& aFeature, const nsAReadableString& aVersion, - PRBool* aReturn) +nsDocument::IsSupported(const nsAReadableString& aFeature, + const nsAReadableString& aVersion, + PRBool* aReturn) { - return nsGenericElement::InternalSupports(aFeature, aVersion, aReturn); + return nsGenericElement::InternalIsSupported(aFeature, aVersion, aReturn); } NS_IMETHODIMP diff --git a/mozilla/layout/base/src/nsDocumentFragment.cpp b/mozilla/layout/base/src/nsDocumentFragment.cpp index a45a1535527..ad3923d36ff 100644 --- a/mozilla/layout/base/src/nsDocumentFragment.cpp +++ b/mozilla/layout/base/src/nsDocumentFragment.cpp @@ -89,14 +89,17 @@ public: { return mInner.AppendChild(aNewChild, aReturn); } NS_IMETHOD HasChildNodes(PRBool* aReturn) { return mInner.HasChildNodes(aReturn); } + NS_IMETHOD HasAttributes(PRBool* aReturn) + { return mInner.HasAttributes(aReturn); } NS_IMETHOD CloneNode(PRBool aDeep, nsIDOMNode** aReturn); NS_IMETHOD GetPrefix(nsAWritableString& aPrefix); NS_IMETHOD SetPrefix(const nsAReadableString& aPrefix); NS_IMETHOD GetNamespaceURI(nsAWritableString& aNamespaceURI); NS_IMETHOD GetLocalName(nsAWritableString& aLocalName); NS_IMETHOD Normalize(); - NS_IMETHOD Supports(const nsAReadableString& aFeature, const nsAReadableString& aVersion, - PRBool* aReturn); + NS_IMETHOD IsSupported(const nsAReadableString& aFeature, + const nsAReadableString& aVersion, + PRBool* aReturn); // interface nsIScriptObjectOwner NS_IMETHOD GetScriptObject(nsIScriptContext* aContext, void** aScriptObject); @@ -428,10 +431,11 @@ nsDocumentFragment::Normalize() NS_IMETHODIMP -nsDocumentFragment::Supports(const nsAReadableString& aFeature, const nsAReadableString& aVersion, - PRBool* aReturn) +nsDocumentFragment::IsSupported(const nsAReadableString& aFeature, + const nsAReadableString& aVersion, + PRBool* aReturn) { - return nsGenericElement::InternalSupports(aFeature, aVersion, aReturn); + return nsGenericElement::InternalIsSupported(aFeature, aVersion, aReturn); } NS_IMETHODIMP diff --git a/mozilla/layout/base/src/nsGenericDOMDataNode.cpp b/mozilla/layout/base/src/nsGenericDOMDataNode.cpp index 61c161bbc03..6a6be9c8405 100644 --- a/mozilla/layout/base/src/nsGenericDOMDataNode.cpp +++ b/mozilla/layout/base/src/nsGenericDOMDataNode.cpp @@ -231,11 +231,11 @@ nsGenericDOMDataNode::Normalize() } nsresult -nsGenericDOMDataNode::Supports(const nsAReadableString& aFeature, - const nsAReadableString& aVersion, - PRBool* aReturn) +nsGenericDOMDataNode::IsSupported(const nsAReadableString& aFeature, + const nsAReadableString& aVersion, + PRBool* aReturn) { - return nsGenericElement::InternalSupports(aFeature, aVersion, aReturn); + return nsGenericElement::InternalIsSupported(aFeature, aVersion, aReturn); } #if 0 diff --git a/mozilla/layout/base/src/nsGenericDOMDataNode.h b/mozilla/layout/base/src/nsGenericDOMDataNode.h index 44c3b143895..6c9b298cedf 100644 --- a/mozilla/layout/base/src/nsGenericDOMDataNode.h +++ b/mozilla/layout/base/src/nsGenericDOMDataNode.h @@ -69,6 +69,11 @@ struct nsGenericDOMDataNode { *aHasChildNodes = PR_FALSE; return NS_OK; } + nsresult HasAttributes(PRBool* aHasAttributes) { + NS_ENSURE_ARG_POINTER(aHasAttributes); + *aHasAttributes = PR_FALSE; + return NS_OK; + } nsresult GetFirstChild(nsIDOMNode** aFirstChild) { NS_ENSURE_ARG_POINTER(aFirstChild); *aFirstChild = nsnull; @@ -116,8 +121,9 @@ struct nsGenericDOMDataNode { nsresult GetPrefix(nsAWritableString& aPrefix); nsresult SetPrefix(const nsAReadableString& aPrefix); nsresult Normalize(); - nsresult Supports(const nsAReadableString& aFeature, const nsAReadableString& aVersion, - PRBool* aReturn); + nsresult IsSupported(const nsAReadableString& aFeature, + const nsAReadableString& aVersion, + PRBool* aReturn); // Implementation for nsIDOMCharacterData nsresult GetData(nsAWritableString& aData); @@ -285,14 +291,14 @@ struct nsGenericDOMDataNode { * NS_IMETHOD CloneNode(PRBool aDeep, nsIDOMNode** aReturn); */ #define NS_IMPL_IDOMNODE_USING_GENERIC_DOM_DATA(_g) \ - NS_IMETHOD GetNodeName(nsAWritableString& aNodeName); \ - NS_IMETHOD GetLocalName(nsAWritableString& aLocalName) { \ + NS_IMETHOD GetNodeName(nsAWritableString& aNodeName); \ + NS_IMETHOD GetLocalName(nsAWritableString& aLocalName) { \ return GetNodeName(aLocalName); \ } \ - NS_IMETHOD GetNodeValue(nsAWritableString& aNodeValue) { \ + NS_IMETHOD GetNodeValue(nsAWritableString& aNodeValue) { \ return _g.GetNodeValue(aNodeValue); \ } \ - NS_IMETHOD SetNodeValue(const nsAReadableString& aNodeValue) { \ + NS_IMETHOD SetNodeValue(const nsAReadableString& aNodeValue) { \ return _g.SetNodeValue(this, aNodeValue); \ } \ NS_IMETHOD GetNodeType(PRUint16* aNodeType); \ @@ -305,6 +311,9 @@ struct nsGenericDOMDataNode { NS_IMETHOD HasChildNodes(PRBool* aHasChildNodes) { \ return _g.HasChildNodes(aHasChildNodes); \ } \ + NS_IMETHOD HasAttributes(PRBool* aHasAttributes) { \ + return _g.HasAttributes(aHasAttributes); \ + } \ NS_IMETHOD GetFirstChild(nsIDOMNode** aFirstChild) { \ return _g.GetFirstChild(aFirstChild); \ } \ @@ -337,29 +346,30 @@ struct nsGenericDOMDataNode { NS_IMETHOD GetOwnerDocument(nsIDOMDocument** aOwnerDocument) { \ return _g.GetOwnerDocument(aOwnerDocument); \ } \ - NS_IMETHOD GetNamespaceURI(nsAWritableString& aNamespaceURI) { \ + NS_IMETHOD GetNamespaceURI(nsAWritableString& aNamespaceURI) { \ return _g.GetNamespaceURI(aNamespaceURI); \ } \ - NS_IMETHOD GetPrefix(nsAWritableString& aPrefix) { \ + NS_IMETHOD GetPrefix(nsAWritableString& aPrefix) { \ return _g.GetPrefix(aPrefix); \ } \ - NS_IMETHOD SetPrefix(const nsAReadableString& aPrefix) { \ + NS_IMETHOD SetPrefix(const nsAReadableString& aPrefix) { \ return _g.SetPrefix(aPrefix); \ } \ NS_IMETHOD Normalize() { \ return NS_OK; \ } \ - NS_IMETHOD Supports(const nsAReadableString& aFeature, const nsAReadableString& aVersion,\ + NS_IMETHOD IsSupported(const nsAReadableString& aFeature, \ + const nsAReadableString& aVersion, \ PRBool* aReturn) { \ - return _g.Supports(aFeature, aVersion, aReturn); \ + return _g.IsSupported(aFeature, aVersion, aReturn); \ } \ NS_IMETHOD CloneNode(PRBool aDeep, nsIDOMNode** aReturn); -#define NS_IMPL_IDOMCHARACTERDATA_USING_GENERIC_DOM_DATA(_g) \ - NS_IMETHOD GetData(nsAWritableString& aData) { \ +#define NS_IMPL_IDOMCHARACTERDATA_USING_GENERIC_DOM_DATA(_g) \ + NS_IMETHOD GetData(nsAWritableString& aData) { \ return _g.GetData(aData); \ } \ - NS_IMETHOD SetData(const nsAReadableString& aData) { \ + NS_IMETHOD SetData(const nsAReadableString& aData) { \ return _g.SetData(this, aData); \ } \ NS_IMETHOD GetLength(PRUint32* aLength) { \ @@ -368,10 +378,10 @@ struct nsGenericDOMDataNode { NS_IMETHOD SubstringData(PRUint32 aStart, PRUint32 aEnd, nsAWritableString& aReturn) { \ return _g.SubstringData(aStart, aEnd, aReturn); \ } \ - NS_IMETHOD AppendData(const nsAReadableString& aData) { \ + NS_IMETHOD AppendData(const nsAReadableString& aData) { \ return _g.AppendData(this, aData); \ } \ - NS_IMETHOD InsertData(PRUint32 aOffset, const nsAReadableString& aData) { \ + NS_IMETHOD InsertData(PRUint32 aOffset, const nsAReadableString& aData) { \ return _g.InsertData(this, aOffset, aData); \ } \ NS_IMETHOD DeleteData(PRUint32 aOffset, PRUint32 aCount) { \ diff --git a/mozilla/layout/base/src/nsGenericElement.cpp b/mozilla/layout/base/src/nsGenericElement.cpp index 1d571ad3685..2212afaf283 100644 --- a/mozilla/layout/base/src/nsGenericElement.cpp +++ b/mozilla/layout/base/src/nsGenericElement.cpp @@ -632,9 +632,9 @@ nsGenericElement::SetPrefix(const nsAReadableString& aPrefix) } nsresult -nsGenericElement::InternalSupports(const nsAReadableString& aFeature, - const nsAReadableString& aVersion, - PRBool* aReturn) +nsGenericElement::InternalIsSupported(const nsAReadableString& aFeature, + const nsAReadableString& aVersion, + PRBool* aReturn) { NS_ENSURE_ARG_POINTER(aReturn); *aReturn = PR_FALSE; @@ -665,10 +665,24 @@ nsGenericElement::InternalSupports(const nsAReadableString& aFeature, } nsresult -nsGenericElement::Supports(const nsAReadableString& aFeature, const nsAReadableString& aVersion, - PRBool* aReturn) +nsGenericElement::IsSupported(const nsAReadableString& aFeature, + const nsAReadableString& aVersion, + PRBool* aReturn) { - return InternalSupports(aFeature, aVersion, aReturn); + return InternalIsSupported(aFeature, aVersion, aReturn); +} + +nsresult +nsGenericElement::HasAttributes(PRBool* aReturn) +{ + NS_ENSURE_ARG_POINTER(aReturn); + PRInt32 attrCount = 0; + + mContent->GetAttributeCount(attrCount); + + *aReturn = !!attrCount; + + return NS_OK; } nsresult diff --git a/mozilla/layout/base/src/nsGenericElement.h b/mozilla/layout/base/src/nsGenericElement.h index b91b04d9914..a1f784e5f56 100644 --- a/mozilla/layout/base/src/nsGenericElement.h +++ b/mozilla/layout/base/src/nsGenericElement.h @@ -139,8 +139,9 @@ public: nsresult GetPrefix(nsAWritableString& aPrefix); nsresult SetPrefix(const nsAReadableString& aPrefix); nsresult Normalize(); - nsresult Supports(const nsAReadableString& aFeature, - const nsAReadableString& aVersion, PRBool* aReturn); + nsresult IsSupported(const nsAReadableString& aFeature, + const nsAReadableString& aVersion, PRBool* aReturn); + nsresult HasAttributes(PRBool* aHasAttributes); // Implementation for nsIDOMElement nsresult GetTagName(nsAWritableString& aTagName); @@ -269,8 +270,9 @@ public: static nsIAtom* CutNameSpacePrefix(nsString& aString); - static nsresult InternalSupports(const nsAReadableString& aFeature, - const nsAReadableString& aVersion, PRBool* aReturn); + static nsresult InternalIsSupported(const nsAReadableString& aFeature, + const nsAReadableString& aVersion, + PRBool* aReturn); nsDOMSlots *GetDOMSlots(); void MaybeClearDOMSlots(); @@ -384,13 +386,13 @@ public: * NS_IMETHOD CloneNode(PRBool aDeep, nsIDOMNode** aReturn); */ #define NS_IMPL_IDOMNODE_USING_GENERIC(_g) \ - NS_IMETHOD GetNodeName(nsAWritableString& aNodeName) { \ + NS_IMETHOD GetNodeName(nsAWritableString& aNodeName) { \ return _g.GetNodeName(aNodeName); \ } \ - NS_IMETHOD GetNodeValue(nsAWritableString& aNodeValue) { \ + NS_IMETHOD GetNodeValue(nsAWritableString& aNodeValue) { \ return _g.GetNodeValue(aNodeValue); \ } \ - NS_IMETHOD SetNodeValue(const nsAReadableString& aNodeValue) { \ + NS_IMETHOD SetNodeValue(const nsAReadableString& aNodeValue) { \ return _g.SetNodeValue(aNodeValue); \ } \ NS_IMETHOD GetNodeType(PRUint16* aNodeType) { \ @@ -405,6 +407,9 @@ public: NS_IMETHOD HasChildNodes(PRBool* aHasChildNodes) { \ return _g.HasChildNodes(aHasChildNodes); \ } \ + NS_IMETHOD HasAttributes(PRBool* aHasAttributes) { \ + return _g.HasAttributes(aHasAttributes); \ + } \ NS_IMETHOD GetFirstChild(nsIDOMNode** aFirstChild) { \ return _g.GetFirstChild(aFirstChild); \ } \ @@ -420,16 +425,16 @@ public: NS_IMETHOD GetAttributes(nsIDOMNamedNodeMap** aAttributes) { \ return _g.GetAttributes(aAttributes); \ } \ - NS_IMETHOD GetNamespaceURI(nsAWritableString& aNamespaceURI) { \ + NS_IMETHOD GetNamespaceURI(nsAWritableString& aNamespaceURI) { \ return _g.GetNamespaceURI(aNamespaceURI); \ } \ - NS_IMETHOD GetPrefix(nsAWritableString& aPrefix) { \ + NS_IMETHOD GetPrefix(nsAWritableString& aPrefix) { \ return _g.GetPrefix(aPrefix); \ } \ - NS_IMETHOD SetPrefix(const nsAReadableString& aPrefix) { \ + NS_IMETHOD SetPrefix(const nsAReadableString& aPrefix) { \ return _g.SetPrefix(aPrefix); \ } \ - NS_IMETHOD GetLocalName(nsAWritableString& aLocalName) { \ + NS_IMETHOD GetLocalName(nsAWritableString& aLocalName) { \ return _g.GetLocalName(aLocalName); \ } \ NS_IMETHOD InsertBefore(nsIDOMNode* aNewChild, nsIDOMNode* aRefChild, \ @@ -453,9 +458,9 @@ public: NS_IMETHOD Normalize() { \ return _g.Normalize(); \ } \ - NS_IMETHOD Supports(const nsAReadableString& aFeature, \ - const nsAReadableString& aVersion, PRBool* aReturn) { \ - return _g.Supports(aFeature, aVersion, aReturn); \ + NS_IMETHOD IsSupported(const nsAReadableString& aFeature, \ + const nsAReadableString& aVersion, PRBool* aReturn) { \ + return _g.IsSupported(aFeature, aVersion, aReturn); \ } /** @@ -464,7 +469,7 @@ public: * nsGenericHTMLContainerContent) */ #define NS_IMPL_IDOMELEMENT_USING_GENERIC(_g) \ - NS_IMETHOD GetTagName(nsAWritableString& aTagName) { \ + NS_IMETHOD GetTagName(nsAWritableString& aTagName) { \ return _g.GetTagName(aTagName); \ } \ NS_IMETHOD GetAttribute(const nsAReadableString& aName, nsAWritableString& aReturn) { \ @@ -473,10 +478,10 @@ public: NS_IMETHOD SetAttribute(const nsAReadableString& aName, const nsAReadableString& aValue) { \ return _g.SetAttribute(aName, aValue); \ } \ - NS_IMETHOD RemoveAttribute(const nsAReadableString& aName) { \ + NS_IMETHOD RemoveAttribute(const nsAReadableString& aName) { \ return _g.RemoveAttribute(aName); \ } \ - NS_IMETHOD GetAttributeNode(const nsAReadableString& aName, \ + NS_IMETHOD GetAttributeNode(const nsAReadableString& aName, \ nsIDOMAttr** aReturn) { \ return _g.GetAttributeNode(aName, aReturn); \ } \ @@ -486,40 +491,40 @@ public: NS_IMETHOD RemoveAttributeNode(nsIDOMAttr* aOldAttr, nsIDOMAttr** aReturn) {\ return _g.RemoveAttributeNode(aOldAttr, aReturn); \ } \ - NS_IMETHOD GetElementsByTagName(const nsAReadableString& aTagname, \ + NS_IMETHOD GetElementsByTagName(const nsAReadableString& aTagname, \ nsIDOMNodeList** aReturn) { \ return _g.GetElementsByTagName(aTagname, aReturn); \ } \ - NS_IMETHOD GetAttributeNS(const nsAReadableString& aNamespaceURI, \ + NS_IMETHOD GetAttributeNS(const nsAReadableString& aNamespaceURI, \ const nsAReadableString& aLocalName, nsAWritableString& aReturn) { \ return _g.GetAttributeNS(aNamespaceURI, aLocalName, aReturn); \ } \ - NS_IMETHOD SetAttributeNS(const nsAReadableString& aNamespaceURI, \ - const nsAReadableString& aQualifiedName, \ - const nsAReadableString& aValue) { \ + NS_IMETHOD SetAttributeNS(const nsAReadableString& aNamespaceURI, \ + const nsAReadableString& aQualifiedName, \ + const nsAReadableString& aValue) { \ return _g.SetAttributeNS(aNamespaceURI, aQualifiedName, aValue); \ } \ - NS_IMETHOD RemoveAttributeNS(const nsAReadableString& aNamespaceURI, \ - const nsAReadableString& aLocalName) { \ + NS_IMETHOD RemoveAttributeNS(const nsAReadableString& aNamespaceURI, \ + const nsAReadableString& aLocalName) { \ return _g.RemoveAttributeNS(aNamespaceURI, aLocalName); \ } \ - NS_IMETHOD GetAttributeNodeNS(const nsAReadableString& aNamespaceURI, \ - const nsAReadableString& aLocalName, \ + NS_IMETHOD GetAttributeNodeNS(const nsAReadableString& aNamespaceURI, \ + const nsAReadableString& aLocalName, \ nsIDOMAttr** aReturn) { \ return _g.GetAttributeNodeNS(aNamespaceURI, aLocalName, aReturn); \ } \ NS_IMETHOD SetAttributeNodeNS(nsIDOMAttr* aNewAttr, nsIDOMAttr** aReturn) { \ return _g.SetAttributeNodeNS(aNewAttr, aReturn); \ } \ - NS_IMETHOD GetElementsByTagNameNS(const nsAReadableString& aNamespaceURI, \ - const nsAReadableString& aLocalName, \ + NS_IMETHOD GetElementsByTagNameNS(const nsAReadableString& aNamespaceURI, \ + const nsAReadableString& aLocalName, \ nsIDOMNodeList** aReturn) { \ return _g.GetElementsByTagNameNS(aNamespaceURI, aLocalName, aReturn); \ } \ - NS_IMETHOD HasAttribute(const nsAReadableString& aName, PRBool* aReturn) { \ + NS_IMETHOD HasAttribute(const nsAReadableString& aName, PRBool* aReturn) { \ return _g.HasAttribute(aName, aReturn); \ } \ - NS_IMETHOD HasAttributeNS(const nsAReadableString& aNamespaceURI, \ + NS_IMETHOD HasAttributeNS(const nsAReadableString& aNamespaceURI, \ const nsAReadableString& aLocalName, PRBool* aReturn) { \ return _g.HasAttributeNS(aNamespaceURI, aLocalName, aReturn); \ } diff --git a/mozilla/layout/html/document/src/nsHTMLDocument.cpp b/mozilla/layout/html/document/src/nsHTMLDocument.cpp index e484072b569..ce4a1169ce5 100644 --- a/mozilla/layout/html/document/src/nsHTMLDocument.cpp +++ b/mozilla/layout/html/document/src/nsHTMLDocument.cpp @@ -1574,6 +1574,12 @@ nsHTMLDocument::HasChildNodes(PRBool* aReturn) return nsDocument::HasChildNodes(aReturn); } +NS_IMETHODIMP +nsHTMLDocument::HasAttributes(PRBool* aReturn) +{ + return nsDocument::HasAttributes(aReturn); +} + NS_IMETHODIMP nsHTMLDocument::GetNodeName(nsAWritableString& aNodeName) { @@ -1665,10 +1671,11 @@ nsHTMLDocument::Normalize() } NS_IMETHODIMP -nsHTMLDocument::Supports(const nsAReadableString& aFeature, const nsAReadableString& aVersion, - PRBool* aReturn) +nsHTMLDocument::IsSupported(const nsAReadableString& aFeature, + const nsAReadableString& aVersion, + PRBool* aReturn) { - return nsDocument::Supports(aFeature, aVersion, aReturn); + return nsDocument::IsSupported(aFeature, aVersion, aReturn); } diff --git a/mozilla/rdf/content/src/nsXULAttributes.cpp b/mozilla/rdf/content/src/nsXULAttributes.cpp index 9cc89dc6670..71e3452e26f 100644 --- a/mozilla/rdf/content/src/nsXULAttributes.cpp +++ b/mozilla/rdf/content/src/nsXULAttributes.cpp @@ -435,6 +435,14 @@ nsXULAttribute::HasChildNodes(PRBool* aReturn) return NS_OK; } +NS_IMETHODIMP +nsXULAttribute::HasAttributes(PRBool* aReturn) +{ + NS_ENSURE_ARG_POINTER(aReturn); + *aReturn = PR_FALSE; + return NS_OK; +} + NS_IMETHODIMP nsXULAttribute::CloneNode(PRBool aDeep, nsIDOMNode** aReturn) { @@ -449,9 +457,9 @@ nsXULAttribute::Normalize() } NS_IMETHODIMP -nsXULAttribute::Supports(const nsAReadableString& aFeature, - const nsAReadableString& aVersion, - PRBool* aReturn) +nsXULAttribute::IsSupported(const nsAReadableString& aFeature, + const nsAReadableString& aVersion, + PRBool* aReturn) { NS_NOTYETIMPLEMENTED("write me"); return NS_ERROR_NOT_IMPLEMENTED; diff --git a/mozilla/rdf/content/src/nsXULDocument.cpp b/mozilla/rdf/content/src/nsXULDocument.cpp index d223383cb33..95b6e7861bd 100644 --- a/mozilla/rdf/content/src/nsXULDocument.cpp +++ b/mozilla/rdf/content/src/nsXULDocument.cpp @@ -3513,6 +3513,17 @@ nsXULDocument::HasChildNodes(PRBool* aHasChildNodes) } +NS_IMETHODIMP +nsXULDocument::HasAttributes(PRBool* aHasAttributes) +{ + NS_ENSURE_ARG_POINTER(aHasAttributes); + + *aHasAttributes = PR_FALSE; + + return NS_OK; +} + + NS_IMETHODIMP nsXULDocument::GetFirstChild(nsIDOMNode** aFirstChild) { @@ -3676,9 +3687,9 @@ nsXULDocument::Normalize() NS_IMETHODIMP -nsXULDocument::Supports(const nsAReadableString& aFeature, - const nsAReadableString& aVersion, - PRBool* aReturn) +nsXULDocument::IsSupported(const nsAReadableString& aFeature, + const nsAReadableString& aVersion, + PRBool* aReturn) { NS_NOTYETIMPLEMENTED("write me"); return NS_ERROR_NOT_IMPLEMENTED; diff --git a/mozilla/rdf/content/src/nsXULElement.cpp b/mozilla/rdf/content/src/nsXULElement.cpp index 3ba45a1cfeb..6b416ff53c6 100644 --- a/mozilla/rdf/content/src/nsXULElement.cpp +++ b/mozilla/rdf/content/src/nsXULElement.cpp @@ -1066,6 +1066,21 @@ nsXULElement::HasChildNodes(PRBool* aReturn) } +NS_IMETHODIMP +nsXULElement::HasAttributes(PRBool* aReturn) +{ + NS_ENSURE_ARG_POINTER(aReturn); + + PRInt32 attrCount = 0; + + GetAttributeCount(attrCount); + + *aReturn = (attrCount > 0); + + return NS_OK; +} + + NS_IMETHODIMP nsXULElement::CloneNode(PRBool aDeep, nsIDOMNode** aReturn) { @@ -1164,9 +1179,9 @@ nsXULElement::Normalize() NS_IMETHODIMP -nsXULElement::Supports(const nsAReadableString& aFeature, - const nsAReadableString& aVersion, - PRBool* aReturn) +nsXULElement::IsSupported(const nsAReadableString& aFeature, + const nsAReadableString& aVersion, + PRBool* aReturn) { NS_NOTYETIMPLEMENTED("write me!"); return NS_ERROR_NOT_IMPLEMENTED;