Bug 233111: Make nsIDOMSVGElement only be inherited by leafclasses.

SVG only, not part of build.

r=afri
This commit is contained in:
sicking%bigfoot.com 2004-03-08 17:32:16 +00:00
Родитель 8703dade1c
Коммит 565de27231
15 изменённых файлов: 60 добавлений и 180 удалений

Просмотреть файл

@ -114,6 +114,9 @@ NS_IMPL_ADDREF_INHERITED(nsSVGCircleElement,nsSVGCircleElementBase)
NS_IMPL_RELEASE_INHERITED(nsSVGCircleElement,nsSVGCircleElementBase)
NS_INTERFACE_MAP_BEGIN(nsSVGCircleElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMNode)
NS_INTERFACE_MAP_ENTRY(nsIDOMElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGCircleElement)
NS_INTERFACE_MAP_ENTRY_CONTENT_CLASSINFO(SVGCircleElement)
NS_INTERFACE_MAP_END_INHERITING(nsSVGCircleElementBase)
@ -223,7 +226,7 @@ nsSVGCircleElement::CloneNode(PRBool aDeep, nsIDOMNode** aReturn)
return rv;
}
*aReturn = NS_STATIC_CAST(nsSVGCircleElementBase*, it);
*aReturn = it;
return NS_OK;
}

Просмотреть файл

