Bug 265894 - Part 4. Let SVGSymbolElement inherit from SVGViewportElementBase.
MozReview-Commit-ID: CnNTuXTFWC6
--- a/dom/svg/SVGSymbolElement.cpp
+++ b/dom/svg/SVGSymbolElement.cpp
@@ -38,72 +38,18 @@ SVGSymbolElement::~SVGSymbolElement()
}
//----------------------------------------------------------------------
// nsIDOMNode methods
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
bool
SVGSymbolElement::IsInChromeDoc() const
{
return nsContentUtils::IsChromeDoc(OwnerDoc());
}
-
-//----------------------------------------------------------------------
-// nsSVGElement methods
-
-nsSVGViewBox *
-SVGSymbolElement::GetViewBox()
-{
- return &mViewBox;
-}
-
-SVGAnimatedPreserveAspectRatio *
-SVGSymbolElement::GetPreserveAspectRatio()
-{
- return &mPreserveAspectRatio;
-}
-
} // namespace dom
-} // namespace mozilla
\ No newline at end of file
+} // namespace mozilla
--- a/dom/svg/SVGSymbolElement.h
+++ b/dom/svg/SVGSymbolElement.h
@@ -2,61 +2,42 @@
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#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);
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,
already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo));
explicit SVGSymbolElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo);
~SVGSymbolElement();
virtual JSObject* WrapNode(JSContext *cx, JS::Handle<JSObject*> aGivenProto) override;
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
} // namespace mozilla
-#endif // mozilla_dom_SVGSymbolElement_h
\ No newline at end of file
+#endif // mozilla_dom_SVGSymbolElement_h