Backed out changeset 7d7457d5ca8a (bug 1338936)
authorSebastian Hengst <archaeopteryx@coole-files.de>
Sun, 19 Feb 2017 10:37:26 +0100
changeset 372756 70a65a89fe15385e30ed296c33662e0ca1a98e47
parent 372755 42ce6d17aedabfb27dab8175908d0ac0e229f881
child 372757 1e1d6c862e4c8dc222e465cd8e78ebe48a38e5d2
push id10863
push userjlorenzo@mozilla.com
push dateMon, 06 Mar 2017 23:02:23 +0000
treeherdermozilla-aurora@0931190cd725 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs1338936
milestone54.0a1
backs out7d7457d5ca8a83e6279ffa278d98bb170f1ddbc4
Backed out changeset 7d7457d5ca8a (bug 1338936)
dom/html/nsGenericHTMLElement.cpp
dom/mathml/nsMathMLElement.cpp
layout/style/ServoBindingList.h
layout/style/ServoSpecifiedValues.cpp
layout/style/ServoSpecifiedValues.h
--- a/dom/html/nsGenericHTMLElement.cpp
+++ b/dom/html/nsGenericHTMLElement.cpp
@@ -1517,22 +1517,16 @@ nsGenericHTMLElement::MapImageBorderAttr
 void
 nsGenericHTMLElement::MapBackgroundInto(const nsMappedAttributes* aAttributes,
                                         GenericSpecifiedValues* aData)
 {
 
   if (!aData->ShouldComputeStyleStruct(NS_STYLE_INHERIT_BIT(Background)))
     return;
 
-  if (aData->IsServo()) {
-    // FIXME(bug 1339711)
-    NS_WARNING("stylo: cannot handle background presentation attribute");
-    return;
-  }
-
   nsPresContext* presContext = aData->PresContext();
 
   if (!aData->PropertyIsSet(eCSSProperty_background_image) &&
       presContext->UseDocumentColors()) {
     // background
     nsAttrValue* value =
       const_cast<nsAttrValue*>(aAttributes->GetAttr(nsGkAtoms::background));
     if (value) {
@@ -1546,16 +1540,19 @@ nsGenericHTMLElement::MapBackgroundInto(
         // put it in the style tree.
         if (value->Type() == nsAttrValue::eURL) {
           value->LoadImage(presContext->Document());
         }
         if (value->Type() == nsAttrValue::eImage) {
           nsCSSValueList* list = backImage->SetListValue();
           list->mValue.SetImageValue(value->GetImageValue());
         }
+      } else {
+        // FIXME(bug 1330041)
+        MOZ_ASSERT_UNREACHABLE("stylo: cannot handle background");
       }
     }
   }
 }
 
 void
 nsGenericHTMLElement::MapBGColorInto(const nsMappedAttributes* aAttributes,
                                      GenericSpecifiedValues* aData)