@ -76,9 +76,6 @@ NS_IMPL_RELEASE_INHERITED(nsSVGElement,nsGenericElement)
NS_INTERFACE_MAP_BEGIN(nsSVGElement)
NS_INTERFACE_MAP_ENTRY(nsIXMLContent)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMNode)
NS_INTERFACE_MAP_ENTRY_TEAROFF(nsIDOM3Node, new nsNode3Tearoff(this))
NS_INTERFACE_MAP_ENTRY(nsISupportsWeakReference)
NS_INTERFACE_MAP_ENTRY(nsISVGValueObserver)
@ -316,72 +313,6 @@ nsSVGElement::sFontSpecificationMap[] = {
//----------------------------------------------------------------------
// nsIDOMNode methods
NS_IMETHODIMP
nsSVGElement::GetNodeName(nsAString& aNodeName)
{
mNodeInfo->GetQualifiedName(aNodeName);
return NS_OK;
}
NS_IMETHODIMP
nsSVGElement::GetNodeValue(nsAString& aNodeValue)
{
SetDOMStringToNull(aNodeValue);
return NS_OK;
}
NS_IMETHODIMP
nsSVGElement::SetNodeValue(const nsAString& aNodeValue)
{
// The DOM spec says that when nodeValue is defined to be null "setting it
// has no effect", so we don't throw an exception.
return NS_OK;
}
NS_IMETHODIMP
nsSVGElement::GetNodeType(PRUint16* aNodeType)
{
*aNodeType = (PRUint16)nsIDOMNode::ELEMENT_NODE;
return NS_OK;
}
NS_IMETHODIMP
nsSVGElement::GetParentNode(nsIDOMNode** aParentNode)
{
return nsGenericElement::GetParentNode(aParentNode);
}
NS_IMETHODIMP
nsSVGElement::GetChildNodes(nsIDOMNodeList** aChildNodes)
{
return nsGenericElement::GetChildNodes(aChildNodes);
}
NS_IMETHODIMP
nsSVGElement::GetFirstChild(nsIDOMNode** aNode)
{
return nsGenericElement::GetFirstChild(aNode);
}
NS_IMETHODIMP
nsSVGElement::GetLastChild(nsIDOMNode** aNode)
{
return nsGenericElement::GetLastChild(aNode);
}
NS_IMETHODIMP
nsSVGElement::GetPreviousSibling(nsIDOMNode** aPreviousSibling)
{
return nsGenericElement::GetPreviousSibling(aPreviousSibling);
}
NS_IMETHODIMP
nsSVGElement::GetNextSibling(nsIDOMNode** aNextSibling)
{
return nsGenericElement::GetNextSibling(aNextSibling);
}
NS_IMETHODIMP
nsSVGElement::GetAttributes(nsIDOMNamedNodeMap** aAttributes)
{
@ -390,85 +321,6 @@ nsSVGElement::GetAttributes(nsIDOMNamedNodeMap** aAttributes)
return NS_OK;
}
NS_IMETHODIMP
nsSVGElement::GetOwnerDocument(nsIDOMDocument** aOwnerDocument)
{
return nsGenericElement::GetOwnerDocument(aOwnerDocument);
}
NS_IMETHODIMP
nsSVGElement::GetNamespaceURI(nsAString& aNamespaceURI)
{
return mNodeInfo->GetNamespaceURI(aNamespaceURI);
}
NS_IMETHODIMP
nsSVGElement::GetPrefix(nsAString& aPrefix)
{
return nsGenericElement::GetPrefix(aPrefix);
}
NS_IMETHODIMP
nsSVGElement::SetPrefix(const nsAString& aPrefix)
{
return nsGenericElement::SetPrefix(aPrefix);
}
NS_IMETHODIMP
nsSVGElement::GetLocalName(nsAString& aLocalName)
{
return nsGenericElement::GetLocalName(aLocalName);
}
NS_IMETHODIMP
nsSVGElement::InsertBefore(nsIDOMNode* aNewChild, nsIDOMNode* aRefChild, nsIDOMNode** aReturn)
{
return nsGenericElement::doInsertBefore(this, aNewChild, aRefChild, aReturn);
}
NS_IMETHODIMP
nsSVGElement::ReplaceChild(nsIDOMNode* aNewChild, nsIDOMNode* aOldChild, nsIDOMNode** aReturn)
{
return nsGenericElement::doReplaceChild(this, aNewChild, aOldChild, aReturn);
}
NS_IMETHODIMP
nsSVGElement::RemoveChild(nsIDOMNode* aOldChild, nsIDOMNode** aReturn)
{
return nsGenericElement::doRemoveChild(this, aOldChild, aReturn);
}
NS_IMETHODIMP
nsSVGElement::AppendChild(nsIDOMNode* aNewChild, nsIDOMNode** aReturn)
{
return nsGenericElement::doInsertBefore(this, aNewChild, nsnull, aReturn);
}
NS_IMETHODIMP
nsSVGElement::HasChildNodes(PRBool* aReturn)
{
if (0 != mAttrsAndChildren.ChildCount()) {
*aReturn = PR_TRUE;
}
else {
*aReturn = PR_FALSE;
}
return NS_OK;
}
NS_IMETHODIMP
nsSVGElement::CloneNode(PRBool aDeep, nsIDOMNode** aReturn)
{
NS_ASSERTION(1==0,"CloneNode must be implemented by subclass!");
return NS_ERROR_FAILURE;
}
NS_IMETHODIMP
nsSVGElement::Normalize()
{
return nsGenericElement::Normalize();
}
NS_IMETHODIMP
nsSVGElement::IsSupported(const nsAString& aFeature, const nsAString& aVersion, PRBool* aReturn)
{
@ -476,16 +328,6 @@ nsSVGElement::IsSupported(const nsAString& aFeature, const nsAString& aVersion,
return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP
nsSVGElement::HasAttributes(PRBool* aReturn)
{
NS_ENSURE_ARG_POINTER(aReturn);
*aReturn = GetAttrCount() > 0;
return NS_OK;
}
//----------------------------------------------------------------------
// nsIDOMElement methods
@ -498,12 +340,12 @@ nsSVGElement::HasAttributes(PRBool* aReturn)
/* attribute DOMString id; */
NS_IMETHODIMP nsSVGElement::GetId(nsAString & aId)
{
return GetAttribute(NS_LITERAL_STRING("id"), aId);
return GetAttr(kNameSpaceID_None, nsSVGAtoms::id, aId);
}
NS_IMETHODIMP nsSVGElement::SetId(const nsAString & aId)
{
return SetAttribute(NS_LITERAL_STRING("id"), aId);
return SetAttr(kNameSpaceID_None, nsSVGAtoms::id, aId, PR_TRUE);
}
/* readonly attribute nsIDOMSVGSVGElement ownerSVGElement; */

Просмотреть файл

@ -56,7 +56,6 @@
#include "nsISVGContent.h"
class nsSVGElement : public nsGenericElement, // :nsIHTMLContent:nsIXMLContent:nsIStyledContent:nsIContent
public nsIDOMSVGElement, // :nsIDOMElement:nsIDOMNode
public nsISVGValueObserver,
public nsSupportsWeakReference, // :nsISupportsWeakReference
public nsISVGContent
@ -115,14 +114,14 @@ public:
static const MappedAttributeEntry sFontSpecificationMap[];
// nsIDOMNode
NS_DECL_NSIDOMNODE
// nsIDOMElement
// NS_DECL_IDOMELEMENT
NS_FORWARD_NSIDOMELEMENT(nsGenericElement::)
NS_IMETHOD GetAttributes(nsIDOMNamedNodeMap** aAttributes);
NS_IMETHOD IsSupported(const nsAString& aFeature, const nsAString& aVersion, PRBool* aReturn);
// nsIDOMSVGElement
NS_DECL_NSIDOMSVGELEMENT
NS_IMETHOD GetId(nsAString & aId);
NS_IMETHOD SetId(const nsAString & aId);
NS_IMETHOD GetOwnerSVGElement(nsIDOMSVGSVGElement** aOwnerSVGElement);
NS_IMETHOD GetViewportElement(nsIDOMSVGElement** aViewportElement);
// nsISVGValueObserver
NS_IMETHOD WillModifySVGObservable(nsISVGValue* observable);

Просмотреть файл

@ -117,6 +117,9 @@ NS_IMPL_ADDREF_INHERITED(nsSVGEllipseElement,nsSVGEllipseElementBase)
NS_IMPL_RELEASE_INHERITED(nsSVGEllipseElement,nsSVGEllipseElementBase)
NS_INTERFACE_MAP_BEGIN(nsSVGEllipseElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMNode)
NS_INTERFACE_MAP_ENTRY(nsIDOMElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGEllipseElement)
NS_INTERFACE_MAP_ENTRY_CONTENT_CLASSINFO(SVGEllipseElement)
NS_INTERFACE_MAP_END_INHERITING(nsSVGEllipseElementBase)
@ -246,7 +249,7 @@ nsSVGEllipseElement::CloneNode(PRBool aDeep, nsIDOMNode** aReturn)
return rv;
}
*aReturn = NS_STATIC_CAST(nsSVGEllipseElementBase*, it);
*aReturn = it;
return NS_OK;
}

Просмотреть файл

@ -115,6 +115,9 @@ NS_IMPL_ADDREF_INHERITED(nsSVGForeignObjectElement,nsSVGForeignObjectElementBase
NS_IMPL_RELEASE_INHERITED(nsSVGForeignObjectElement,nsSVGForeignObjectElementBase)
NS_INTERFACE_MAP_BEGIN(nsSVGForeignObjectElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMNode)
NS_INTERFACE_MAP_ENTRY(nsIDOMElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGForeignObjectElement)
NS_INTERFACE_MAP_ENTRY_CONTENT_CLASSINFO(SVGForeignObjectElement)
NS_INTERFACE_MAP_END_INHERITING(nsSVGForeignObjectElementBase)
@ -245,7 +248,7 @@ nsSVGForeignObjectElement::CloneNode(PRBool aDeep, nsIDOMNode** aReturn)
return rv;
}
*aReturn = NS_STATIC_CAST(nsSVGForeignObjectElementBase*, it);
*aReturn = it;
return NS_OK;
}

