Bug 1516592 - Move nsISMILType to the mozilla namespace and rename it as SMILType r=dholbert
authorlongsonr <longsonr@gmail.com>
Fri, 28 Dec 2018 10:34:35 +0000
changeset 509144 4b34ca564fc01c3669796af28b6a18f46ecd1862
parent 509133 435cf6bbfa9ea152e8bf79799e327d12edd947db
child 509145 04943bb8dcdcbb78870d89246939248d3f0f6a56
push id10547
push userffxbld-merge
push dateMon, 21 Jan 2019 13:03:58 +0000
treeherdermozilla-beta@24ec1916bffe [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersdholbert
bugs1516592
milestone66.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1516592 - Move nsISMILType to the mozilla namespace and rename it as SMILType r=dholbert
dom/smil/SMILBoolType.h
dom/smil/SMILCSSValueType.h
dom/smil/SMILEnumType.h
dom/smil/SMILFloatType.h
dom/smil/SMILIntegerType.h
dom/smil/SMILNullType.h
dom/smil/SMILStringType.h
dom/smil/SMILType.h
dom/smil/moz.build
dom/smil/nsISMILType.h
dom/smil/nsSMILValue.cpp
dom/smil/nsSMILValue.h
dom/svg/SVGIntegerPairSMILType.h
dom/svg/SVGLengthListSMILType.h
dom/svg/SVGMotionSMILType.h
dom/svg/SVGNumberListSMILType.h
dom/svg/SVGNumberPairSMILType.h
dom/svg/SVGOrientSMILType.h
dom/svg/SVGPathSegListSMILType.h
dom/svg/SVGPointListSMILType.h
dom/svg/SVGTransformListSMILType.h
dom/svg/SVGViewBoxSMILType.h
--- a/dom/smil/SMILBoolType.h
+++ b/dom/smil/SMILBoolType.h
@@ -3,30 +3,30 @@
 /* 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_SMILBOOLTYPE_H_
 #define MOZILLA_SMILBOOLTYPE_H_
 
 #include "mozilla/Attributes.h"
-#include "nsISMILType.h"
+#include "SMILType.h"
 
 namespace mozilla {
 
-class SMILBoolType : public nsISMILType {
+class SMILBoolType : public SMILType {
  public:
   // Singleton for nsSMILValue objects to hold onto.
   static SMILBoolType* Singleton() {
     static SMILBoolType sSingleton;
     return &sSingleton;
   }
 
  protected:
-  // nsISMILType Methods
+  // SMILType Methods
   // -------------------
   virtual void Init(nsSMILValue& aValue) const override;
   virtual void Destroy(nsSMILValue& aValue) const override;
   virtual nsresult Assign(nsSMILValue& aDest,
                           const nsSMILValue& aSrc) const override;
   virtual nsresult Add(nsSMILValue& aDest, const nsSMILValue& aValueToAdd,
                        uint32_t aCount) const override;
   virtual bool IsEqual(const nsSMILValue& aLeft,
--- a/dom/smil/SMILCSSValueType.h
+++ b/dom/smil/SMILCSSValueType.h
@@ -4,41 +4,41 @@
  * 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/. */
 
 /* representation of a value for a SMIL-animated CSS property */
 
 #ifndef NS_SMILCSSVALUETYPE_H_
 #define NS_SMILCSSVALUETYPE_H_
 
-#include "nsISMILType.h"
+#include "SMILType.h"
 #include "nsCSSPropertyID.h"
 #include "nsStringFwd.h"
 #include "mozilla/Attributes.h"
 
 namespace mozilla {
 struct AnimationValue;
 class DeclarationBlock;
 namespace dom {
 class Element;
 }  // namespace dom
 
 /*
  * SMILCSSValueType: Represents a SMIL-animated CSS value.
  */
-class SMILCSSValueType : public nsISMILType {
+class SMILCSSValueType : public SMILType {
  public:
   typedef mozilla::dom::Element Element;
   typedef mozilla::AnimationValue AnimationValue;
 
   // Singleton for nsSMILValue objects to hold onto.
   static SMILCSSValueType sSingleton;
 
  protected:
-  // nsISMILType Methods
+  // SMILType Methods
   // -------------------
   void Init(nsSMILValue& aValue) const override;
   void Destroy(nsSMILValue&) const override;
   nsresult Assign(nsSMILValue& aDest, const nsSMILValue& aSrc) const override;
   bool IsEqual(const nsSMILValue& aLeft,
                const nsSMILValue& aRight) const override;
   nsresult Add(nsSMILValue& aDest, const nsSMILValue& aValueToAdd,
                uint32_t aCount) const override;
--- a/dom/smil/SMILEnumType.h
+++ b/dom/smil/SMILEnumType.h
@@ -3,30 +3,30 @@
 /* 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_SMILENUMTYPE_H_
 #define MOZILLA_SMILENUMTYPE_H_
 
 #include "mozilla/Attributes.h"
-#include "nsISMILType.h"
+#include "SMILType.h"
 
 namespace mozilla {
 
-class SMILEnumType : public nsISMILType {
+class SMILEnumType : public SMILType {
  public:
   // Singleton for nsSMILValue objects to hold onto.
   static SMILEnumType* Singleton() {
     static SMILEnumType sSingleton;
     return &sSingleton;
   }
 
  protected:
-  // nsISMILType Methods
+  // SMILType Methods
   // -------------------
   virtual void Init(nsSMILValue& aValue) const override;
   virtual void Destroy(nsSMILValue& aValue) const override;
   virtual nsresult Assign(nsSMILValue& aDest,
                           const nsSMILValue& aSrc) const override;
   virtual bool IsEqual(const nsSMILValue& aLeft,
                        const nsSMILValue& aRight) const override;
   virtual nsresult Add(nsSMILValue& aDest, const nsSMILValue& aValueToAdd,
--- a/dom/smil/SMILFloatType.h
+++ b/dom/smil/SMILFloatType.h
@@ -3,30 +3,30 @@
 /* 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 NS_SMILFLOATTYPE_H_
 #define NS_SMILFLOATTYPE_H_
 
 #include "mozilla/Attributes.h"
-#include "nsISMILType.h"
+#include "SMILType.h"
 
 namespace mozilla {
 
-class SMILFloatType : public nsISMILType {
+class SMILFloatType : public SMILType {
  public:
   // Singleton for nsSMILValue objects to hold onto.
   static SMILFloatType* Singleton() {
     static SMILFloatType sSingleton;
     return &sSingleton;
   }
 
  protected:
-  // nsISMILType Methods
+  // SMILType Methods
   // -------------------
   virtual void Init(nsSMILValue& aValue) const override;
   virtual void Destroy(nsSMILValue& aValue) const override;
   virtual nsresult Assign(nsSMILValue& aDest,
                           const nsSMILValue& aSrc) const override;
   virtual bool IsEqual(const nsSMILValue& aLeft,
                        const nsSMILValue& aRight) const override;
   virtual nsresult Add(nsSMILValue& aDest, const nsSMILValue& aValueToAdd,
--- a/dom/smil/SMILIntegerType.h
+++ b/dom/smil/SMILIntegerType.h
@@ -3,21 +3,21 @@
 /* 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_SMILINTEGERTYPE_H_
 #define MOZILLA_SMILINTEGERTYPE_H_
 
 #include "mozilla/Attributes.h"
-#include "nsISMILType.h"
+#include "SMILType.h"
 
 namespace mozilla {
 
-class SMILIntegerType : public nsISMILType {
+class SMILIntegerType : public SMILType {
  public:
   virtual void Init(nsSMILValue& aValue) const override;
   virtual void Destroy(nsSMILValue& aValue) const override;
   virtual nsresult Assign(nsSMILValue& aDest,
                           const nsSMILValue& aSrc) const override;
   virtual bool IsEqual(const nsSMILValue& aLeft,
                        const nsSMILValue& aRight) const override;
   virtual nsresult Add(nsSMILValue& aDest, const nsSMILValue& aValueToAdd,
--- a/dom/smil/SMILNullType.h
+++ b/dom/smil/SMILNullType.h
@@ -3,27 +3,27 @@
 /* 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 NS_SMILNULLTYPE_H_
 #define NS_SMILNULLTYPE_H_
 
 #include "mozilla/Attributes.h"
-#include "nsISMILType.h"
+#include "SMILType.h"
 
 namespace mozilla {
 
-class SMILNullType : public nsISMILType {
+class SMILNullType : public SMILType {
  public:
   // Singleton for nsSMILValue objects to hold onto.
   static SMILNullType* Singleton();
 
  protected:
-  // nsISMILType Methods
+  // SMILType Methods
   // -------------------
   virtual void Init(nsSMILValue& aValue) const override {}
   virtual void Destroy(nsSMILValue& aValue) const override {}
   virtual nsresult Assign(nsSMILValue& aDest,
                           const nsSMILValue& aSrc) const override;
 
   // The remaining methods should never be called, so although they're very
   // simple they don't need to be inline.
--- a/dom/smil/SMILStringType.h
+++ b/dom/smil/SMILStringType.h
@@ -3,30 +3,30 @@
 /* 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_SMILSTRINGTYPE_H_
 #define MOZILLA_SMILSTRINGTYPE_H_
 
 #include "mozilla/Attributes.h"
-#include "nsISMILType.h"
+#include "SMILType.h"
 
 namespace mozilla {
 
-class SMILStringType : public nsISMILType {
+class SMILStringType : public SMILType {
  public:
   // Singleton for nsSMILValue objects to hold onto.
   static SMILStringType* Singleton() {
     static SMILStringType sSingleton;
     return &sSingleton;
   }
 
  protected:
-  // nsISMILType Methods
+  // SMILType Methods
   // -------------------
   virtual void Init(nsSMILValue& aValue) const override;
   virtual void Destroy(nsSMILValue& aValue) const override;
   virtual nsresult Assign(nsSMILValue& aDest,
                           const nsSMILValue& aSrc) const override;
   virtual bool IsEqual(const nsSMILValue& aLeft,
                        const nsSMILValue& aRight) const override;
   virtual nsresult Add(nsSMILValue& aDest, const nsSMILValue& aValueToAdd,
rename from dom/smil/nsISMILType.h
rename to dom/smil/SMILType.h
--- a/dom/smil/nsISMILType.h
+++ b/dom/smil/SMILType.h
@@ -7,18 +7,20 @@
 #ifndef NS_ISMILTYPE_H_
 #define NS_ISMILTYPE_H_
 
 #include "mozilla/Attributes.h"
 #include "nscore.h"
 
 class nsSMILValue;
 
+namespace mozilla {
+
 //////////////////////////////////////////////////////////////////////////////
-// nsISMILType: Interface for defining the basic operations needed for animating
+// SMILType: Interface for defining the basic operations needed for animating
 // a particular kind of data (e.g. lengths, colors, transformation matrices).
 //
 // This interface is never used directly but always through an nsSMILValue that
 // bundles together a pointer to a concrete implementation of this interface and
 // the data upon which it should operate.
 //
 // We keep the data and type separate rather than just providing different
 // subclasses of nsSMILValue. This is so that sizeof(nsSMILValue) is the same
@@ -40,21 +42,21 @@ class nsSMILValue;
 // | -- Assign?          |     X         |    X        |    X             |
 // | -- Add?             |     -         |    X?       |    X             |
 // | -- SandwichAdd?     |     -         |    -?       |    X             |
 // | -- ComputeDistance? |     -         |    -        |    X?            |
 // | -- Interpolate?     |     -         |    X        |    X             |
 // +---------------------+---------------+-------------+------------------+
 //
 
-class nsISMILType {
+class SMILType {
   /**
    * Only give the nsSMILValue class access to this interface.
    */
-  friend class nsSMILValue;
+  friend class ::nsSMILValue;
 
  protected:
   /**
    * Initialises aValue and sets it to some identity value such that adding
    * aValue to another value of the same type has no effect.
    *
    * @pre  aValue.IsNull()
    * @post aValue.mType == this
@@ -79,17 +81,17 @@ class nsISMILType {
    *          underlying type of the specified object differs.
    *
    * @pre aDest.mType == aSrc.mType == this
    */
   virtual nsresult Assign(nsSMILValue& aDest,
                           const nsSMILValue& aSrc) const = 0;
 
   /**
-   * Test two nsSMILValue objects (of this nsISMILType) for equality.
+   * Test two nsSMILValue objects (of this SMILType) for equality.
    *
    * A return value of true represents a guarantee that aLeft and aRight are
    * equal. (That is, they would behave identically if passed to the methods
    * Add, SandwichAdd, ComputeDistance, and Interpolate).
    *
    * A return value of false simply indicates that we make no guarantee
    * about equality.
    *
@@ -202,9 +204,11 @@ class nsISMILType {
    *
    * @pre aStartVal.mType == aEndVal.mType == aResult.mType == this
    */
   virtual nsresult Interpolate(const nsSMILValue& aStartVal,
                                const nsSMILValue& aEndVal, double aUnitDistance,
                                nsSMILValue& aResult) const = 0;
 };
 
+}  // namespace mozilla
+
 #endif  // NS_ISMILTYPE_H_
--- a/dom/smil/moz.build
+++ b/dom/smil/moz.build
@@ -6,17 +6,16 @@
 
 with Files("**"):
     BUG_COMPONENT = ("Core", "SVG")
 
 MOCHITEST_MANIFESTS += ['test/mochitest.ini']
 
 EXPORTS += [
     'nsISMILAttr.h',
-    'nsISMILType.h',
     'nsSMILAnimationController.h',
     'nsSMILAnimationFunction.h',
     'nsSMILCompositorTable.h',
     'nsSMILCSSProperty.h',
     'nsSMILInstanceTime.h',
     'nsSMILInterval.h',
     'nsSMILKeySpline.h',
     'nsSMILMilestone.h',
@@ -27,16 +26,17 @@ EXPORTS += [
     'nsSMILTimedElement.h',
     'nsSMILTimeValue.h',
     'nsSMILTimeValueSpec.h',
     'nsSMILTimeValueSpecParams.h',
     'nsSMILTypes.h',
     'nsSMILValue.h',
     'SMILCSSValueType.h',
     'SMILNullType.h',
+    'SMILType.h',
 ]
 
 EXPORTS.mozilla.dom += [
     'TimeEvent.h',
 ]
 
 UNIFIED_SOURCES += [
     'nsSMILAnimationController.cpp',
--- a/dom/smil/nsSMILValue.cpp
+++ b/dom/smil/nsSMILValue.cpp
@@ -6,17 +6,17 @@
 
 #include "nsSMILValue.h"
 #include "nsDebug.h"
 #include <string.h>
 
 //----------------------------------------------------------------------
 // Public methods
 
-nsSMILValue::nsSMILValue(const nsISMILType* aType)
+nsSMILValue::nsSMILValue(const SMILType* aType)
     : mType(SMILNullType::Singleton()) {
   mU.mBool = false;
   if (!aType) {
     NS_ERROR("Trying to construct nsSMILValue with null mType pointer");
     return;
   }
 
   InitAndCheckPostcondition(aType);
@@ -115,26 +115,26 @@ nsresult nsSMILValue::Interpolate(const 
   }
 
   return mType->Interpolate(*this, aEndVal, aUnitDistance, aResult);
 }
 
 //----------------------------------------------------------------------
 // Helper methods
 
-// Wrappers for nsISMILType::Init & ::Destroy that verify their postconditions
-void nsSMILValue::InitAndCheckPostcondition(const nsISMILType* aNewType) {
+// Wrappers for SMILType::Init & ::Destroy that verify their postconditions
+void nsSMILValue::InitAndCheckPostcondition(const SMILType* aNewType) {
   aNewType->Init(*this);
   MOZ_ASSERT(mType == aNewType,
              "Post-condition of Init failed. nsSMILValue is invalid");
 }
 
 void nsSMILValue::DestroyAndCheckPostcondition() {
   mType->Destroy(*this);
   MOZ_ASSERT(IsNull(),
              "Post-condition of Destroy failed. "
              "nsSMILValue not null after destroying");
 }
 
-void nsSMILValue::DestroyAndReinit(const nsISMILType* aNewType) {
+void nsSMILValue::DestroyAndReinit(const SMILType* aNewType) {
   DestroyAndCheckPostcondition();
   InitAndCheckPostcondition(aNewType);
 }
--- a/dom/smil/nsSMILValue.h
+++ b/dom/smil/nsSMILValue.h
@@ -2,46 +2,47 @@
 /* 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 NS_SMILVALUE_H_
 #define NS_SMILVALUE_H_
 
-#include "nsISMILType.h"
+#include "SMILType.h"
 #include "SMILNullType.h"
 
 /**
  * Although objects of this type are generally only created on the stack and
  * only exist during the taking of a new time sample, that's not always the
  * case. The nsSMILValue objects obtained from attributes' base values are
  * cached so that the SMIL engine can make certain optimizations during a
  * sample if the base value has not changed since the last sample (potentially
  * avoiding recomposing). These nsSMILValue objects typically live much longer
  * than a single sample.
  */
 class nsSMILValue {
  public:
   typedef mozilla::SMILNullType SMILNullType;
+  typedef mozilla::SMILType SMILType;
 
   nsSMILValue() : mU(), mType(SMILNullType::Singleton()) {}
-  explicit nsSMILValue(const nsISMILType* aType);
+  explicit nsSMILValue(const SMILType* aType);
   nsSMILValue(const nsSMILValue& aVal);
 
   ~nsSMILValue() { mType->Destroy(*this); }
 
   const nsSMILValue& operator=(const nsSMILValue& aVal);
 
   // Move constructor / reassignment operator:
   nsSMILValue(nsSMILValue&& aVal);
   nsSMILValue& operator=(nsSMILValue&& aVal);
 
   // Equality operators. These are allowed to be conservative (return false
-  // more than you'd expect) - see comment above nsISMILType::IsEqual.
+  // more than you'd expect) - see comment above SMILType::IsEqual.
   bool operator==(const nsSMILValue& aVal) const;
   bool operator!=(const nsSMILValue& aVal) const { return !(*this == aVal); }
 
   bool IsNull() const { return (mType == SMILNullType::Singleton()); }
 
   nsresult Add(const nsSMILValue& aValueToAdd, uint32_t aCount = 1);
   nsresult SandwichAdd(const nsSMILValue& aValueToAdd);
   nsresult ComputeDistance(const nsSMILValue& aTo, double& aDistance) const;
@@ -57,17 +58,17 @@ class nsSMILValue {
       float mAngle;
       uint16_t mUnit;
       uint16_t mOrientType;
     } mOrient;
     int32_t mIntPair[2];
     float mNumberPair[2];
     void* mPtr;
   } mU;
-  const nsISMILType* mType;
+  const SMILType* mType;
 
  protected:
-  void InitAndCheckPostcondition(const nsISMILType* aNewType);
+  void InitAndCheckPostcondition(const SMILType* aNewType);
   void DestroyAndCheckPostcondition();
-  void DestroyAndReinit(const nsISMILType* aNewType);
+  void DestroyAndReinit(const SMILType* aNewType);
 };
 
 #endif  // NS_SMILVALUE_H_
--- a/dom/svg/SVGIntegerPairSMILType.h
+++ b/dom/svg/SVGIntegerPairSMILType.h
@@ -3,32 +3,32 @@
 /* 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_SVGINTEGERPAIRSMILTYPE_H_
 #define MOZILLA_SVGINTEGERPAIRSMILTYPE_H_
 
 #include "mozilla/Attributes.h"
-#include "nsISMILType.h"
+#include "SMILType.h"
 
 class nsSMILValue;
 
 namespace mozilla {
 
-class SVGIntegerPairSMILType : public nsISMILType {
+class SVGIntegerPairSMILType : public SMILType {
  public:
   // Singleton for nsSMILValue objects to hold onto.
   static SVGIntegerPairSMILType* Singleton() {
     static SVGIntegerPairSMILType sSingleton;
     return &sSingleton;
   }
 
  protected:
-  // nsISMILType Methods
+  // SMILType Methods
   // -------------------
   virtual void Init(nsSMILValue& aValue) const override;
   virtual void Destroy(nsSMILValue&) const override;
   virtual nsresult Assign(nsSMILValue& aDest,
                           const nsSMILValue& aSrc) const override;
   virtual bool IsEqual(const nsSMILValue& aLeft,
                        const nsSMILValue& aRight) const override;
   virtual nsresult Add(nsSMILValue& aDest, const nsSMILValue& aValueToAdd,
--- a/dom/svg/SVGLengthListSMILType.h
+++ b/dom/svg/SVGLengthListSMILType.h
@@ -3,34 +3,34 @@
 /* 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_SVGLENGTHLISTSMILTYPE_H_
 #define MOZILLA_SVGLENGTHLISTSMILTYPE_H_
 
 #include "mozilla/Attributes.h"
-#include "nsISMILType.h"
+#include "SMILType.h"
 
 class nsSMILValue;
 
 namespace mozilla {
 
 ////////////////////////////////////////////////////////////////////////
 // SVGLengthListSMILType
 //
 // Operations for animating an SVGLengthList.
 //
-class SVGLengthListSMILType : public nsISMILType {
+class SVGLengthListSMILType : public SMILType {
  public:
   // Singleton for nsSMILValue objects to hold onto.
   static SVGLengthListSMILType sSingleton;
 
  protected:
-  // nsISMILType Methods
+  // SMILType Methods
   // -------------------
 
   /**
    * When this method initializes the SVGLengthListAndInfo for its nsSMILValue
    * argument, it has to blindly set its mCanZeroPadList to true despite
    * the fact that some attributes can't be zero-padded. (See the explaination
    * that follows.) SVGAnimatedLengthList::SMILAnimatedLengthList's
    * GetBaseValue() and ValueFromString() methods then override this for the
--- a/dom/svg/SVGMotionSMILType.h
+++ b/dom/svg/SVGMotionSMILType.h
@@ -1,52 +1,52 @@
 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* 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/. */
 
-/* implementation of nsISMILType for use by <animateMotion> element */
+/* implementation of SMILType for use by <animateMotion> element */
 
 #ifndef MOZILLA_SVGMOTIONSMILTYPE_H_
 #define MOZILLA_SVGMOTIONSMILTYPE_H_
 
 #include "mozilla/gfx/2D.h"
 #include "mozilla/Attributes.h"
-#include "nsISMILType.h"
+#include "SMILType.h"
 
 class nsSMILValue;
 
 namespace mozilla {
 
 /**
  * MotionRotateType: Enum to indicate the type of our "rotate" attribute.
  */
 enum RotateType {
   eRotateType_Explicit,    // for e.g. rotate="45"/"45deg"/"0.785rad"
   eRotateType_Auto,        // for rotate="auto"
   eRotateType_AutoReverse  // for rotate="auto-reverse"
 };
 
 /**
- * SVGMotionSMILType: Implements the nsISMILType interface for SMIL animations
+ * SVGMotionSMILType: Implements the SMILType interface for SMIL animations
  * from <animateMotion>.
  *
  * NOTE: Even though there's technically no "motion" attribute, we behave in
  * many ways as if there were, for simplicity.
  */
-class SVGMotionSMILType : public nsISMILType {
+class SVGMotionSMILType : public SMILType {
   typedef mozilla::gfx::Path Path;
 
  public:
   // Singleton for nsSMILValue objects to hold onto.
   static SVGMotionSMILType sSingleton;
 
  protected:
-  // nsISMILType Methods
+  // SMILType Methods
   // -------------------
   virtual void Init(nsSMILValue& aValue) const override;
   virtual void Destroy(nsSMILValue& aValue) const override;
   virtual nsresult Assign(nsSMILValue& aDest,
                           const nsSMILValue& aSrc) const override;
   virtual bool IsEqual(const nsSMILValue& aLeft,
                        const nsSMILValue& aRight) const override;
   virtual nsresult Add(nsSMILValue& aDest, const nsSMILValue& aValueToAdd,
--- a/dom/svg/SVGNumberListSMILType.h
+++ b/dom/svg/SVGNumberListSMILType.h
@@ -3,34 +3,34 @@
 /* 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_SVGNUMBERLISTSMILTYPE_H_
 #define MOZILLA_SVGNUMBERLISTSMILTYPE_H_
 
 #include "mozilla/Attributes.h"
-#include "nsISMILType.h"
+#include "SMILType.h"
 
 class nsSMILValue;
 
 namespace mozilla {
 
 ////////////////////////////////////////////////////////////////////////
 // SVGNumberListSMILType
 //
 // Operations for animating an SVGNumberList.
 //
-class SVGNumberListSMILType : public nsISMILType {
+class SVGNumberListSMILType : public SMILType {
  public:
   // Singleton for nsSMILValue objects to hold onto.
   static SVGNumberListSMILType sSingleton;
 
  protected:
-  // nsISMILType Methods
+  // SMILType Methods
   // -------------------
 
   virtual void Init(nsSMILValue& aValue) const override;
 
   virtual void Destroy(nsSMILValue& aValue) const override;
   virtual nsresult Assign(nsSMILValue& aDest,
                           const nsSMILValue& aSrc) const override;
   virtual bool IsEqual(const nsSMILValue& aLeft,
--- a/dom/svg/SVGNumberPairSMILType.h
+++ b/dom/svg/SVGNumberPairSMILType.h
@@ -3,29 +3,29 @@
 /* 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_SVGNUMBERPAIRSMILTYPE_H_
 #define MOZILLA_SVGNUMBERPAIRSMILTYPE_H_
 
 #include "mozilla/Attributes.h"
-#include "nsISMILType.h"
+#include "SMILType.h"
 
 class nsSMILValue;
 
 namespace mozilla {
 
-class SVGNumberPairSMILType : public nsISMILType {
+class SVGNumberPairSMILType : public SMILType {
  public:
   // Singleton for nsSMILValue objects to hold onto.
   static SVGNumberPairSMILType sSingleton;
 
  protected:
-  // nsISMILType Methods
+  // SMILType Methods
   // -------------------
   virtual void Init(nsSMILValue& aValue) const override;
   virtual void Destroy(nsSMILValue&) const override;
   virtual nsresult Assign(nsSMILValue& aDest,
                           const nsSMILValue& aSrc) const override;
   virtual bool IsEqual(const nsSMILValue& aLeft,
                        const nsSMILValue& aRight) const override;
   virtual nsresult Add(nsSMILValue& aDest, const nsSMILValue& aValueToAdd,
--- a/dom/svg/SVGOrientSMILType.h
+++ b/dom/svg/SVGOrientSMILType.h
@@ -3,22 +3,22 @@
 /* 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_SVGORIENTSMILTYPE_H_
 #define MOZILLA_SVGORIENTSMILTYPE_H_
 
 #include "mozilla/Attributes.h"
-#include "nsISMILType.h"
+#include "SMILType.h"
 
 class nsSMILValue;
 
 /**
- * This nsISMILType class is a special case for the 'orient' attribute on SVG's
+ * This SMILType class is a special case for the 'orient' attribute on SVG's
  * 'marker' element.
  *
  *   orient = "auto | auto-start-reverse | <angle>"
  *
  * Unusually, this attribute doesn't have just a single corresponding DOM
  * property, but rather is split into two properties: 'orientType' (of type
  * SVGAnimatedEnumeration) and 'orientAngle' (of type SVGAnimatedAngle). If
  * 'orientType.animVal' is SVG_MARKER_ORIENT_ANGLE, then
@@ -29,23 +29,23 @@ class nsSMILValue;
  * SVG_MARKER_ORIENT_AUTO_START_REVERSE constant value for orientType to use;
  * instead, if the attribute is set to "auto-start-reverse",
  * SVG_MARKER_ORIENT_UNKNOWN is used.  Internally, however, we do use a
  * constant with this name.
  */
 
 namespace mozilla {
 
-class SVGOrientSMILType : public nsISMILType {
+class SVGOrientSMILType : public SMILType {
  public:
   // Singleton for nsSMILValue objects to hold onto.
   static SVGOrientSMILType sSingleton;
 
  protected:
-  // nsISMILType Methods
+  // SMILType Methods
   // -------------------
   virtual void Init(nsSMILValue& aValue) const override;
   virtual void Destroy(nsSMILValue&) const override;
   virtual nsresult Assign(nsSMILValue& aDest,
                           const nsSMILValue& aSrc) const override;
   virtual bool IsEqual(const nsSMILValue& aLeft,
                        const nsSMILValue& aRight) const override;
   virtual nsresult Add(nsSMILValue& aDest, const nsSMILValue& aValueToAdd,
--- a/dom/svg/SVGPathSegListSMILType.h
+++ b/dom/svg/SVGPathSegListSMILType.h
@@ -3,37 +3,37 @@
 /* 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_SVGPATHSEGLISTSMILTYPE_H_
 #define MOZILLA_SVGPATHSEGLISTSMILTYPE_H_
 
 #include "mozilla/Attributes.h"
-#include "nsISMILType.h"
+#include "SMILType.h"
 
 class nsSMILValue;
 
 namespace mozilla {
 
 ////////////////////////////////////////////////////////////////////////
 // SVGPathSegListSMILType
 //
 // Operations for animating an SVGPathData.
 //
-class SVGPathSegListSMILType : public nsISMILType {
+class SVGPathSegListSMILType : public SMILType {
  public:
   // Singleton for nsSMILValue objects to hold onto.
   static SVGPathSegListSMILType* Singleton() {
     static SVGPathSegListSMILType sSingleton;
     return &sSingleton;
   }
 
  protected:
-  // nsISMILType Methods
+  // SMILType Methods
   // -------------------
 
   virtual void Init(nsSMILValue& aValue) const override;
 
   virtual void Destroy(nsSMILValue& aValue) const override;
   virtual nsresult Assign(nsSMILValue& aDest,
                           const nsSMILValue& aSrc) const override;
   virtual bool IsEqual(const nsSMILValue& aLeft,
--- a/dom/svg/SVGPointListSMILType.h
+++ b/dom/svg/SVGPointListSMILType.h
@@ -3,34 +3,34 @@
 /* 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_SVGPOINTLISTSMILTYPE_H_
 #define MOZILLA_SVGPOINTLISTSMILTYPE_H_
 
 #include "mozilla/Attributes.h"
-#include "nsISMILType.h"
+#include "SMILType.h"
 
 class nsSMILValue;
 
 namespace mozilla {
 
 ////////////////////////////////////////////////////////////////////////
 // SVGPointListSMILType
 //
 // Operations for animating an SVGPointList.
 //
-class SVGPointListSMILType : public nsISMILType {
+class SVGPointListSMILType : public SMILType {
  public:
   // Singleton for nsSMILValue objects to hold onto.
   static SVGPointListSMILType sSingleton;
 
  protected:
-  // nsISMILType Methods
+  // SMILType Methods
   // -------------------
 
   virtual void Init(nsSMILValue& aValue) const override;
 
   virtual void Destroy(nsSMILValue& aValue) const override;
   virtual nsresult Assign(nsSMILValue& aDest,
                           const nsSMILValue& aSrc) const override;
   virtual bool IsEqual(const nsSMILValue& aLeft,
--- a/dom/svg/SVGTransformListSMILType.h
+++ b/dom/svg/SVGTransformListSMILType.h
@@ -3,17 +3,17 @@
 /* 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 SVGTRANSFORMLISTSMILTYPE_H_
 #define SVGTRANSFORMLISTSMILTYPE_H_
 
 #include "mozilla/Attributes.h"
-#include "nsISMILType.h"
+#include "SMILType.h"
 #include "nsTArray.h"
 
 class nsSMILValue;
 
 namespace mozilla {
 
 class nsSVGTransform;
 class SVGTransformList;
@@ -73,26 +73,26 @@ class SVGTransformSMILData;
 //     <animateTransform type="skewX" additive="sum".../>
 //   </circle>
 //
 // Similar conditions hold for Interpolate() which in cases such as to-animation
 // may have use a start-value the base value of the target attribute (which as
 // we have seen above can contain 0..n elements) whilst the end-value comes from
 // the <animateTransform> and so can only hold 1 transform.
 //
-class SVGTransformListSMILType : public nsISMILType {
+class SVGTransformListSMILType : public SMILType {
  public:
   // Singleton for nsSMILValue objects to hold onto.
   static SVGTransformListSMILType* Singleton() {
     static SVGTransformListSMILType sSingleton;
     return &sSingleton;
   }
 
  protected:
-  // nsISMILType Methods
+  // SMILType Methods
   // -------------------
   virtual void Init(nsSMILValue& aValue) const override;
   virtual void Destroy(nsSMILValue& aValue) const override;
   virtual nsresult Assign(nsSMILValue& aDest,
                           const nsSMILValue& aSrc) const override;
   virtual bool IsEqual(const nsSMILValue& aLeft,
                        const nsSMILValue& aRight) const override;
   virtual nsresult Add(nsSMILValue& aDest, const nsSMILValue& aValueToAdd,
--- a/dom/svg/SVGViewBoxSMILType.h
+++ b/dom/svg/SVGViewBoxSMILType.h
@@ -3,29 +3,29 @@
 /* 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_SVGVIEWBOXSMILTYPE_H_
 #define MOZILLA_SVGVIEWBOXSMILTYPE_H_
 
 #include "mozilla/Attributes.h"
-#include "nsISMILType.h"
+#include "SMILType.h"
 
 class nsSMILValue;
 
 namespace mozilla {
 
-class SVGViewBoxSMILType : public nsISMILType {
+class SVGViewBoxSMILType : public SMILType {
  public:
   // Singleton for nsSMILValue objects to hold onto.
   static SVGViewBoxSMILType sSingleton;
 
  protected:
-  // nsISMILType Methods
+  // SMILType Methods
   // -------------------
   virtual void Init(nsSMILValue& aValue) const override;
   virtual void Destroy(nsSMILValue&) const override;
   virtual nsresult Assign(nsSMILValue& aDest,
                           const nsSMILValue& aSrc) const override;
   virtual bool IsEqual(const nsSMILValue& aLeft,
                        const nsSMILValue& aRight) const override;
   virtual nsresult Add(nsSMILValue& aDest, const nsSMILValue& aValueToAdd,