Bug 1318573 - (Part 6) Move CanvasShadowStyles to BasicRenderingContext2D. r?mstange draft
authorKevin Chen <kechen@mozilla.com>
Wed, 15 Feb 2017 16:56:25 +0800
changeset 499859 fbf638c8a07d67bf9431efc4d3ff330521d8c68d
parent 499858 2259232b69001a1b3725ccde275468e8923e8c5a
child 499860 a3527a8ca53169907930220284368bedf1e9b810
push id49564
push userbmo:kechen@mozilla.com
push dateThu, 16 Mar 2017 09:50:15 +0000
reviewersmstange
bugs1318573
milestone54.0a1
Bug 1318573 - (Part 6) Move CanvasShadowStyles to BasicRenderingContext2D. r?mstange MozReview-Commit-ID: 3NXosm5JuuW
dom/canvas/BasicRenderingContext2D.cpp
dom/canvas/BasicRenderingContext2D.h
dom/canvas/CanvasRenderingContext2D.cpp
dom/canvas/CanvasRenderingContext2D.h
--- a/dom/canvas/BasicRenderingContext2D.cpp
+++ b/dom/canvas/BasicRenderingContext2D.cpp
@@ -483,16 +483,31 @@ BasicRenderingContext2D::SetStyleFromUni
     SetStyleFromPattern(aValue.GetAsCanvasPattern(), aWhichStyle);
     return;
   }
 
   MOZ_ASSERT_UNREACHABLE("Invalid union value");
 }
 
 //
+// shadows
+//
+
+void
+BasicRenderingContext2D::SetShadowColor(const nsAString& aShadowColor)
+{
+  nscolor color;
+  if (!ParseColor(aShadowColor, &color)) {
+    return;
+  }
+
+  CurrentState().shadowColor = color;
+}
+
+//
 // path bits
 //
 
 void
 BasicRenderingContext2D::TransformWillUpdate()
 {
   EnsureTarget();
 
--- a/dom/canvas/BasicRenderingContext2D.h
+++ b/dom/canvas/BasicRenderingContext2D.h
@@ -145,24 +145,54 @@ public:
                                                         ErrorResult& aError);
   already_AddRefed<CanvasPattern> CreatePattern(const CanvasImageSource& aElement,
                                                 const nsAString& aRepeat,
                                                 ErrorResult& aError);
 
   //
   // CanvasShadowStyles
   //
-  virtual double ShadowOffsetX() = 0;
-  virtual void SetShadowOffsetX(double aShadowOffsetX) = 0;
-  virtual double ShadowOffsetY() = 0;
-  virtual void SetShadowOffsetY(double aShadowOffsetY) = 0;
-  virtual double ShadowBlur() = 0;
-  virtual void SetShadowBlur(double aShadowBlur) = 0;
-  virtual void GetShadowColor(nsAString& aShadowColor) = 0;
-  virtual void SetShadowColor(const nsAString& aShadowColor) = 0;
+  double ShadowOffsetX()
+  {
+    return CurrentState().shadowOffset.x;
+  }
+
+  void SetShadowOffsetX(double aShadowOffsetX)
+  {
+    CurrentState().shadowOffset.x = ToFloat(aShadowOffsetX);
+  }
+
+  double ShadowOffsetY()
+  {
+    return CurrentState().shadowOffset.y;
+  }
+
+  void SetShadowOffsetY(double aShadowOffsetY)
+  {
+    CurrentState().shadowOffset.y = ToFloat(aShadowOffsetY);
+  }
+
+  double ShadowBlur()
+  {
+    return CurrentState().shadowBlur;
+  }
+
+  void SetShadowBlur(double aShadowBlur)
+  {
+    if (aShadowBlur >= 0.0) {
+      CurrentState().shadowBlur = ToFloat(aShadowBlur);
+    }
+  }
+
+  void GetShadowColor(nsAString& aShadowColor)
+  {
+    StyleColorToString(CurrentState().shadowColor, aShadowColor);
+  }
+
+  void SetShadowColor(const nsAString& aShadowColor);
 
   //
   // CanvasRect
   //
   virtual void ClearRect(double aX, double aY, double aW, double aH) = 0;
   virtual void FillRect(double aX, double aY, double aW, double aH) = 0;
   virtual void StrokeRect(double aX, double aY, double aW, double aH) = 0;
 
--- a/dom/canvas/CanvasRenderingContext2D.cpp
+++ b/dom/canvas/CanvasRenderingContext2D.cpp
@@ -2130,30 +2130,16 @@ CanvasRenderingContext2D::GetFillRule(ns
   case FillRule::FILL_WINDING:
     aString.AssignLiteral("nonzero"); break;
   case FillRule::FILL_EVEN_ODD:
     aString.AssignLiteral("evenodd"); break;
   }
 }
 
 //
-// shadows
-//
-void
-CanvasRenderingContext2D::SetShadowColor(const nsAString& aShadowColor)
-{
-  nscolor color;
-  if (!ParseColor(aShadowColor, &color)) {
-    return;
-  }
-
-  CurrentState().shadowColor = color;
-}
-
-//
 // filters
 //
 
 static already_AddRefed<Declaration>
 CreateDeclaration(nsINode* aNode,
   const nsCSSPropertyID aProp1, const nsAString& aValue1, bool* aChanged1,
   const nsCSSPropertyID aProp2, const nsAString& aValue2, bool* aChanged2)
 {
--- a/dom/canvas/CanvasRenderingContext2D.h
+++ b/dom/canvas/CanvasRenderingContext2D.h
@@ -69,59 +69,21 @@ public:
     if (!mCanvasElement || mCanvasElement->IsInNativeAnonymousSubtree()) {
       return nullptr;
     }
 
     // corresponds to changes to the old bindings made in bug 745025
     return mCanvasElement->GetOriginalCanvas();
   }
 
-  double ShadowOffsetX() override
-  {
-    return CurrentState().shadowOffset.x;
-  }
-
-  void SetShadowOffsetX(double aShadowOffsetX) override
-  {
-    CurrentState().shadowOffset.x = ToFloat(aShadowOffsetX);
-  }
-
-  double ShadowOffsetY() override
-  {
-    return CurrentState().shadowOffset.y;
-  }
-
-  void SetShadowOffsetY(double aShadowOffsetY) override
-  {
-    CurrentState().shadowOffset.y = ToFloat(aShadowOffsetY);
-  }
-
-  double ShadowBlur() override
-  {
-    return CurrentState().shadowBlur;
-  }
-
-  void SetShadowBlur(double aShadowBlur) override
-  {
-    if (aShadowBlur >= 0.0) {
-      CurrentState().shadowBlur = ToFloat(aShadowBlur);
-    }
-  }
-
-  void GetShadowColor(nsAString& aShadowColor) override
-  {
-    StyleColorToString(CurrentState().shadowColor, aShadowColor);
-  }
-
   void GetFilter(nsAString& aFilter)
   {
     aFilter = CurrentState().filterString;
   }
 
-  void SetShadowColor(const nsAString& aShadowColor) override;
   void SetFilter(const nsAString& aFilter, mozilla::ErrorResult& aError);
   void ClearRect(double aX, double aY, double aW, double aH) override;
   void FillRect(double aX, double aY, double aW, double aH) override;
   void StrokeRect(double aX, double aY, double aW, double aH) override;
   void BeginPath();
   void Fill(const CanvasWindingRule& aWinding);
   void Fill(const CanvasPath& aPath, const CanvasWindingRule& aWinding);
   void Stroke();