Просмотреть файл

@ -105,6 +105,9 @@ NS_IMPL_ADDREF_INHERITED(nsSVGGElement,nsSVGGElementBase)
NS_IMPL_RELEASE_INHERITED(nsSVGGElement,nsSVGGElementBase)
NS_INTERFACE_MAP_BEGIN(nsSVGGElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMNode)
NS_INTERFACE_MAP_ENTRY(nsIDOMElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGGElement)
NS_INTERFACE_MAP_ENTRY_CONTENT_CLASSINFO(SVGGElement)
NS_INTERFACE_MAP_END_INHERITING(nsSVGGElementBase)
@ -166,7 +169,7 @@ nsSVGGElement::CloneNode(PRBool aDeep, nsIDOMNode** aReturn)
return rv;
}
*aReturn = NS_STATIC_CAST(nsSVGGElementBase*, it);
*aReturn = it;
return NS_OK;
}

Просмотреть файл

@ -124,6 +124,9 @@ NS_IMPL_ADDREF_INHERITED(nsSVGImageElement,nsSVGImageElementBase)
NS_IMPL_RELEASE_INHERITED(nsSVGImageElement,nsSVGImageElementBase)
NS_INTERFACE_MAP_BEGIN(nsSVGImageElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMNode)
NS_INTERFACE_MAP_ENTRY(nsIDOMElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGImageElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGURIReference)
NS_INTERFACE_MAP_ENTRY_CONTENT_CLASSINFO(SVGImageElement)
@ -267,7 +270,7 @@ nsSVGImageElement::CloneNode(PRBool aDeep, nsIDOMNode** aReturn)
return rv;
}
*aReturn = NS_STATIC_CAST(nsSVGImageElementBase*, it);
*aReturn = it;
return NS_OK;
}