--- a/dom/mathml/nsMathMLElement.cpp
+++ b/dom/mathml/nsMathMLElement.cpp
@@ -485,22 +485,16 @@ nsMathMLElement::ParseNumericValue(const
   aCSSValue.SetFloatValue(floatValue, cssUnit);
   return true;
 }
 
 void
 nsMathMLElement::MapMathMLAttributesInto(const nsMappedAttributes* aAttributes,
                                          GenericSpecifiedValues* aGenericData)
 {
-  if (aGenericData->IsServo()) {
-    // FIXME (bug 1339711) handle MathML properties in Stylo
-    NS_WARNING("stylo: cannot handle MathML presentation attributes");
-    return;
-  }
-
   nsRuleData* aData = aGenericData->AsGecko();
   if (aData->mSIDs & NS_STYLE_INHERIT_BIT(Font)) {
     // scriptsizemultiplier
     //
     // "Specifies the multiplier to be used to adjust font size due to changes
     // in scriptlevel.
     //
     // values: number
--- a/layout/style/ServoBindingList.h
+++ b/layout/style/ServoBindingList.h
@@ -170,56 +170,20 @@ SERVO_BINDING_FUNC(Servo_DeclarationBloc
                    nsCSSPropertyID property,
                    nsACString* value, bool is_important)
 SERVO_BINDING_FUNC(Servo_DeclarationBlock_RemoveProperty, void,
                    RawServoDeclarationBlockBorrowed declarations,
                    const nsACString* property)
 SERVO_BINDING_FUNC(Servo_DeclarationBlock_RemovePropertyById, void,
                    RawServoDeclarationBlockBorrowed declarations,
                    nsCSSPropertyID property)
-
-// presentation attributes
-SERVO_BINDING_FUNC(Servo_DeclarationBlock_PropertyIsSet, bool,
-                   RawServoDeclarationBlockBorrowed declarations,
-                   nsCSSPropertyID property)
-SERVO_BINDING_FUNC(Servo_DeclarationBlock_SetIdentStringValue, void,
-                   RawServoDeclarationBlockBorrowed declarations,
-                   nsCSSPropertyID property,
-                   const nsAString& value)
-SERVO_BINDING_FUNC(Servo_DeclarationBlock_SetKeywordValue, void,
-                   RawServoDeclarationBlockBorrowed declarations,
-                   nsCSSPropertyID property,
-                   int32_t value)
-SERVO_BINDING_FUNC(Servo_DeclarationBlock_SetIntValue, void,
-                   RawServoDeclarationBlockBorrowed declarations,
-                   nsCSSPropertyID property,
-                   int32_t value)
-SERVO_BINDING_FUNC(Servo_DeclarationBlock_SetPixelValue, void,
+SERVO_BINDING_FUNC(Servo_DeclarationBlock_AddPresValue, void,
                    RawServoDeclarationBlockBorrowed declarations,
                    nsCSSPropertyID property,
-                   float value)
-SERVO_BINDING_FUNC(Servo_DeclarationBlock_SetPercentValue, void,
-                   RawServoDeclarationBlockBorrowed declarations,
-                   nsCSSPropertyID property,
-                   float value)
-SERVO_BINDING_FUNC(Servo_DeclarationBlock_SetAutoValue, void,
-                   RawServoDeclarationBlockBorrowed declarations,
-                   nsCSSPropertyID property)
-SERVO_BINDING_FUNC(Servo_DeclarationBlock_SetCurrentColor, void,
-                   RawServoDeclarationBlockBorrowed declarations,
-                   nsCSSPropertyID property)
-SERVO_BINDING_FUNC(Servo_DeclarationBlock_SetColorValue, void,
-                   RawServoDeclarationBlockBorrowed declarations,
-                   nsCSSPropertyID property,
-                   nscolor value)
-SERVO_BINDING_FUNC(Servo_DeclarationBlock_SetFontFamily, void,
-                   RawServoDeclarationBlockBorrowed declarations,
-                   const nsAString& value)
-SERVO_BINDING_FUNC(Servo_DeclarationBlock_SetTextDecorationColorOverride, void,
-                   RawServoDeclarationBlockBorrowed declarations)
+                   nsCSSValueBorrowedMut css_value)
 
 // CSS supports()
 SERVO_BINDING_FUNC(Servo_CSSSupports2, bool,
                    const nsACString* name, const nsACString* value)
 SERVO_BINDING_FUNC(Servo_CSSSupports, bool,
                    const nsACString* cond)
 
 // Computed style data
--- a/layout/style/ServoSpecifiedValues.cpp
+++ b/layout/style/ServoSpecifiedValues.cpp
@@ -1,14 +1,13 @@
 /* -*- Mode: C++; 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 "mozilla/ServoBindings.h"
 #include "mozilla/ServoSpecifiedValues.h"
 
 namespace {
 
 #define STYLE_STRUCT(name, checkdata_cb) | NS_STYLE_INHERIT_BIT(name)
 const uint64_t ALL_SIDS = 0
 #include "nsStyleStructList.h"
 ;
@@ -20,84 +19,8 @@ const uint64_t ALL_SIDS = 0
 ServoSpecifiedValues::ServoSpecifiedValues(nsPresContext* aContext,
                                            RawServoDeclarationBlock* aDecl)
 
   : GenericSpecifiedValues(StyleBackendType::Servo, aContext, ALL_SIDS)
   ,  mDecl(aDecl)
 {
 
 }
-
-bool
-ServoSpecifiedValues::PropertyIsSet(nsCSSPropertyID aId)
-{
-  // We always create fresh ServoSpecifiedValues for each property
-  // mapping, so unlike Gecko there aren't existing properties from
-  // the cascade that we wish to avoid overwriting.
-  //
-  // If a property is being overwritten, that's a bug. Check for it
-  // in debug mode (this is O(n^2) behavior since Servo will traverse
-  // the array each time you add a new property)
-  MOZ_ASSERT(!Servo_DeclarationBlock_PropertyIsSet(mDecl, aId),
-             "Presentation attribute mappers should never attempt to set the same property twice");
-  return false;
-}
-
-void
-ServoSpecifiedValues::SetIdentStringValue(nsCSSPropertyID aId,
-                                          const nsString& aValue)
-{
-  Servo_DeclarationBlock_SetIdentStringValue(mDecl, aId, aValue);
-}
-
-void
-ServoSpecifiedValues::SetKeywordValue(nsCSSPropertyID aId, int32_t aValue)
-{
-  Servo_DeclarationBlock_SetKeywordValue(mDecl, aId, aValue);
-}
-
-void
-ServoSpecifiedValues::SetIntValue(nsCSSPropertyID aId, int32_t aValue)
-{
-  Servo_DeclarationBlock_SetIntValue(mDecl, aId, aValue);
-}
-
-void
-ServoSpecifiedValues::SetPixelValue(nsCSSPropertyID aId, float aValue)
-{
-  Servo_DeclarationBlock_SetPixelValue(mDecl, aId, aValue);
-}
-
-void
-ServoSpecifiedValues::SetPercentValue(nsCSSPropertyID aId, float aValue)
-{
-  Servo_DeclarationBlock_SetPercentValue(mDecl, aId, aValue);
-}
-
-void
-ServoSpecifiedValues::SetAutoValue(nsCSSPropertyID aId)
-{
-  Servo_DeclarationBlock_SetAutoValue(mDecl, aId);
-}
-
-void
-ServoSpecifiedValues::SetCurrentColor(nsCSSPropertyID aId)
-{
-  Servo_DeclarationBlock_SetCurrentColor(mDecl, aId);
-}
-
-void
-ServoSpecifiedValues::SetColorValue(nsCSSPropertyID aId, nscolor aColor)
-{
-  Servo_DeclarationBlock_SetColorValue(mDecl, aId, aColor);
-}
-
-void
-ServoSpecifiedValues::SetFontFamily(const nsString& aValue)
-{
-  Servo_DeclarationBlock_SetFontFamily(mDecl, aValue);
-}
-
-void
-ServoSpecifiedValues::SetTextDecorationColorOverride()
-{
-  Servo_DeclarationBlock_SetTextDecorationColorOverride(mDecl);
-}
--- a/layout/style/ServoSpecifiedValues.h
+++ b/layout/style/ServoSpecifiedValues.h
@@ -19,90 +19,91 @@ namespace mozilla {
 
 class ServoSpecifiedValues final: public GenericSpecifiedValues
 {
 public:
 
   ServoSpecifiedValues(nsPresContext* aContext, RawServoDeclarationBlock* aDecl);
 
   // GenericSpecifiedValues overrides
-  bool PropertyIsSet(nsCSSPropertyID aId);
+  bool PropertyIsSet(nsCSSPropertyID aId) {
+    return false;
+  }
 
   void SetIdentStringValue(nsCSSPropertyID aId,
-                           const nsString& aValue);
+                           const nsString& aValue) {
+
+  }
 
   void SetIdentStringValueIfUnset(nsCSSPropertyID aId,
                                   const nsString& aValue) {
-    if (!PropertyIsSet(aId)) {
-      SetIdentStringValue(aId, aValue);
-    }
+
   }
 
   void SetKeywordValue(nsCSSPropertyID aId,
-                       int32_t aValue);
+                       int32_t aValue) {
+  }
 
   void SetKeywordValueIfUnset(nsCSSPropertyID aId,
                               int32_t aValue) {
-    if (!PropertyIsSet(aId)) {
-      SetKeywordValue(aId, aValue);
-    }
+
   }
 
 
   void SetIntValue(nsCSSPropertyID aId,
-                   int32_t aValue);
+                   int32_t aValue) {
+  }
 
   void SetPixelValue(nsCSSPropertyID aId,
-                     float aValue);
+                     float aValue) {
+  }
 
   void SetPixelValueIfUnset(nsCSSPropertyID aId,
                             float aValue) {
-    if (!PropertyIsSet(aId)) {
-      SetPixelValue(aId, aValue);
-    }
   }
 
   void SetPercentValue(nsCSSPropertyID aId,
-                       float aValue);
+                       float aValue) {
+  }
 
-  void SetAutoValue(nsCSSPropertyID aId);
+  void SetAutoValue(nsCSSPropertyID aId) {
+  }
 
   void SetAutoValueIfUnset(nsCSSPropertyID aId) {
-    if (!PropertyIsSet(aId)) {
-      SetAutoValue(aId);
-    }
   }
 
   void SetPercentValueIfUnset(nsCSSPropertyID aId,
                               float aValue) {
-    if (!PropertyIsSet(aId)) {
-      SetPercentValue(aId, aValue);
-    }
+
   }
 
-  void SetCurrentColor(nsCSSPropertyID aId);
+  void SetCurrentColor(nsCSSPropertyID aId) {
+
+  }
 
   void SetCurrentColorIfUnset(nsCSSPropertyID aId) {
-    if (!PropertyIsSet(aId)) {
-      SetCurrentColor(aId);
-    }
+
   }
 
   void SetColorValue(nsCSSPropertyID aId,
-                     nscolor aValue);
+                     nscolor aValue) {
+
+  }
 
   void SetColorValueIfUnset(nsCSSPropertyID aId,
                             nscolor aValue) {
-    if (!PropertyIsSet(aId)) {
-      SetColorValue(aId, aValue);
-    }
+
   }
 
-  void SetFontFamily(const nsString& aValue);
-  void SetTextDecorationColorOverride();
+  void SetFontFamily(const nsString& aValue) {
+
+  }
+  void SetTextDecorationColorOverride() {
+
+  }
 
 private:
   RefPtr<RawServoDeclarationBlock> mDecl;
 };
 
 } // namespace mozilla
 
 #endif // mozilla_ServoSpecifiedValues_h
\ No newline at end of file