Bug 1381232 - (wip) serialize computed <number-percentage> values to <number> values for filter property.
MozReview-Commit-ID: Bk1vL8lp4ag
--- a/layout/style/nsComputedDOMStyle.cpp
+++ b/layout/style/nsComputedDOMStyle.cpp
@@ -6433,17 +6433,31 @@ nsComputedDOMStyle::CreatePrimitiveValue
RefPtr<CSSValue> shadowValue =
GetCSSShadowArray(aStyleFilter.GetDropShadow(),
StyleColor()->mColor,
false);
ErrorResult dummy;
shadowValue->GetCssText(argumentString, dummy);
} else {
// Filter function argument.
- SetCssTextToCoord(argumentString, aStyleFilter.GetFilterParameter());
+ if (aStyleFilter.GetType() == NS_STYLE_FILTER_BRIGHTNESS ||
+ aStyleFilter.GetType() == NS_STYLE_FILTER_CONTRAST ||
+ aStyleFilter.GetType() == NS_STYLE_FILTER_GRAYSCALE ||
+ aStyleFilter.GetType() == NS_STYLE_FILTER_INVERT ||
+ aStyleFilter.GetType() == NS_STYLE_FILTER_OPACITY ||
+ aStyleFilter.GetType() == NS_STYLE_FILTER_SATURATE ||
+ aStyleFilter.GetType() == NS_STYLE_FILTER_SEPIA) {
+ // Serialize <number-percentage> to number value.
+ RefPtr<nsROCSSPrimitiveValue> val = new nsROCSSPrimitiveValue;
+ val->SetNumber(
+ aStyleFilter.GetFilterParameter().GetFactorOrPercentValue());
+ val->GetCssText(argumentString);
+ } else {
+ SetCssTextToCoord(argumentString, aStyleFilter.GetFilterParameter());
+ }
}
filterFunctionString.Append(argumentString);
// Filter function closing parenthesis.
filterFunctionString.Append(')');
value->SetString(filterFunctionString);
return value.forget();