Просмотреть файл

@ -117,6 +117,9 @@ NS_IMPL_ADDREF_INHERITED(nsSVGLineElement,nsSVGLineElementBase)
NS_IMPL_RELEASE_INHERITED(nsSVGLineElement,nsSVGLineElementBase)
NS_INTERFACE_MAP_BEGIN(nsSVGLineElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMNode)
NS_INTERFACE_MAP_ENTRY(nsIDOMElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGLineElement)
NS_INTERFACE_MAP_ENTRY_CONTENT_CLASSINFO(SVGLineElement)
NS_INTERFACE_MAP_END_INHERITING(nsSVGLineElementBase)
@ -244,7 +247,7 @@ nsSVGLineElement::CloneNode(PRBool aDeep, nsIDOMNode** aReturn)
return rv;
}
*aReturn = NS_STATIC_CAST(nsSVGLineElementBase*, it);
*aReturn = it;
return NS_OK;
}

Просмотреть файл

@ -109,6 +109,9 @@ NS_IMPL_ADDREF_INHERITED(nsSVGPathElement,nsSVGPathElementBase)
NS_IMPL_RELEASE_INHERITED(nsSVGPathElement,nsSVGPathElementBase)
NS_INTERFACE_MAP_BEGIN(nsSVGPathElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMNode)
NS_INTERFACE_MAP_ENTRY(nsIDOMElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGPathElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGAnimatedPathData)
NS_INTERFACE_MAP_ENTRY_CONTENT_CLASSINFO(SVGPathElement)
@ -183,7 +186,7 @@ nsSVGPathElement::CloneNode(PRBool aDeep, nsIDOMNode** aReturn)
return rv;
}
*aReturn = NS_STATIC_CAST(nsSVGPathElementBase*, it);
*aReturn = it;
return NS_OK;
}

Просмотреть файл

@ -107,6 +107,9 @@ NS_IMPL_ADDREF_INHERITED(nsSVGPolygonElement,nsSVGPolygonElementBase)
NS_IMPL_RELEASE_INHERITED(nsSVGPolygonElement,nsSVGPolygonElementBase)
NS_INTERFACE_MAP_BEGIN(nsSVGPolygonElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMNode)
NS_INTERFACE_MAP_ENTRY(nsIDOMElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGPolygonElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGAnimatedPoints)
NS_INTERFACE_MAP_ENTRY_CONTENT_CLASSINFO(SVGPolygonElement)
@ -181,7 +184,7 @@ nsSVGPolygonElement::CloneNode(PRBool aDeep, nsIDOMNode** aReturn)
return rv;
}
*aReturn = NS_STATIC_CAST(nsSVGPolygonElementBase*, it);
*aReturn = it;
return NS_OK;
}

Просмотреть файл

