Bug 1255378 - fix getCSSValuesForProperty for box-shadow and text-shadow; r=heycam,jryans

This fixes InspectorUtils.getCSSValuesForProperty to return the
correct values for box-shadow and text-shadow.  It also takes a small
step toward the goal of getting rid of
InspectorUtils.cpp:PropertySupportsVariant, in favor of having all
variants listed in nsCSSPropList.h.

MozReview-Commit-ID: Dwh5s0IvYTX

--HG--
extra : rebase_source : eba2d3e7337af63c264bf3d596740f311c4aa017
This commit is contained in:
Tom Tromey 2018-01-17 10:34:34 -07:00
parent 2172ef0b6f
commit 6dba28ecb2
4 changed files with 55 additions and 21 deletions

View File

@ -2021,9 +2021,18 @@ exports.CSS_PROPERTIES = {
6
],
"values": [
"COLOR",
"calc",
"currentColor",
"hsl",
"hsla",
"inherit",
"initial",
"inset",
"none",
"rgb",
"rgba",
"transparent",
"unset"
]
},
@ -4869,9 +4878,18 @@ exports.CSS_PROPERTIES = {
6
],
"values": [
"COLOR",
"calc",
"currentColor",
"hsl",
"hsla",
"inherit",
"initial",
"inset",
"none",
"rgb",
"rgba",
"transparent",
"unset"
]
},
@ -8838,8 +8856,17 @@ exports.CSS_PROPERTIES = {
6
],
"values": [
"COLOR",
"calc",
"currentColor",
"hsl",
"hsla",
"inherit",
"initial",
"none",
"rgb",
"rgba",
"transparent",
"unset"
]
},

View File

@ -611,26 +611,27 @@ PropertySupportsVariant(nsCSSPropertyID aPropertyID, uint32_t aVariant)
return false;
}
// Properties that are parsed by functions must have their
// attributes hand-maintained here.
uint32_t supported = nsCSSProps::ParserVariant(aPropertyID);
// For the time being, properties that are parsed by functions must
// have some of their attributes hand-maintained here.
if (nsCSSProps::PropHasFlags(aPropertyID, CSS_PROPERTY_VALUE_PARSER_FUNCTION) ||
nsCSSProps::PropertyParseType(aPropertyID) == CSS_PROPERTY_PARSE_FUNCTION) {
// These must all be special-cased.
uint32_t supported;
switch (aPropertyID) {
case eCSSProperty_border_image_slice:
case eCSSProperty_grid_template:
case eCSSProperty_grid:
supported = VARIANT_PN;
supported |= VARIANT_PN;
break;
case eCSSProperty_border_image_outset:
supported = VARIANT_LN;
supported |= VARIANT_LN;
break;
case eCSSProperty_border_image_width:
case eCSSProperty_stroke_dasharray:
supported = VARIANT_LPN;
supported |= VARIANT_LPN;
break;
case eCSSProperty_border_top_left_radius:
@ -659,39 +660,39 @@ PropertySupportsVariant(nsCSSPropertyID aPropertyID, uint32_t aVariant)
case eCSSProperty__moz_outline_radius_bottomleft:
case eCSSProperty__moz_outline_radius_bottomright:
case eCSSProperty__moz_window_transform_origin:
supported = VARIANT_LP;
supported |= VARIANT_LP;
break;
case eCSSProperty_text_shadow:
case eCSSProperty_box_shadow:
supported = VARIANT_LENGTH | VARIANT_COLOR;
supported |= VARIANT_LENGTH | VARIANT_COLOR;
break;
case eCSSProperty_border_spacing:
supported = VARIANT_LENGTH;
supported |= VARIANT_LENGTH;
break;
case eCSSProperty_content:
case eCSSProperty_cursor:
case eCSSProperty_clip_path:
supported = VARIANT_URL;
supported |= VARIANT_URL;
break;
case eCSSProperty_shape_outside:
supported = VARIANT_IMAGE;
supported |= VARIANT_IMAGE;
break;
case eCSSProperty_fill:
case eCSSProperty_stroke:
supported = VARIANT_COLOR | VARIANT_URL;
supported |= VARIANT_COLOR | VARIANT_URL;
break;
case eCSSProperty_image_orientation:
supported = VARIANT_ANGLE;
supported |= VARIANT_ANGLE;
break;
case eCSSProperty_filter:
supported = VARIANT_URL;
supported |= VARIANT_URL;
break;
case eCSSProperty_grid_column_start:
@ -700,18 +701,15 @@ PropertySupportsVariant(nsCSSPropertyID aPropertyID, uint32_t aVariant)
case eCSSProperty_grid_row_end:
case eCSSProperty_font_weight:
case eCSSProperty_initial_letter:
supported = VARIANT_NUMBER;
supported |= VARIANT_NUMBER;
break;
default:
supported = 0;
break;
}
return (supported & aVariant) != 0;
}
return (nsCSSProps::ParserVariant(aPropertyID) & aVariant) != 0;
return (supported & aVariant) != 0;
}
bool

View File

@ -187,6 +187,15 @@ function do_test() {
ok(testValues(values, expected), "property " + prop + "'s values");
}
// Regression test for bug 1255378.
var expected = [ "inherit", "initial", "unset", "none", "calc", ...allColors ];
var values = InspectorUtils.getCSSValuesForProperty("text-shadow");
ok(testValues(values, expected), "property text-shadow's values");
var expected = [ "inherit", "initial", "unset", "inset", "none", "calc", ...allColors ];
var values = InspectorUtils.getCSSValuesForProperty("box-shadow");
ok(testValues(values, expected), "property box-shadow's values");
SimpleTest.finish();
}

View File

@ -1310,7 +1310,7 @@ CSS_PROP_EFFECTS(
CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
// NOTE: some components must be nonnegative
"",
0,
VARIANT_COLOR | VARIANT_LENGTH | VARIANT_CALC | VARIANT_INHERIT | VARIANT_NONE,
kBoxShadowTypeKTable,
offsetof(nsStyleEffects, mBoxShadow),
eStyleAnimType_Shadow)
@ -4130,7 +4130,7 @@ CSS_PROP_TEXT(
CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
// NOTE: some components must be nonnegative
"",
0,
VARIANT_COLOR | VARIANT_LENGTH | VARIANT_CALC | VARIANT_INHERIT | VARIANT_NONE,
nullptr,
offsetof(nsStyleText, mTextShadow),
eStyleAnimType_Shadow)