Bug 265894 - Part 4. Let SVGSymbolElement inherit from SVGViewportElementBase. r=heycam

MozReview-Commit-ID: CnNTuXTFWC6

--HG--
extra : rebase_source : 516c9d81a8e4e9fd9cc7bcacf04472a4820198c2
This commit is contained in:
cku 2017-06-20 15:18:25 +08:00
parent e6c91df011
commit 08937e7d33
2 changed files with 5 additions and 78 deletions

View File

@ -42,44 +42,6 @@ SVGSymbolElement::~SVGSymbolElement()
NS_IMPL_ELEMENT_CLONE_WITH_INIT(SVGSymbolElement)
//----------------------------------------------------------------------
already_AddRefed<SVGAnimatedRect>
SVGSymbolElement::ViewBox()
{
return mViewBox.ToSVGAnimatedRect(this);
}
already_AddRefed<DOMSVGAnimatedPreserveAspectRatio>
SVGSymbolElement::PreserveAspectRatio()
{
return mPreserveAspectRatio.ToDOMAnimatedPreserveAspectRatio(this);
}
//----------------------------------------------------------------------
// nsIContent methods
NS_IMETHODIMP_(bool)
SVGSymbolElement::IsAttributeMapped(const nsIAtom* name) const
{
static const MappedAttributeEntry* const map[] = {
sColorMap,
sFEFloodMap,
sFillStrokeMap,
sFiltersMap,
sFontSpecificationMap,
sGradientStopMap,
sGraphicsMap,
sLightingEffectsMap,
sMarkersMap,
sTextContentElementsMap,
sViewportsMap
};
return FindAttributeDependence(name, map) ||
SVGSymbolElementBase::IsAttributeMapped(name);
}
//----------------------------------------------------------------------
// SVGTests methods
@ -89,21 +51,5 @@ SVGSymbolElement::IsInChromeDoc() const
return nsContentUtils::IsChromeDoc(OwnerDoc());
}
//----------------------------------------------------------------------
// nsSVGElement methods
nsSVGViewBox *
SVGSymbolElement::GetViewBox()
{
return &mViewBox;
}
SVGAnimatedPreserveAspectRatio *
SVGSymbolElement::GetPreserveAspectRatio()
{
return &mPreserveAspectRatio;
}
} // namespace dom
} // namespace mozilla

View File

@ -7,10 +7,7 @@
#ifndef mozilla_dom_SVGSymbolElement_h
#define mozilla_dom_SVGSymbolElement_h
#include "mozilla/dom/SVGTests.h"
#include "nsSVGElement.h"
#include "nsSVGViewBox.h"
#include "SVGAnimatedPreserveAspectRatio.h"
#include "SVGViewportElement.h"
nsresult NS_NewSVGSymbolElement(nsIContent **aResult,
already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo);
@ -18,10 +15,9 @@ nsresult NS_NewSVGSymbolElement(nsIContent **aResult,
namespace mozilla {
namespace dom {
typedef nsSVGElement SVGSymbolElementBase;
typedef SVGViewportElement SVGSymbolElementBase;
class SVGSymbolElement final : public SVGSymbolElementBase,
public SVGTests
class SVGSymbolElement final : public SVGSymbolElementBase
{
protected:
friend nsresult (::NS_NewSVGSymbolElement(nsIContent **aResult,
@ -32,28 +28,13 @@ protected:
public:
// interfaces:
NS_DECL_ISUPPORTS_INHERITED
// nsIContent interface
NS_IMETHOD_(bool) IsAttributeMapped(const nsIAtom* name) const override;
virtual nsresult Clone(mozilla::dom::NodeInfo *aNodeInfo, nsINode **aResult,
bool aPreallocateChildren) const override;
// WebIDL
already_AddRefed<SVGAnimatedRect> ViewBox();
already_AddRefed<DOMSVGAnimatedPreserveAspectRatio> PreserveAspectRatio();
// SVGTests
bool IsInChromeDoc() const override;
protected:
virtual nsSVGViewBox *GetViewBox() override;
virtual SVGAnimatedPreserveAspectRatio *GetPreserveAspectRatio() override;
nsSVGViewBox mViewBox;
SVGAnimatedPreserveAspectRatio mPreserveAspectRatio;
};
} // namespace dom