@ -107,6 +107,9 @@ NS_IMPL_ADDREF_INHERITED(nsSVGPolylineElement,nsSVGPolylineElementBase)
NS_IMPL_RELEASE_INHERITED(nsSVGPolylineElement,nsSVGPolylineElementBase)
NS_INTERFACE_MAP_BEGIN(nsSVGPolylineElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMNode)
NS_INTERFACE_MAP_ENTRY(nsIDOMElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGPolylineElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGAnimatedPoints)
NS_INTERFACE_MAP_ENTRY_CONTENT_CLASSINFO(SVGPolylineElement)
@ -181,7 +184,7 @@ nsSVGPolylineElement::CloneNode(PRBool aDeep, nsIDOMNode** aReturn)
return rv;
}
*aReturn = NS_STATIC_CAST(nsSVGPolylineElementBase*, it);
*aReturn = it;
return NS_OK;
}

Просмотреть файл

@ -119,6 +119,9 @@ NS_IMPL_ADDREF_INHERITED(nsSVGRectElement,nsSVGRectElementBase)
NS_IMPL_RELEASE_INHERITED(nsSVGRectElement,nsSVGRectElementBase)
NS_INTERFACE_MAP_BEGIN(nsSVGRectElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMNode)
NS_INTERFACE_MAP_ENTRY(nsIDOMElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGRectElement)
NS_INTERFACE_MAP_ENTRY_CONTENT_CLASSINFO(SVGRectElement)
NS_INTERFACE_MAP_END_INHERITING(nsSVGRectElementBase)
@ -281,7 +284,7 @@ nsSVGRectElement::CloneNode(PRBool aDeep, nsIDOMNode** aReturn)
return rv;
}
*aReturn = NS_STATIC_CAST(nsSVGRectElementBase*, it);
*aReturn = it;
return NS_OK;
}

Просмотреть файл

@ -151,6 +151,9 @@ NS_IMPL_ADDREF_INHERITED(nsSVGSVGElement,nsSVGElement)
NS_IMPL_RELEASE_INHERITED(nsSVGSVGElement,nsSVGElement)
NS_INTERFACE_MAP_BEGIN(nsSVGSVGElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMNode)
NS_INTERFACE_MAP_ENTRY(nsIDOMElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGSVGElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGFitToViewBox)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGLocatable)
@ -364,7 +367,7 @@ nsSVGSVGElement::CloneNode(PRBool aDeep, nsIDOMNode** aReturn)
return rv;
}
*aReturn = NS_STATIC_CAST(nsSVGElement*, it);
*aReturn = it;
return NS_OK;
}

Просмотреть файл

@ -124,6 +124,9 @@ NS_IMPL_ADDREF_INHERITED(nsSVGTSpanElement,nsSVGTSpanElementBase)
NS_IMPL_RELEASE_INHERITED(nsSVGTSpanElement,nsSVGTSpanElementBase)
NS_INTERFACE_MAP_BEGIN(nsSVGTSpanElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMNode)
NS_INTERFACE_MAP_ENTRY(nsIDOMElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGTSpanElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGTextPositioningElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGTextContentElement)
@ -211,7 +214,7 @@ nsSVGTSpanElement::CloneNode(PRBool aDeep, nsIDOMNode** aReturn)
return rv;
}
*aReturn = NS_STATIC_CAST(nsSVGTSpanElementBase*, it);
*aReturn = it;
return NS_OK;
}

Просмотреть файл

@ -130,6 +130,9 @@ NS_IMPL_ADDREF_INHERITED(nsSVGTextElement,nsSVGTextElementBase)
NS_IMPL_RELEASE_INHERITED(nsSVGTextElement,nsSVGTextElementBase)
NS_INTERFACE_MAP_BEGIN(nsSVGTextElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMNode)
NS_INTERFACE_MAP_ENTRY(nsIDOMElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGTextElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGTextPositioningElement)
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGTextContentElement)
@ -217,7 +220,7 @@ nsSVGTextElement::CloneNode(PRBool aDeep, nsIDOMNode** aReturn)
return rv;
}
*aReturn = NS_STATIC_CAST(nsSVGTextElementBase*, it);
*aReturn = it;
return NS_OK;
}