--- a/devtools/shared/css/generated/properties-db.js
+++ b/devtools/shared/css/generated/properties-db.js
@@ -6699,22 +6699,78 @@ exports.CSS_PROPERTIES = {
"list-style-type",
"list-style-image",
"list-style-position"
],
"supports": [
11
],
"values": [
+ "arabic-indic",
+ "armenian",
+ "bengali",
+ "cambodian",
+ "circle",
+ "cjk-decimal",
+ "cjk-earthly-branch",
+ "cjk-heavenly-stem",
+ "cjk-ideographic",
+ "decimal",
+ "decimal-leading-zero",
+ "devanagari",
+ "disc",
+ "disclosure-closed",
+ "disclosure-open",
+ "ethiopic-numeric",
+ "georgian",
+ "gujarati",
+ "gurmukhi",
+ "hebrew",
+ "hiragana",
+ "hiragana-iroha",
"inherit",
"initial",
"inside",
- "none",
+ "japanese-formal",
+ "japanese-informal",
+ "kannada",
+ "katakana",
+ "katakana-iroha",
+ "khmer",
+ "korean-hangul-formal",
+ "korean-hanja-formal",
+ "korean-hanja-informal",
+ "lao",
+ "lower-alpha",
+ "lower-armenian",
+ "lower-greek",
+ "lower-latin",
+ "lower-roman",
+ "malayalam",
+ "mongolian",
+ "myanmar",
+ "none",
+ "oriya",
"outside",
+ "persian",
+ "simp-chinese-formal",
+ "simp-chinese-informal",
+ "square",
+ "symbols",
+ "tamil",
+ "telugu",
+ "thai",
+ "tibetan",
+ "trad-chinese-formal",
+ "trad-chinese-informal",
"unset",
+ "upper-alpha",
+ "upper-armenian",
+ "upper-latin",
+ "upper-roman",
"url"
]
},
"list-style-image": {
"isInherited": true,
"subproperties": [
"list-style-image"
],
@@ -6745,19 +6801,76 @@ exports.CSS_PROPERTIES = {
},
"list-style-type": {
"isInherited": true,
"subproperties": [
"list-style-type"
],
"supports": [],
"values": [
- "inherit",
- "initial",
- "unset"
+ "arabic-indic",
+ "armenian",
+ "bengali",
+ "cambodian",
+ "circle",
+ "cjk-decimal",
+ "cjk-earthly-branch",
+ "cjk-heavenly-stem",
+ "cjk-ideographic",
+ "decimal",
+ "decimal-leading-zero",
+ "devanagari",
+ "disc",
+ "disclosure-closed",
+ "disclosure-open",
+ "ethiopic-numeric",
+ "georgian",
+ "gujarati",
+ "gurmukhi",
+ "hebrew",
+ "hiragana",
+ "hiragana-iroha",
+ "inherit",
+ "initial",
+ "japanese-formal",
+ "japanese-informal",
+ "kannada",
+ "katakana",
+ "katakana-iroha",
+ "khmer",
+ "korean-hangul-formal",
+ "korean-hanja-formal",
+ "korean-hanja-informal",
+ "lao",
+ "lower-alpha",
+ "lower-armenian",
+ "lower-greek",
+ "lower-latin",
+ "lower-roman",
+ "malayalam",
+ "mongolian",
+ "myanmar",
+ "none",
+ "oriya",
+ "persian",
+ "simp-chinese-formal",
+ "simp-chinese-informal",
+ "square",
+ "symbols",
+ "tamil",
+ "telugu",
+ "thai",
+ "tibetan",
+ "trad-chinese-formal",
+ "trad-chinese-informal",
+ "unset",
+ "upper-alpha",
+ "upper-armenian",
+ "upper-latin",
+ "upper-roman"
]
},
"margin": {
"isInherited": false,
"subproperties": [
"margin-top",
"margin-right",
"margin-bottom",
--- a/layout/inspector/InspectorUtils.cpp
+++ b/layout/inspector/InspectorUtils.cpp
@@ -483,16 +483,23 @@ static void GetKeywordsForProperty(const
// More special cases.
if (aProperty == eCSSProperty_clip_path) {
InsertNoDuplicates(aArray, NS_LITERAL_STRING("circle"));
InsertNoDuplicates(aArray, NS_LITERAL_STRING("ellipse"));
InsertNoDuplicates(aArray, NS_LITERAL_STRING("inset"));
InsertNoDuplicates(aArray, NS_LITERAL_STRING("polygon"));
} else if (aProperty == eCSSProperty_clip) {
InsertNoDuplicates(aArray, NS_LITERAL_STRING("rect"));
+ } else if (aProperty == eCSSProperty_list_style_type) {
+ int32_t length;
+ const char* const* values = nsCSSProps::GetListStyleTypes(&length);
+ for (int32_t i = 0; i < length; ++i) {
+ InsertNoDuplicates(aArray, NS_ConvertASCIItoUTF16(values[i]));
+ }
+ InsertNoDuplicates(aArray, NS_LITERAL_STRING("symbols"));
}
}
static void GetColorsForProperty(const uint32_t aParserVariant,
nsTArray<nsString>& aArray)
{
if (aParserVariant & VARIANT_COLOR) {
// GetKeywordsForProperty and GetOtherValuesForProperty assume aArray is sorted,
--- a/layout/inspector/tests/test_bug877690.html
+++ b/layout/inspector/tests/test_bug877690.html
@@ -211,16 +211,34 @@ function do_test() {
// Regression test for bug 1255380.
var expected = [ "normal", "none", "url", "counter", "counters",
"attr", "open-quote", "close-quote", "no-open-quote",
"no-close-quote", "inherit", "initial", "unset",
"-moz-alt-content" ];
var values = InspectorUtils.getCSSValuesForProperty("content");
ok(testValues(values, expected), "property counter's values");
+ // Regression test for bug 1255369.
+ var expected = ["none", "decimal", "decimal-leading-zero", "arabic-indic", "armenian",
+ "upper-armenian", "lower-armenian", "bengali", "cambodian", "khmer",
+ "cjk-decimal", "devanagari", "georgian", "gujarati", "gurmukhi", "hebrew",
+ "kannada", "lao", "malayalam", "mongolian", "myanmar", "oriya", "persian",
+ "lower-roman", "upper-roman", "tamil", "telugu", "thai", "tibetan",
+ "lower-alpha", "lower-latin", "upper-alpha", "upper-latin",
+ "cjk-earthly-branch", "cjk-heavenly-stem", "lower-greek",
+ "hiragana", "hiragana-iroha", "katakana", "katakana-iroha",
+ "disc", "circle", "square", "disclosure-open", "disclosure-closed",
+ "japanese-informal", "japanese-formal",
+ "korean-hangul-formal", "korean-hanja-informal", "korean-hanja-formal",
+ "simp-chinese-informal", "simp-chinese-formal",
+ "trad-chinese-informal", "trad-chinese-formal", "cjk-ideographic",
+ "ethiopic-numeric", "symbols", "inherit", "initial", "unset" ];
+ var values = InspectorUtils.getCSSValuesForProperty("list-style-type");
+ ok(testValues(values, expected), "property list-style-type's values");
+
SimpleTest.finish();
}
SimpleTest.waitForExplicitFinish();
addLoadEvent(do_test);
</script>
</head>
--- a/layout/style/nsCSSProps.cpp
+++ b/layout/style/nsCSSProps.cpp
@@ -707,16 +707,23 @@ nsCSSProps::GetStringValue(nsCSSCounterD
if (gCounterDescTable) {
return gCounterDescTable->GetStringValue(int32_t(aCounterDesc));
} else {
static nsDependentCString sNullStr("");
return sNullStr;
}
}
+const char* const*
+nsCSSProps::GetListStyleTypes(int32_t *aLength)
+{
+ *aLength = ArrayLength(kCSSRawPredefinedCounterStyles);
+ return kCSSRawPredefinedCounterStyles;
+}
+
/***************************************************************************/
const KTableEntry nsCSSProps::kAnimationDirectionKTable[] = {
{ eCSSKeyword_normal, static_cast<uint32_t>(dom::PlaybackDirection::Normal) },
{ eCSSKeyword_reverse, static_cast<uint32_t>(dom::PlaybackDirection::Reverse) },
{ eCSSKeyword_alternate, static_cast<uint32_t>(dom::PlaybackDirection::Alternate) },
{ eCSSKeyword_alternate_reverse, static_cast<uint32_t>(dom::PlaybackDirection::Alternate_reverse) },
{ eCSSKeyword_UNKNOWN, -1 }
--- a/layout/style/nsCSSProps.h
+++ b/layout/style/nsCSSProps.h
@@ -675,16 +675,20 @@ public:
{
return true;
}
return false;
}
public:
+ // Return an array of possible list style types, and the length of
+ // the array.
+ static const char* const* GetListStyleTypes(int32_t *aLength);
+
// Storing the enabledstate_ value in an nsCSSPropertyID variable is a small hack
// to avoid needing a separate variable declaration for its real type
// (CSSEnabledState), which would then require using a block and
// therefore a pair of macros by consumers for the start and end of the loop.
#define CSSPROPS_FOR_SHORTHAND_SUBPROPERTIES(it_, prop_, enabledstate_) \
for (const nsCSSPropertyID *it_ = nsCSSProps::SubpropertyEntryFor(prop_), \
es_ = (nsCSSPropertyID)((enabledstate_) | \
CSSEnabledState(0)); \