Bug 1463386: Remove eCSSUnit_Image. r?heycam
MozReview-Commit-ID: 9OX6iW7Lr5Q
--- a/layout/style/nsCSSValue.cpp
+++ b/layout/style/nsCSSValue.cpp
@@ -96,23 +96,16 @@ nsCSSValue::nsCSSValue(nsCSSValue::Array
nsCSSValue::nsCSSValue(mozilla::css::URLValue* aValue)
: mUnit(eCSSUnit_URL)
{
mValue.mURL = aValue;
mValue.mURL->AddRef();
}
-nsCSSValue::nsCSSValue(mozilla::css::ImageValue* aValue)
- : mUnit(eCSSUnit_Image)
-{
- mValue.mImage = aValue;
- mValue.mImage->AddRef();
-}
-
nsCSSValue::nsCSSValue(mozilla::css::GridTemplateAreasValue* aValue)
: mUnit(eCSSUnit_GridTemplateAreas)
{
mValue.mGridTemplateAreas = aValue;
mValue.mGridTemplateAreas->AddRef();
}
nsCSSValue::nsCSSValue(SharedFontList* aValue)
@@ -160,20 +153,16 @@ nsCSSValue::nsCSSValue(const nsCSSValue&
else if (UnitHasArrayValue()) {
mValue.mArray = aCopy.mValue.mArray;
mValue.mArray->AddRef();
}
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_Pair == mUnit) {
mValue.mPair = aCopy.mValue.mPair;
mValue.mPair->AddRef();
}
else if (eCSSUnit_List == mUnit) {
mValue.mList = aCopy.mValue.mList;
mValue.mList->AddRef();
}
@@ -259,19 +248,16 @@ bool nsCSSValue::operator==(const nsCSSV
return mValue.mInt == aOther.mValue.mInt;
}
else if (UnitHasArrayValue()) {
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_Pair == mUnit) {
return *mValue.mPair == *aOther.mValue.mPair;
}
else if (eCSSUnit_List == mUnit) {
return nsCSSValueList::Equal(mValue.mList, aOther.mValue.mList);
}
else if (eCSSUnit_SharedList == mUnit) {
return *mValue.mSharedList == *aOther.mValue.mSharedList;
@@ -335,33 +321,16 @@ nsCSSValue::GetAngleValueInDegrees() con
case eCSSUnit_Turn: return angle * 360.0;
default:
MOZ_ASSERT(false, "unrecognized angular unit");
return 0.0;
}
}
-imgRequestProxy* nsCSSValue::GetImageValue(nsIDocument* aDocument) const
-{
- MOZ_ASSERT(mUnit == eCSSUnit_Image, "not an Image value");
- return mValue.mImage->mRequests.GetWeak(aDocument);
-}
-
-already_AddRefed<imgRequestProxy>
-nsCSSValue::GetPossiblyStaticImageValue(nsIDocument* aDocument,
- nsPresContext* aPresContext) const
-{
- imgRequestProxy* req = GetImageValue(aDocument);
- if (aPresContext->IsDynamic()) {
- return do_AddRef(req);
- }
- return nsContentUtils::GetStaticRequest(aDocument, req);
-}
-
nscoord nsCSSValue::GetPixelLength() const
{
MOZ_ASSERT(IsPixelLengthUnit(), "not a fixed length unit");
double scaleFactor;
switch (mUnit) {
case eCSSUnit_Pixel: return nsPresContext::CSSPixelsToAppUnits(mValue.mFloat);
case eCSSUnit_Pica: scaleFactor = 16.0; break;
@@ -391,18 +360,16 @@ nscoord nsCSSValue::GetPixelLength() con
void nsCSSValue::DoReset()
{
if (UnitHasStringValue()) {
mValue.mString->Release();
} 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_Pair == mUnit) {
DO_RELEASE(mPair);
} else if (eCSSUnit_List == mUnit) {
DO_RELEASE(mList);
} else if (eCSSUnit_SharedList == mUnit) {
DO_RELEASE(mSharedList);
} else if (eCSSUnit_PairList == mUnit) {
DO_RELEASE(mPairList);
@@ -486,24 +453,16 @@ void nsCSSValue::SetArrayValue(nsCSSValu
void nsCSSValue::SetURLValue(mozilla::css::URLValue* aValue)
{
Reset();
mUnit = eCSSUnit_URL;
mValue.mURL = aValue;
mValue.mURL->AddRef();
}
-void nsCSSValue::SetImageValue(mozilla::css::ImageValue* aValue)
-{
- Reset();
- mUnit = eCSSUnit_Image;
- mValue.mImage = aValue;
- mValue.mImage->AddRef();
-}
-
void nsCSSValue::SetGridTemplateAreas(mozilla::css::GridTemplateAreasValue* aValue)
{
Reset();
mUnit = eCSSUnit_GridTemplateAreas;
mValue.mGridTemplateAreas = aValue;
mValue.mGridTemplateAreas->AddRef();
}
@@ -899,21 +858,16 @@ nsCSSValue::SizeOfExcludingThis(mozilla:
case eCSSUnit_Calc_Divided:
break;
// URL
case eCSSUnit_URL:
n += mValue.mURL->SizeOfIncludingThis(aMallocSizeOf);
break;
- // Image
- case eCSSUnit_Image:
- n += mValue.mImage->SizeOfIncludingThis(aMallocSizeOf);
- break;
-
// Pair
case eCSSUnit_Pair:
n += mValue.mPair->SizeOfIncludingThis(aMallocSizeOf);
break;
// List
case eCSSUnit_List:
n += mValue.mList->SizeOfIncludingThis(aMallocSizeOf);
--- a/layout/style/nsCSSValue.h
+++ b/layout/style/nsCSSValue.h
@@ -374,17 +374,16 @@ enum nsCSSUnit {
// elements. a + b + c + d is grouped as ((a + b) + c) + d
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_GridTemplateAreas = 44, // (GridTemplateAreasValue*)
// for grid-template-areas
eCSSUnit_Pair = 50, // (nsCSSValuePair*) pair of values
eCSSUnit_List = 53, // (nsCSSValueList*) list of values
eCSSUnit_ListDep = 54, // (nsCSSValueList*) same as List
// but does not own the list
eCSSUnit_SharedList = 55, // (nsCSSValueSharedList*) same as list
@@ -613,20 +612,18 @@ public:
Array* GetArrayValue() const
{
MOZ_ASSERT(UnitHasArrayValue(), "not an array value");
return mValue.mArray;
}
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();
+ MOZ_ASSERT(mUnit == eCSSUnit_URL, "not a URL value");
+ return mValue.mURL->GetURI();
}
nsCSSValueSharedList* GetSharedListValue() const
{
MOZ_ASSERT(mUnit == eCSSUnit_SharedList, "not a shared list value");
return mValue.mSharedList;
}
@@ -670,22 +667,16 @@ public:
mozilla::css::URLValue* GetURLStructValue() const
{
// Not allowing this for Image values, because if the caller takes
// a ref to them they won't be able to delete them properly.
MOZ_ASSERT(mUnit == eCSSUnit_URL, "not a URL value");
return mValue.mURL;
}
- mozilla::css::ImageValue* GetImageStructValue() const
- {
- MOZ_ASSERT(mUnit == eCSSUnit_Image, "not an Image value");
- return mValue.mImage;
- }
-
mozilla::css::GridTemplateAreasValue* GetGridTemplateAreas() const
{
MOZ_ASSERT(mUnit == eCSSUnit_GridTemplateAreas,
"not a grid-template-areas value");
return mValue.mGridTemplateAreas;
}
// Not making this inline because that would force us to include
@@ -726,17 +717,16 @@ public:
void SetPercentValue(float aValue);
void SetFloatValue(float aValue, nsCSSUnit aUnit);
void SetStringValue(const nsString& aValue, nsCSSUnit aUnit);
void SetAtomIdentValue(already_AddRefed<nsAtom> aValue);
// converts the nscoord to pixels
void SetIntegerCoordValue(nscoord aCoord);
void SetArrayValue(nsCSSValue::Array* aArray, nsCSSUnit aUnit);
void SetURLValue(mozilla::css::URLValue* aURI);
- void SetImageValue(mozilla::css::ImageValue* aImage);
void SetGridTemplateAreas(mozilla::css::GridTemplateAreasValue* aValue);
void SetFontFamilyListValue(already_AddRefed<mozilla::SharedFontList> aFontListValue);
void SetFontStretch(mozilla::FontStretch aStretch);
void SetFontSlantStyle(mozilla::FontSlantStyle aStyle);
void SetFontWeight(mozilla::FontWeight aWeight);
void SetPairValue(const nsCSSValuePair* aPair);
void SetPairValue(const nsCSSValue& xValue, const nsCSSValue& yValue);
void SetSharedListValue(nsCSSValueSharedList* aList);
@@ -799,17 +789,16 @@ protected:
int32_t mInt;
float mFloat;
// Note: the capacity of the buffer may exceed the length of the string.
// If we're of a string type, mString is not null.
nsStringBuffer* MOZ_OWNING_REF mString;
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;
nsCSSValuePair_heap* MOZ_OWNING_REF mPair;
nsCSSValueList_heap* MOZ_OWNING_REF mList;
nsCSSValueList* mListDependent;
nsCSSValueSharedList* MOZ_OWNING_REF mSharedList;
nsCSSValuePairList_heap* MOZ_OWNING_REF mPairList;
nsCSSValuePairList* mPairListDependent;
mozilla::SharedFontList* MOZ_OWNING_REF mFontFamilyList;
--- a/layout/style/nsStyleStruct.cpp
+++ b/layout/style/nsStyleStruct.cpp
@@ -2174,21 +2174,22 @@ nsStyleImageRequest::Resolve(
MOZ_ASSERT(mModeFlags == aOldImageRequest->mModeFlags);
mDocGroup = aOldImageRequest->mDocGroup;
mImageValue = aOldImageRequest->mImageValue;
mRequestProxy = aOldImageRequest->mRequestProxy;
} else {
mDocGroup = doc->GetDocGroup();
mImageValue->Initialize(doc);
-
- nsCSSValue value;
- value.SetImageValue(mImageValue);
- mRequestProxy = value.GetPossiblyStaticImageValue(aPresContext->Document(),
- aPresContext);
+ imgRequestProxy* request = mImageValue->mRequests.GetWeak(doc);
+ if (aPresContext->IsDynamic()) {
+ mRequestProxy = request;
+ } else if (request) {
+ request->GetStaticRequest(doc, getter_AddRefs(mRequestProxy));
+ }
}
if (!mRequestProxy) {
// The URL resolution or image load failed.
return false;
}
if (mModeFlags & Mode::Track) {