Bug 1308963 - Part 3. Set initial value of mask-position as (0, 0).
MozReview-Commit-ID: DN7q6FrGEMA
--- a/layout/style/nsCSSParser.cpp
+++ b/layout/style/nsCSSParser.cpp
@@ -12241,26 +12241,22 @@ CSSParserImpl::ParseImageLayersItem(
RefPtr<nsCSSValue::Array> positionXArr = nsCSSValue::Array::Create(2);
RefPtr<nsCSSValue::Array> positionYArr = nsCSSValue::Array::Create(2);
aState.mPositionX->mValue.SetArrayValue(positionXArr, eCSSUnit_Array);
aState.mPositionY->mValue.SetArrayValue(positionYArr, eCSSUnit_Array);
if (eCSSProperty_mask == aTable[nsStyleImageLayers::shorthand]) {
aState.mOrigin->mValue.SetIntValue(NS_STYLE_IMAGELAYER_ORIGIN_BORDER,
eCSSUnit_Enumerated);
-
- positionXArr->Item(1).SetPercentValue(0.5f);
- positionYArr->Item(1).SetPercentValue(0.5f);
} else {
aState.mOrigin->mValue.SetIntValue(NS_STYLE_IMAGELAYER_ORIGIN_PADDING,
eCSSUnit_Enumerated);
-
- positionXArr->Item(1).SetPercentValue(0.0f);
- positionYArr->Item(1).SetPercentValue(0.0f);
- }
+ }
+ positionXArr->Item(1).SetPercentValue(0.0f);
+ positionYArr->Item(1).SetPercentValue(0.0f);
aState.mSize->mXValue.SetAutoValue();
aState.mSize->mYValue.SetAutoValue();
aState.mComposite->mValue.SetIntValue(NS_STYLE_MASK_COMPOSITE_ADD,
eCSSUnit_Enumerated);
aState.mMode->mValue.SetIntValue(NS_STYLE_MASK_MODE_MATCH_SOURCE,
eCSSUnit_Enumerated);
bool haveColor = false,
--- a/layout/style/nsRuleNode.cpp
+++ b/layout/style/nsRuleNode.cpp
@@ -7303,19 +7303,17 @@ nsRuleNode::ComputeBackgroundData(void*
&nsStyleImageLayers::Layer::mOrigin,
uint8_t(NS_STYLE_IMAGELAYER_ORIGIN_PADDING),
parentBG->mImage.mOriginCount,
bg->mImage.mOriginCount, maxItemCount, rebuild,
conditions);
// background-position-x/y: enum, length, percent (flags), inherit [list]
Position::Coord initialPositionCoord;
- initialPositionCoord.mPercent =
- nsStyleImageLayers::GetInitialPositionForLayerType(
- nsStyleImageLayers::LayerType::Background);
+ initialPositionCoord.mPercent = 0.0f;
initialPositionCoord.mLength = 0;
initialPositionCoord.mHasPercent = true;
SetImageLayerPositionCoordList(
aContext, *aRuleData->ValueForBackgroundPositionX(),
bg->mImage.mLayers,
parentBG->mImage.mLayers,
&Position::mXPosition,
@@ -9986,19 +9984,17 @@ nsRuleNode::ComputeSVGResetData(void* aS
&nsStyleImageLayers::Layer::mOrigin,
uint8_t(NS_STYLE_IMAGELAYER_ORIGIN_BORDER),
parentSVGReset->mMask.mOriginCount,
svgReset->mMask.mOriginCount, maxItemCount, rebuild,
conditions);
// mask-position-x/y: enum, length, percent (flags), inherit [list]
Position::Coord initialPositionCoord;
- initialPositionCoord.mPercent =
- nsStyleImageLayers::GetInitialPositionForLayerType(
- nsStyleImageLayers::LayerType::Mask);
+ initialPositionCoord.mPercent = 0.0f;
initialPositionCoord.mLength = 0;
initialPositionCoord.mHasPercent = true;
SetImageLayerPositionCoordList(
aContext, *aRuleData->ValueForMaskPositionX(),
svgReset->mMask.mLayers,
parentSVGReset->mMask.mLayers,
&Position::mXPosition,
--- a/layout/style/nsStyleStruct.cpp
+++ b/layout/style/nsStyleStruct.cpp
@@ -2620,21 +2620,20 @@ nsStyleImageLayers::HasLayerWithImage()
}
return false;
}
bool
nsStyleImageLayers::IsInitialPositionForLayerType(Position aPosition, LayerType aType)
{
- float intialValue = nsStyleImageLayers::GetInitialPositionForLayerType(aType);
- if (aPosition.mXPosition.mPercent == intialValue &&
+ if (aPosition.mXPosition.mPercent == 0.0f &&
aPosition.mXPosition.mLength == 0 &&
aPosition.mXPosition.mHasPercent &&
- aPosition.mYPosition.mPercent == intialValue &&
+ aPosition.mYPosition.mPercent == 0.0f &&
aPosition.mYPosition.mLength == 0 &&
aPosition.mYPosition.mHasPercent) {
return true;
}
return false;
}
@@ -2780,19 +2779,17 @@ nsStyleImageLayers::Layer::~Layer()
{
}
void
nsStyleImageLayers::Layer::Initialize(nsStyleImageLayers::LayerType aType)
{
mRepeat.SetInitialValues();
- float initialPositionValue =
- nsStyleImageLayers::GetInitialPositionForLayerType(aType);
- mPosition.SetInitialPercentValues(initialPositionValue);
+ mPosition.SetInitialPercentValues(0.0f);
if (aType == LayerType::Background) {
mOrigin = NS_STYLE_IMAGELAYER_ORIGIN_PADDING;
} else {
MOZ_ASSERT(aType == LayerType::Mask, "unsupported layer type.");
mOrigin = NS_STYLE_IMAGELAYER_ORIGIN_BORDER;
}
}
--- a/layout/style/nsStyleStruct.h
+++ b/layout/style/nsStyleStruct.h
@@ -665,20 +665,16 @@ struct nsStyleImageLayers {
explicit nsStyleImageLayers(LayerType aType);
nsStyleImageLayers(const nsStyleImageLayers &aSource);
~nsStyleImageLayers() {
MOZ_COUNT_DTOR(nsStyleImageLayers);
}
static bool IsInitialPositionForLayerType(mozilla::Position aPosition, LayerType aType);
- static float GetInitialPositionForLayerType(LayerType aType) {
- return (aType == LayerType::Background) ? 0.0f : 0.5f;
- }
-
struct Size;
friend struct Size;
struct Size {
struct Dimension : public nsStyleCoord::CalcValue {
nscoord ResolveLengthPercentage(nscoord aAvailable) const {
double d = double(mPercent) * double(aAvailable) + double(mLength);
if (d < 0.0) {
return 0;