Bug 1427512 - Part 8: Remove nsIDOMCSSFontFeatureValuesRule. r=xidorn draft
authorCameron McCormack <cam@mcc.id.au>
Mon, 01 Jan 2018 19:15:07 +1100
changeset 717709 72f6afe2c07c563601dd18d8cb8c7a00731aaa65
parent 717708 a7eb6231f386cb27fc2b63e9e9e119c0e685eaca
child 717710 58f100100fcb1b61a10a2c5400ef8ea284e378c5
push id94746
push userbmo:cam@mcc.id.au
push dateTue, 09 Jan 2018 10:21:54 +0000
reviewersxidorn
bugs1427512
milestone59.0a1
Bug 1427512 - Part 8: Remove nsIDOMCSSFontFeatureValuesRule. r=xidorn MozReview-Commit-ID: FTBV7XxYd4t
dom/interfaces/base/domstubs.idl
dom/interfaces/css/moz.build
dom/interfaces/css/nsIDOMCSSFontFeatureValuesRule.idl
layout/style/CSSFontFeatureValuesRule.cpp
layout/style/CSSFontFeatureValuesRule.h
layout/style/ServoFontFeatureValuesRule.cpp
layout/style/ServoFontFeatureValuesRule.h
layout/style/nsCSSRules.cpp
layout/style/nsCSSRules.h
--- a/dom/interfaces/base/domstubs.idl
+++ b/dom/interfaces/base/domstubs.idl
@@ -62,17 +62,16 @@ interface nsIDOMHTMLFormElement;
 interface nsIDOMHTMLHeadElement;
 
 // CSS
 interface nsIDOMCSSValue;
 interface nsIDOMCSSPrimitiveValue;
 interface nsIDOMCSSRule;
 interface nsIDOMCSSRuleList;
 interface nsIDOMCSSKeyframeRule;
-interface nsIDOMCSSFontFeatureValuesRule;
 interface nsIDOMCSSStyleSheet;
 interface nsIDOMCSSStyleDeclaration;
 interface nsIDOMCounter;
 interface nsIDOMRect;
 interface nsIDOMCSSStyleRule;
 interface nsIDOMCSSStyleRuleCollection;
 
 // Range
