Bug 752187 - Part 4: Remove aIsRadial parameter. r=dbaron

This commit is contained in:
Masatoshi Kimura 2012-07-07 10:27:07 -04:00
parent 5a7d5c802c
commit 50849b0c34

View File

@ -572,10 +572,8 @@ protected:
bool ParseImageRect(nsCSSValue& aImage); bool ParseImageRect(nsCSSValue& aImage);
bool ParseElement(nsCSSValue& aValue); bool ParseElement(nsCSSValue& aValue);
bool ParseColorStop(nsCSSValueGradient* aGradient); bool ParseColorStop(nsCSSValueGradient* aGradient);
bool ParseLinearGradient(nsCSSValue& aValue, bool aIsRadial, bool ParseLinearGradient(nsCSSValue& aValue, bool aIsRepeating);
bool aIsRepeating); bool ParseRadialGradient(nsCSSValue& aValue, bool aIsRepeating);
bool ParseRadialGradient(nsCSSValue& aValue, bool aIsRadial,
bool aIsRepeating);
bool IsLegacyGradientLine(const nsCSSTokenType& aType, bool IsLegacyGradientLine(const nsCSSTokenType& aType,
const nsString& aId); const nsString& aId);
bool ParseGradientColorStops(nsCSSValueGradient* aGradient, bool ParseGradientColorStops(nsCSSValueGradient* aGradient,
@ -4516,16 +4514,16 @@ CSSParserImpl::ParseVariant(nsCSSValue& aValue,
eCSSToken_Function == tk->mType) { eCSSToken_Function == tk->mType) {
// a generated gradient // a generated gradient
if (tk->mIdent.LowerCaseEqualsLiteral("-moz-linear-gradient")) if (tk->mIdent.LowerCaseEqualsLiteral("-moz-linear-gradient"))
return ParseLinearGradient(aValue, false, false); return ParseLinearGradient(aValue, false);
if (tk->mIdent.LowerCaseEqualsLiteral("-moz-radial-gradient")) if (tk->mIdent.LowerCaseEqualsLiteral("-moz-radial-gradient"))
return ParseRadialGradient(aValue, true, false); return ParseRadialGradient(aValue, false);
if (tk->mIdent.LowerCaseEqualsLiteral("-moz-repeating-linear-gradient")) if (tk->mIdent.LowerCaseEqualsLiteral("-moz-repeating-linear-gradient"))
return ParseLinearGradient(aValue, false, true); return ParseLinearGradient(aValue, true);
if (tk->mIdent.LowerCaseEqualsLiteral("-moz-repeating-radial-gradient")) if (tk->mIdent.LowerCaseEqualsLiteral("-moz-repeating-radial-gradient"))
return ParseRadialGradient(aValue, true, true); return ParseRadialGradient(aValue, true);
} }
if ((aVariantMask & VARIANT_IMAGE_RECT) != 0 && if ((aVariantMask & VARIANT_IMAGE_RECT) != 0 &&
eCSSToken_Function == tk->mType && eCSSToken_Function == tk->mType &&
@ -4986,11 +4984,10 @@ CSSParserImpl::ParseColorStop(nsCSSValueGradient* aGradient)
// //
// <color-stops> : <color-stop> , <color-stop> [, <color-stop>]* // <color-stops> : <color-stop> , <color-stop> [, <color-stop>]*
bool bool
CSSParserImpl::ParseLinearGradient(nsCSSValue& aValue, bool aIsRadial, CSSParserImpl::ParseLinearGradient(nsCSSValue& aValue, bool aIsRepeating)
bool aIsRepeating)
{ {
nsRefPtr<nsCSSValueGradient> cssGradient nsRefPtr<nsCSSValueGradient> cssGradient
= new nsCSSValueGradient(aIsRadial, aIsRepeating); = new nsCSSValueGradient(false, aIsRepeating);
// <gradient-line> // <gradient-line>
if (!GetToken(true)) { if (!GetToken(true)) {
@ -5070,36 +5067,14 @@ CSSParserImpl::ParseLinearGradient(nsCSSValue& aValue, bool aIsRadial,
} }
} }
// radial gradients might have a <gradient-shape-size> here
if (aIsRadial) {
bool haveShape =
ParseVariant(cssGradient->mRadialShape, VARIANT_KEYWORD,
nsCSSProps::kRadialGradientShapeKTable);
bool haveSize =
ParseVariant(cssGradient->mRadialSize, VARIANT_KEYWORD,
nsCSSProps::kRadialGradientSizeKTable);
// could be in either order
if (!haveShape) {
haveShape =
ParseVariant(cssGradient->mRadialShape, VARIANT_KEYWORD,
nsCSSProps::kRadialGradientShapeKTable);
}
if ((haveShape || haveSize) && !ExpectSymbol(',', true)) {
SkipUntil(')');
return false;
}
}
return ParseGradientColorStops(cssGradient, aValue); return ParseGradientColorStops(cssGradient, aValue);
} }
bool bool
CSSParserImpl::ParseRadialGradient(nsCSSValue& aValue, bool aIsRadial, CSSParserImpl::ParseRadialGradient(nsCSSValue& aValue, bool aIsRepeating)
bool aIsRepeating)
{ {
nsRefPtr<nsCSSValueGradient> cssGradient nsRefPtr<nsCSSValueGradient> cssGradient
= new nsCSSValueGradient(aIsRadial, aIsRepeating); = new nsCSSValueGradient(true, aIsRepeating);
// <gradient-line> // <gradient-line>
if (!GetToken(true)) { if (!GetToken(true)) {
@ -5180,24 +5155,22 @@ CSSParserImpl::ParseRadialGradient(nsCSSValue& aValue, bool aIsRadial,
} }
// radial gradients might have a <gradient-shape-size> here // radial gradients might have a <gradient-shape-size> here
if (aIsRadial) { bool haveShape =
bool haveShape = ParseVariant(cssGradient->mRadialShape, VARIANT_KEYWORD,
nsCSSProps::kRadialGradientShapeKTable);
bool haveSize =
ParseVariant(cssGradient->mRadialSize, VARIANT_KEYWORD,
nsCSSProps::kRadialGradientSizeKTable);
// could be in either order
if (!haveShape) {
haveShape =
ParseVariant(cssGradient->mRadialShape, VARIANT_KEYWORD, ParseVariant(cssGradient->mRadialShape, VARIANT_KEYWORD,
nsCSSProps::kRadialGradientShapeKTable); nsCSSProps::kRadialGradientShapeKTable);
bool haveSize = }
ParseVariant(cssGradient->mRadialSize, VARIANT_KEYWORD, if ((haveShape || haveSize) && !ExpectSymbol(',', true)) {
nsCSSProps::kRadialGradientSizeKTable); SkipUntil(')');
return false;
// could be in either order
if (!haveShape) {
haveShape =
ParseVariant(cssGradient->mRadialShape, VARIANT_KEYWORD,
nsCSSProps::kRadialGradientShapeKTable);
}
if ((haveShape || haveSize) && !ExpectSymbol(',', true)) {
SkipUntil(')');
return false;
}
} }
return ParseGradientColorStops(cssGradient, aValue); return ParseGradientColorStops(cssGradient, aValue);