Bug 1448763 part 4 - Remove nsCSSValueGradient and its friends. r?emilio
MozReview-Commit-ID: JoYZyud2Wtu
--- a/layout/style/ServoBindings.toml
+++ b/layout/style/ServoBindings.toml
@@ -280,18 +280,16 @@ whitelist-types = [
"nsCSSFontDesc",
"nsCSSKeyword",
"nsCSSPropertyID",
"nsCSSPropertyIDSet",
"nsCSSProps",
"nsCSSShadowArray",
"nsCSSValue",
"nsCSSValueFloatColor",
- "nsCSSValueGradient",
- "nsCSSValueGradientStop",
"nsCSSValueList",
"nsCSSValueList_heap",
"nsCSSValuePair_heap",
"nsCSSValuePairList",
"nsCSSValuePairList_heap",
"nsCSSValueTriplet_heap",
"nsCursorImage",
"nsFont",
--- a/layout/style/nsCSSValue.cpp
+++ b/layout/style/nsCSSValue.cpp
@@ -105,23 +105,16 @@ nsCSSValue::nsCSSValue(mozilla::css::URL
nsCSSValue::nsCSSValue(mozilla::css::ImageValue* aValue)
: mUnit(eCSSUnit_Image)
{
mValue.mImage = aValue;
mValue.mImage->AddRef();
}
-nsCSSValue::nsCSSValue(nsCSSValueGradient* aValue)
- : mUnit(eCSSUnit_Gradient)
-{
- mValue.mGradient = aValue;
- mValue.mGradient->AddRef();
-}
-
nsCSSValue::nsCSSValue(mozilla::css::GridTemplateAreasValue* aValue)
: mUnit(eCSSUnit_GridTemplateAreas)
{
mValue.mGridTemplateAreas = aValue;
mValue.mGridTemplateAreas->AddRef();
}
nsCSSValue::nsCSSValue(SharedFontList* aValue)
@@ -166,20 +159,16 @@ nsCSSValue::nsCSSValue(const nsCSSValue&
else if (eCSSUnit_URL == mUnit) {
mValue.mURL = aCopy.mValue.mURL;
mValue.mURL->AddRef();
}
else if (eCSSUnit_Image == mUnit) {
mValue.mImage = aCopy.mValue.mImage;
mValue.mImage->AddRef();
}
- else if (eCSSUnit_Gradient == mUnit) {
- mValue.mGradient = aCopy.mValue.mGradient;
- mValue.mGradient->AddRef();
- }
else if (eCSSUnit_Pair == mUnit) {
mValue.mPair = aCopy.mValue.mPair;
mValue.mPair->AddRef();
}
else if (eCSSUnit_Triplet == mUnit) {
mValue.mTriplet = aCopy.mValue.mTriplet;
mValue.mTriplet->AddRef();
}
@@ -276,19 +265,16 @@ bool nsCSSValue::operator==(const nsCSSV
return *mValue.mArray == *aOther.mValue.mArray;
}
else if (eCSSUnit_URL == mUnit) {
return mValue.mURL->Equals(*aOther.mValue.mURL);
}
else if (eCSSUnit_Image == mUnit) {
return mValue.mImage->Equals(*aOther.mValue.mImage);
}
- else if (eCSSUnit_Gradient == mUnit) {
- return *mValue.mGradient == *aOther.mValue.mGradient;
- }
else if (eCSSUnit_Pair == mUnit) {
return *mValue.mPair == *aOther.mValue.mPair;
}
else if (eCSSUnit_Triplet == mUnit) {
return *mValue.mTriplet == *aOther.mValue.mTriplet;
}
else if (eCSSUnit_Rect == mUnit) {
return *mValue.mRect == *aOther.mValue.mRect;
@@ -411,18 +397,16 @@ void nsCSSValue::DoReset()
} else if (eCSSUnit_ComplexColor == mUnit) {
DO_RELEASE(mComplexColor);
} else if (UnitHasArrayValue()) {
DO_RELEASE(mArray);
} else if (eCSSUnit_URL == mUnit) {
DO_RELEASE(mURL);
} else if (eCSSUnit_Image == mUnit) {
DO_RELEASE(mImage);
- } else if (eCSSUnit_Gradient == mUnit) {
- DO_RELEASE(mGradient);
} else if (eCSSUnit_Pair == mUnit) {
DO_RELEASE(mPair);
} else if (eCSSUnit_Triplet == mUnit) {
DO_RELEASE(mTriplet);
} else if (eCSSUnit_Rect == mUnit) {
DO_RELEASE(mRect);
} else if (eCSSUnit_List == mUnit) {
DO_RELEASE(mList);
@@ -564,24 +548,16 @@ void nsCSSValue::SetURLValue(mozilla::cs
void nsCSSValue::SetImageValue(mozilla::css::ImageValue* aValue)
{
Reset();
mUnit = eCSSUnit_Image;
mValue.mImage = aValue;
mValue.mImage->AddRef();
}
-void nsCSSValue::SetGradientValue(nsCSSValueGradient* aValue)
-{
- Reset();
- mUnit = eCSSUnit_Gradient;
- mValue.mGradient = aValue;
- mValue.mGradient->AddRef();
-}
-
void nsCSSValue::SetGridTemplateAreas(mozilla::css::GridTemplateAreasValue* aValue)
{
Reset();
mUnit = eCSSUnit_GridTemplateAreas;
mValue.mGridTemplateAreas = aValue;
mValue.mGridTemplateAreas->AddRef();
}
@@ -1048,21 +1024,16 @@ nsCSSValue::SizeOfExcludingThis(mozilla:
n += mValue.mURL->SizeOfIncludingThis(aMallocSizeOf);
break;
// Image
case eCSSUnit_Image:
n += mValue.mImage->SizeOfIncludingThis(aMallocSizeOf);
break;
- // Gradient
- case eCSSUnit_Gradient:
- n += mValue.mGradient->SizeOfIncludingThis(aMallocSizeOf);
- break;
-
// Pair
case eCSSUnit_Pair:
n += mValue.mPair->SizeOfIncludingThis(aMallocSizeOf);
break;
// Triplet
case eCSSUnit_Triplet:
n += mValue.mTriplet->SizeOfIncludingThis(aMallocSizeOf);
@@ -1912,79 +1883,16 @@ css::ComplexColorValue::SizeOfIncludingT
// Only measure it if it's unshared, to avoid double-counting.
size_t n = 0;
if (mRefCnt <= 1) {
n += aMallocSizeOf(this);
}
return n;
}
-nsCSSValueGradientStop::nsCSSValueGradientStop()
- : mLocation(eCSSUnit_None),
- mColor(eCSSUnit_Null),
- mIsInterpolationHint(false)
-{
- MOZ_COUNT_CTOR(nsCSSValueGradientStop);
-}
-
-nsCSSValueGradientStop::nsCSSValueGradientStop(const nsCSSValueGradientStop& aOther)
- : mLocation(aOther.mLocation),
- mColor(aOther.mColor),
- mIsInterpolationHint(aOther.mIsInterpolationHint)
-{
- MOZ_COUNT_CTOR(nsCSSValueGradientStop);
-}
-
-nsCSSValueGradientStop::~nsCSSValueGradientStop()
-{
- MOZ_COUNT_DTOR(nsCSSValueGradientStop);
-}
-
-size_t
-nsCSSValueGradientStop::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const
-{
- size_t n = 0;
- n += mLocation.SizeOfExcludingThis(aMallocSizeOf);
- n += mColor .SizeOfExcludingThis(aMallocSizeOf);
- return n;
-}
-
-nsCSSValueGradient::nsCSSValueGradient(bool aIsRadial,
- bool aIsRepeating)
- : mIsRadial(aIsRadial),
- mIsRepeating(aIsRepeating),
- mIsLegacySyntax(false),
- mIsMozLegacySyntax(false),
- mIsExplicitSize(false),
- mBgPos(eCSSUnit_None),
- mAngle(eCSSUnit_None)
-{
- mRadialValues[0].SetNoneValue();
- mRadialValues[1].SetNoneValue();
-}
-
-size_t
-nsCSSValueGradient::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const
-{
- // Only measure it if it's unshared, to avoid double-counting.
- size_t n = 0;
- if (mRefCnt <= 1) {
- n += aMallocSizeOf(this);
- n += mBgPos.SizeOfExcludingThis(aMallocSizeOf);
- n += mAngle.SizeOfExcludingThis(aMallocSizeOf);
- n += mRadialValues[0].SizeOfExcludingThis(aMallocSizeOf);
- n += mRadialValues[1].SizeOfExcludingThis(aMallocSizeOf);
- n += mStops.ShallowSizeOfExcludingThis(aMallocSizeOf);
- for (uint32_t i = 0; i < mStops.Length(); i++) {
- n += mStops[i].SizeOfExcludingThis(aMallocSizeOf);
- }
- }
- return n;
-}
-
// --- nsCSSValueFloatColor -------------
bool
nsCSSValueFloatColor::operator==(nsCSSValueFloatColor& aOther) const
{
return mComponent1 == aOther.mComponent1 &&
mComponent2 == aOther.mComponent2 &&
mComponent3 == aOther.mComponent3 &&
--- a/layout/style/nsCSSValue.h
+++ b/layout/style/nsCSSValue.h
@@ -495,17 +495,16 @@ enum nsCSSUnit {
eCSSUnit_Calc_Plus = 31, // (nsCSSValue::Array*) + node within calc()
eCSSUnit_Calc_Minus = 32, // (nsCSSValue::Array*) - within calc
eCSSUnit_Calc_Times_L = 33, // (nsCSSValue::Array*) num * val within calc
eCSSUnit_Calc_Times_R = 34, // (nsCSSValue::Array*) val * num within calc
eCSSUnit_Calc_Divided = 35, // (nsCSSValue::Array*) / within calc
eCSSUnit_URL = 40, // (nsCSSValue::URL*) value
eCSSUnit_Image = 41, // (nsCSSValue::Image*) value
- eCSSUnit_Gradient = 42, // (nsCSSValueGradient*) value
eCSSUnit_GridTemplateAreas = 44, // (GridTemplateAreasValue*)
// for grid-template-areas
eCSSUnit_Pair = 50, // (nsCSSValuePair*) pair of values
eCSSUnit_Triplet = 51, // (nsCSSValueTriplet*) triplet of values
eCSSUnit_Rect = 52, // (nsCSSRect*) rectangle (four values)
eCSSUnit_List = 53, // (nsCSSValueList*) list of values
eCSSUnit_ListDep = 54, // (nsCSSValueList*) same as List
@@ -581,17 +580,16 @@ enum nsCSSUnit {
// Time units
eCSSUnit_Seconds = 3000, // (float) Standard time
eCSSUnit_Milliseconds = 3001, // (float) 1/1000 second
// Flexible fraction (CSS Grid)
eCSSUnit_FlexFraction = 4000 // (float) Fraction of free space
};
-struct nsCSSValueGradient;
struct nsCSSValuePair;
struct nsCSSValuePair_heap;
struct nsCSSRect;
struct nsCSSRect_heap;
struct nsCSSValueList;
struct nsCSSValueList_heap;
struct nsCSSValueSharedList;
struct nsCSSValuePairList;
@@ -617,17 +615,16 @@ public:
}
nsCSSValue(int32_t aValue, nsCSSUnit aUnit);
nsCSSValue(float aValue, nsCSSUnit aUnit);
nsCSSValue(const nsString& aValue, nsCSSUnit aUnit);
nsCSSValue(Array* aArray, nsCSSUnit aUnit);
explicit nsCSSValue(mozilla::css::URLValue* aValue);
explicit nsCSSValue(mozilla::css::ImageValue* aValue);
- explicit nsCSSValue(nsCSSValueGradient* aValue);
explicit nsCSSValue(mozilla::css::GridTemplateAreasValue* aValue);
explicit nsCSSValue(mozilla::SharedFontList* aValue);
nsCSSValue(const nsCSSValue& aCopy);
nsCSSValue(nsCSSValue&& aOther)
: mUnit(aOther.mUnit)
, mValue(aOther.mValue)
{
aOther.mUnit = eCSSUnit_Null;
@@ -800,22 +797,16 @@ public:
nsIURI* GetURLValue() const
{
MOZ_ASSERT(mUnit == eCSSUnit_URL || mUnit == eCSSUnit_Image,
"not a URL value");
return mUnit == eCSSUnit_URL ?
mValue.mURL->GetURI() : mValue.mImage->GetURI();
}
- nsCSSValueGradient* GetGradientValue() const
- {
- MOZ_ASSERT(mUnit == eCSSUnit_Gradient, "not a gradient value");
- return mValue.mGradient;
- }
-
nsCSSValueSharedList* GetSharedListValue() const
{
MOZ_ASSERT(mUnit == eCSSUnit_SharedList, "not a shared list value");
return mValue.mSharedList;
}
mozilla::NotNull<mozilla::SharedFontList*> GetFontFamilyListValue() const
{
@@ -927,17 +918,16 @@ public:
float aComponent3,
float aAlpha, nsCSSUnit aUnit);
void SetRGBAColorValue(const mozilla::css::RGBAColorData& aValue);
void SetComplexColorValue(
already_AddRefed<mozilla::css::ComplexColorValue> aValue);
void SetArrayValue(nsCSSValue::Array* aArray, nsCSSUnit aUnit);
void SetURLValue(mozilla::css::URLValue* aURI);
void SetImageValue(mozilla::css::ImageValue* aImage);
- void SetGradientValue(nsCSSValueGradient* aGradient);
void SetGridTemplateAreas(mozilla::css::GridTemplateAreasValue* aValue);
void SetFontFamilyListValue(already_AddRefed<mozilla::SharedFontList> aFontListValue);
void SetPairValue(const nsCSSValuePair* aPair);
void SetPairValue(const nsCSSValue& xValue, const nsCSSValue& yValue);
void SetSharedListValue(nsCSSValueSharedList* aList);
void SetDependentListValue(nsCSSValueList* aList);
void SetDependentPairListValue(nsCSSValuePairList* aList);
void SetTripletValue(const nsCSSValueTriplet* aTriplet);
@@ -1003,17 +993,16 @@ protected:
// If we're of a string type, mString is not null.
nsStringBuffer* MOZ_OWNING_REF mString;
nscolor mColor;
nsAtom* MOZ_OWNING_REF mAtom;
Array* MOZ_OWNING_REF mArray;
mozilla::css::URLValue* MOZ_OWNING_REF mURL;
mozilla::css::ImageValue* MOZ_OWNING_REF mImage;
mozilla::css::GridTemplateAreasValue* MOZ_OWNING_REF mGridTemplateAreas;
- nsCSSValueGradient* MOZ_OWNING_REF mGradient;
nsCSSValuePair_heap* MOZ_OWNING_REF mPair;
nsCSSRect_heap* MOZ_OWNING_REF mRect;
nsCSSValueTriplet_heap* MOZ_OWNING_REF mTriplet;
nsCSSValueList_heap* MOZ_OWNING_REF mList;
nsCSSValueList* mListDependent;
nsCSSValueSharedList* MOZ_OWNING_REF mSharedList;
nsCSSValuePairList_heap* MOZ_OWNING_REF mPairList;
nsCSSValuePairList* mPairListDependent;
@@ -1562,151 +1551,16 @@ nsCSSValue::GetPairListValue() const
if (mUnit == eCSSUnit_PairList)
return mValue.mPairList;
else {
MOZ_ASSERT (mUnit == eCSSUnit_PairListDep, "not a pairlist value");
return mValue.mPairListDependent;
}
}
-struct nsCSSValueGradientStop {
-public:
- nsCSSValueGradientStop();
- // needed to keep bloat logs happy when we use the TArray
- // in nsCSSValueGradient
- nsCSSValueGradientStop(const nsCSSValueGradientStop& aOther);
- ~nsCSSValueGradientStop();
-
- nsCSSValue mLocation;
- nsCSSValue mColor;
- // If mIsInterpolationHint is true, there is no color, just
- // a location.
- bool mIsInterpolationHint;
-
- bool operator==(const nsCSSValueGradientStop& aOther) const
- {
- return (mLocation == aOther.mLocation &&
- mIsInterpolationHint == aOther.mIsInterpolationHint &&
- (mIsInterpolationHint || mColor == aOther.mColor));
- }
-
- bool operator!=(const nsCSSValueGradientStop& aOther) const
- {
- return !(*this == aOther);
- }
-
- size_t SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const;
-};
-
-struct nsCSSValueGradient final {
- nsCSSValueGradient(bool aIsRadial, bool aIsRepeating);
-
- // true if gradient is radial, false if it is linear
- bool mIsRadial;
- bool mIsRepeating;
- bool mIsLegacySyntax; // If true, serialization should use a vendor prefix.
- // XXXdholbert This will hopefully be going away soon, if bug 1337655 sticks:
- bool mIsMozLegacySyntax; // (Only makes sense when mIsLegacySyntax is true.)
- // If true, serialization should use -moz prefix.
- // Else, serialization should use -webkit prefix.
- bool mIsExplicitSize;
- // line position and angle
- nsCSSValuePair mBgPos;
- nsCSSValue mAngle;
-
- // Only meaningful if mIsRadial is true
-private:
- nsCSSValue mRadialValues[2];
-public:
- nsCSSValue& GetRadialShape()
- {
- MOZ_ASSERT(!mIsExplicitSize);
- return mRadialValues[0];
- }
- const nsCSSValue& GetRadialShape() const
- {
- MOZ_ASSERT(!mIsExplicitSize);
- return mRadialValues[0];
- }
- nsCSSValue& GetRadialSize()
- {
- MOZ_ASSERT(!mIsExplicitSize);
- return mRadialValues[1];
- }
- const nsCSSValue& GetRadialSize() const
- {
- MOZ_ASSERT(!mIsExplicitSize);
- return mRadialValues[1];
- }
- nsCSSValue& GetRadiusX()
- {
- MOZ_ASSERT(mIsExplicitSize);
- return mRadialValues[0];
- }
- const nsCSSValue& GetRadiusX() const
- {
- MOZ_ASSERT(mIsExplicitSize);
- return mRadialValues[0];
- }
- nsCSSValue& GetRadiusY()
- {
- MOZ_ASSERT(mIsExplicitSize);
- return mRadialValues[1];
- }
- const nsCSSValue& GetRadiusY() const
- {
- MOZ_ASSERT(mIsExplicitSize);
- return mRadialValues[1];
- }
-
- InfallibleTArray<nsCSSValueGradientStop> mStops;
-
- bool operator==(const nsCSSValueGradient& aOther) const
- {
- if (mIsRadial != aOther.mIsRadial ||
- mIsRepeating != aOther.mIsRepeating ||
- mIsLegacySyntax != aOther.mIsLegacySyntax ||
- mIsMozLegacySyntax != aOther.mIsMozLegacySyntax ||
- mIsExplicitSize != aOther.mIsExplicitSize ||
- mBgPos != aOther.mBgPos ||
- mAngle != aOther.mAngle ||
- mRadialValues[0] != aOther.mRadialValues[0] ||
- mRadialValues[1] != aOther.mRadialValues[1])
- return false;
-
- if (mStops.Length() != aOther.mStops.Length())
- return false;
-
- for (uint32_t i = 0; i < mStops.Length(); i++) {
- if (mStops[i] != aOther.mStops[i])
- return false;
- }
-
- return true;
- }
-
- bool operator!=(const nsCSSValueGradient& aOther) const
- {
- return !(*this == aOther);
- }
-
- NS_INLINE_DECL_REFCOUNTING(nsCSSValueGradient)
-
- size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const;
-
-private:
- // Private destructor, to discourage deletion outside of Release():
- ~nsCSSValueGradient()
- {
- }
-
- nsCSSValueGradient(const nsCSSValueGradient& aOther) = delete;
- nsCSSValueGradient& operator=(const nsCSSValueGradient& aOther) = delete;
-};
-
class nsCSSValueFloatColor final {
public:
nsCSSValueFloatColor(float aComponent1, float aComponent2, float aComponent3,
float aAlpha)
: mComponent1(aComponent1)
, mComponent2(aComponent2)
, mComponent3(aComponent3)
, mAlpha(aAlpha)