--- a/dom/interfaces/css/moz.build
+++ b/dom/interfaces/css/moz.build
@@ -4,17 +4,16 @@
 # 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/.
 
 with Files("**"):
     BUG_COMPONENT = ("Core", "DOM: CSS Object Model")
 
 XPIDL_SOURCES += [
     'nsIDOMCounter.idl',
-    'nsIDOMCSSFontFeatureValuesRule.idl',
     'nsIDOMCSSImportRule.idl',
     'nsIDOMCSSKeyframeRule.idl',
     'nsIDOMCSSKeyframesRule.idl',
     'nsIDOMCSSPageRule.idl',
     'nsIDOMCSSPrimitiveValue.idl',
     'nsIDOMCSSRule.idl',
     'nsIDOMCSSRuleList.idl',
     'nsIDOMCSSStyleDeclaration.idl',
deleted file mode 100644
--- a/dom/interfaces/css/nsIDOMCSSFontFeatureValuesRule.idl
+++ /dev/null
@@ -1,16 +0,0 @@
-/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* 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/. */
-
-#include "nsISupports.idl"
-
-[scriptable, uuid(a343d27f-1da6-4fc3-9355-d4ca434f958e)]
-interface nsIDOMCSSFontFeatureValuesRule : nsISupports
-{
-  attribute DOMString fontFamily;
-                      // raises(DOMException) on setting
-
-  attribute DOMString valueText;
-                      // raises(DOMException) on setting
-};
--- a/layout/style/CSSFontFeatureValuesRule.cpp
+++ b/layout/style/CSSFontFeatureValuesRule.cpp
@@ -5,39 +5,18 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "mozilla/dom/CSSFontFeatureValuesRule.h"
 #include "mozilla/dom/CSSFontFeatureValuesRuleBinding.h"
 
 namespace mozilla {
 namespace dom {
 
-NS_IMPL_ADDREF_INHERITED(CSSFontFeatureValuesRule, css::Rule)
-NS_IMPL_RELEASE_INHERITED(CSSFontFeatureValuesRule, css::Rule)
-
-// QueryInterface implementation for CSSFontFeatureValuesRule
 // If this ever gets its own cycle-collection bits, reevaluate our IsCCLeaf
 // implementation.
-NS_INTERFACE_MAP_BEGIN(CSSFontFeatureValuesRule)
-  NS_INTERFACE_MAP_ENTRY(nsIDOMCSSFontFeatureValuesRule)
-NS_INTERFACE_MAP_END_INHERITING(mozilla::css::Rule)
-
-void
-CSSFontFeatureValuesRule::SetFontFamily(const nsAString& aFamily,
-                                              ErrorResult& aRv)
-{
-  aRv.Throw(NS_ERROR_NOT_IMPLEMENTED);
-}
-
-void
-CSSFontFeatureValuesRule::SetValueText(const nsAString& aFamily,
-                                             ErrorResult& aRv)
-{
-  aRv.Throw(NS_ERROR_NOT_IMPLEMENTED);
-}
 
 bool
 CSSFontFeatureValuesRule::IsCCLeaf() const
 {
   return Rule::IsCCLeaf();
 }
 
 /* virtual */ JSObject*
--- a/layout/style/CSSFontFeatureValuesRule.h
+++ b/layout/style/CSSFontFeatureValuesRule.h
@@ -5,43 +5,37 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef mozilla_dom_CSSFontFeatureValuesRule_h
 #define mozilla_dom_CSSFontFeatureValuesRule_h
 
 #include "mozilla/css/Rule.h"
 
 #include "nsICSSDeclaration.h"
-#include "nsIDOMCSSFontFeatureValuesRule.h"
 #include "nsIDOMCSSStyleDeclaration.h"
 
 namespace mozilla {
 namespace dom {
 
 class CSSFontFeatureValuesRule : public css::Rule
-                               , public nsIDOMCSSFontFeatureValuesRule
 {
 public:
-  NS_DECL_ISUPPORTS_INHERITED
-
   virtual bool IsCCLeaf() const override;
 
   int32_t GetType() const final { return Rule::FONT_FEATURE_VALUES_RULE; }
   using Rule::GetType;
   virtual already_AddRefed<mozilla::css::Rule> Clone() const override = 0;
 
-  using nsIDOMCSSFontFeatureValuesRule::SetFontFamily;
-  using nsIDOMCSSFontFeatureValuesRule::SetValueText;
   // WebIDL interfaces
   uint16_t Type() const final { return nsIDOMCSSRule::FONT_FEATURE_VALUES_RULE; }
   virtual void GetCssTextImpl(nsAString& aCssText) const override = 0;
-  // The XPCOM GetFontFamily is fine
-  void SetFontFamily(const nsAString& aFamily, mozilla::ErrorResult& aRv);
-  // The XPCOM GetValueText is fine
-  void SetValueText(const nsAString& aFamily, mozilla::ErrorResult& aRv);
+  virtual void GetFontFamily(nsAString& aFamily) = 0;
+  virtual void SetFontFamily(const nsAString& aFamily, mozilla::ErrorResult& aRv) = 0;
+  virtual void GetValueText(nsAString& aValueText) = 0;
+  virtual void SetValueText(const nsAString& aValueText, mozilla::ErrorResult& aRv) = 0;
 
   virtual size_t
   SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const override = 0;
 
   JSObject*
   WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override;
 
 protected:
--- a/layout/style/ServoFontFeatureValuesRule.cpp
+++ b/layout/style/ServoFontFeatureValuesRule.cpp
@@ -21,23 +21,16 @@ ServoFontFeatureValuesRule::ServoFontFea
   , mRawRule(Move(aRawRule))
 {
 }
 
 ServoFontFeatureValuesRule::~ServoFontFeatureValuesRule()
 {
 }
 
-NS_IMPL_ADDREF_INHERITED(ServoFontFeatureValuesRule, CSSFontFeatureValuesRule)
-NS_IMPL_RELEASE_INHERITED(ServoFontFeatureValuesRule, CSSFontFeatureValuesRule)
-
-// QueryInterface implementation for FontFeatureValuesRule
-NS_INTERFACE_MAP_BEGIN(ServoFontFeatureValuesRule)
-NS_INTERFACE_MAP_END_INHERITING(CSSFontFeatureValuesRule)
-
 already_AddRefed<css::Rule>
 ServoFontFeatureValuesRule::Clone() const
 {
   // Rule::Clone is only used when CSSStyleSheetInner is cloned in
   // preparation of being mutated. However, ServoStyleSheet never clones
   // anything, so this method should never be called.
   MOZ_ASSERT_UNREACHABLE("Shouldn't be cloning ServoFontFeatureValuesRule");
   return nullptr;
@@ -68,35 +61,35 @@ ServoFontFeatureValuesRule::List(FILE* o
 void
 ServoFontFeatureValuesRule::GetCssTextImpl(nsAString& aCssText) const
 {
   Servo_FontFeatureValuesRule_GetCssText(mRawRule, &aCssText);
 }
 
 /* CSSFontFeatureValuesRule implementation */
 
-NS_IMETHODIMP
+void
 ServoFontFeatureValuesRule::GetFontFamily(nsAString& aFamilyListStr)
 {
   Servo_FontFeatureValuesRule_GetFontFamily(mRawRule, &aFamilyListStr);
-  return NS_OK;
 }
 
-NS_IMETHODIMP
+void
 ServoFontFeatureValuesRule::GetValueText(nsAString& aValueText)
 {
   Servo_FontFeatureValuesRule_GetValueText(mRawRule, &aValueText);
-  return NS_OK;
 }
 
-NS_IMETHODIMP
-ServoFontFeatureValuesRule::SetFontFamily(const nsAString& aFontFamily)
+void
+ServoFontFeatureValuesRule::SetFontFamily(const nsAString& aFontFamily,
+                                          ErrorResult& aRv)
 {
-  return NS_ERROR_NOT_IMPLEMENTED;
+  aRv.Throw(NS_ERROR_NOT_IMPLEMENTED);
 }
 
-NS_IMETHODIMP
-ServoFontFeatureValuesRule::SetValueText(const nsAString& aValueText)
+void
+ServoFontFeatureValuesRule::SetValueText(const nsAString& aValueText,
+                                         ErrorResult& aRv)
 {
-  return NS_ERROR_NOT_IMPLEMENTED;
+  aRv.Throw(NS_ERROR_NOT_IMPLEMENTED);
 }
 
 } // namespace mozilla
--- a/layout/style/ServoFontFeatureValuesRule.h
+++ b/layout/style/ServoFontFeatureValuesRule.h
@@ -15,25 +15,24 @@
 namespace mozilla {
 
 class ServoFontFeatureValuesRule final : public dom::CSSFontFeatureValuesRule
 {
 public:
   ServoFontFeatureValuesRule(RefPtr<RawServoFontFeatureValuesRule> aRawRule,
                              uint32_t aLine, uint32_t aColumn);
 
-  NS_DECL_ISUPPORTS_INHERITED
-
   RawServoFontFeatureValuesRule* Raw() const { return mRawRule; }
 
-  // nsIDOMCSSFontFeatureValuesRule interface
-  NS_DECL_NSIDOMCSSFONTFEATUREVALUESRULE
-
   // WebIDL interface
   void GetCssTextImpl(nsAString& aCssText) const override;
+  void GetFontFamily(nsAString& aFamily) final;
+  void SetFontFamily(const nsAString& aFamily, mozilla::ErrorResult& aRv) final;
+  void GetValueText(nsAString& aValueText) final;
+  void SetValueText(const nsAString& aValueText, mozilla::ErrorResult& aRv) final;
 
   // Methods of mozilla::css::Rule
   already_AddRefed<css::Rule> Clone() const final;
   size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf)
     const final;
 
   #ifdef DEBUG
     void List(FILE* out = stdout, int32_t aIndent = 0) const final;
--- a/layout/style/nsCSSRules.cpp
+++ b/layout/style/nsCSSRules.cpp
@@ -650,25 +650,16 @@ NameSpaceRule::SizeOfIncludingThis(Mallo
 
 /* virtual */ already_AddRefed<css::Rule>
 nsCSSFontFeatureValuesRule::Clone() const
 {
   RefPtr<css::Rule> clone = new nsCSSFontFeatureValuesRule(*this);
   return clone.forget();
 }
 
-NS_IMPL_ADDREF_INHERITED(nsCSSFontFeatureValuesRule, dom::CSSFontFeatureValuesRule)
-NS_IMPL_RELEASE_INHERITED(nsCSSFontFeatureValuesRule, dom::CSSFontFeatureValuesRule)
-
-// QueryInterface implementation for nsCSSFontFeatureValuesRule
-// If this ever gets its own cycle-collection bits, reevaluate our IsCCLeaf
-// implementation.
-NS_INTERFACE_MAP_BEGIN(nsCSSFontFeatureValuesRule)
-NS_INTERFACE_MAP_END_INHERITING(dom::CSSFontFeatureValuesRule)
-
 static void
 FeatureValuesToString(
   const nsTArray<gfxFontFeatureValueSet::FeatureValues>& aFeatureValues,
   nsAString& aOutStr)
 {
   uint32_t i, n;
 
   // append values
@@ -741,40 +732,40 @@ nsCSSFontFeatureValuesRule::List(FILE* o
   nsAutoCString indentStr;
   for (i = aIndent; --i >= 0; ) {
     indentStr.AppendLiteral("  ");
   }
   fprintf_stderr(out, "%s%s\n", indentStr.get(), utf8.get());
 }
 #endif
 
-NS_IMETHODIMP
+void
 nsCSSFontFeatureValuesRule::GetFontFamily(nsAString& aFamilyListStr)
 {
   nsStyleUtil::AppendEscapedCSSFontFamilyList(mFamilyList, aFamilyListStr);
-  return NS_OK;
 }
 
-NS_IMETHODIMP
+void
 nsCSSFontFeatureValuesRule::GetValueText(nsAString& aValueText)
 {
   FeatureValuesToString(mFeatureValues, aValueText);
-  return NS_OK;
 }
 
-NS_IMETHODIMP
-nsCSSFontFeatureValuesRule::SetFontFamily(const nsAString& aFontFamily)
+void
+nsCSSFontFeatureValuesRule::SetFontFamily(const nsAString& aFontFamily,
+                                          ErrorResult& aRv)
 {
-  return NS_ERROR_NOT_IMPLEMENTED;
+  aRv.Throw(NS_ERROR_NOT_IMPLEMENTED);
 }
 
-NS_IMETHODIMP
-nsCSSFontFeatureValuesRule::SetValueText(const nsAString& aValueText)
+void
+nsCSSFontFeatureValuesRule::SetValueText(const nsAString& aValueText,
+                                         ErrorResult& aRv)
 {
-  return NS_ERROR_NOT_IMPLEMENTED;
+  aRv.Throw(NS_ERROR_NOT_IMPLEMENTED);
 }
 
 void
 nsCSSFontFeatureValuesRule::GetCssTextImpl(nsAString& aCssText) const
 {
   FontFeatureValuesRuleToString(mFamilyList, mFeatureValues, aCssText);
 }
 
--- a/layout/style/nsCSSRules.h
+++ b/layout/style/nsCSSRules.h
@@ -24,17 +24,16 @@
 #include "mozilla/dom/CSSMediaRule.h"
 #include "mozilla/dom/CSSPageRule.h"
 #include "mozilla/dom/CSSSupportsRule.h"
 #include "mozilla/dom/CSSMozDocumentRule.h"
 #include "nsAutoPtr.h"
 #include "nsCSSPropertyID.h"
 #include "nsCSSValue.h"
 #include "nsDOMCSSDeclaration.h"
-#include "nsIDOMCSSFontFeatureValuesRule.h"
 #include "nsTArray.h"
 
 class nsMediaList;
 
 namespace mozilla {
 
 class ErrorResult;
 
@@ -161,28 +160,27 @@ public:
   nsCSSFontFeatureValuesRule(const nsCSSFontFeatureValuesRule& aCopy)
     // copy everything except our reference count
     : mozilla::dom::CSSFontFeatureValuesRule(aCopy),
       mFamilyList(aCopy.mFamilyList),
       mFeatureValues(aCopy.mFeatureValues)
   {
   }
 
-  NS_DECL_ISUPPORTS_INHERITED
-
 #ifdef DEBUG
   void List(FILE* out = stdout, int32_t aIndent = 0) const final;
 #endif
   already_AddRefed<mozilla::css::Rule> Clone() const final;
 
-  // nsIDOMCSSFontFeatureValuesRule interface
-  NS_DECL_NSIDOMCSSFONTFEATUREVALUESRULE
-
   // WebIDL interface
   void GetCssTextImpl(nsAString& aCssText) const final;
+  void GetFontFamily(nsAString& aFamily) final;
+  void SetFontFamily(const nsAString& aFamily, mozilla::ErrorResult& aRv) final;
+  void GetValueText(nsAString& aValueText) final;
+  void SetValueText(const nsAString& aValueText, mozilla::ErrorResult& aRv) final;
 
   mozilla::SharedFontList* GetFamilyList() const { return mFamilyList; }
   void SetFamilyList(mozilla::SharedFontList* aFamilyList)
   {
     mFamilyList = aFamilyList;
   }
 
   void AddValueList(int32_t aVariantAlternate,