Issue #2829 - Support revert-layer in CSS-wide parsing
This commit is contained in:
1 parent
ddf5d6256e
commit
edb82fd1c9
3 files changed
+22
-11
No files matched your search
@@ -481,6 +481,7 @@ CSS_KEY(repeat-x, repeat_x)
|
||||
CSS_KEY(repeat-y, repeat_y)
|
||||
CSS_KEY(reverse, reverse)
|
||||
CSS_KEY(revert, revert)
|
||||
CSS_KEY(revert-layer, revert_layer)
|
||||
CSS_KEY(ridge, ridge)
|
||||
CSS_KEY(right, right)
|
||||
CSS_KEY(rl, rl)
|
||||
@@ -814,4 +815,3 @@ CSS_KEY(text-before-edge, text_before_edge)
|
||||
CSS_KEY(use-script, use_script)
|
||||
CSS_KEY(-moz-crisp-edges, _moz_crisp_edges)
|
||||
CSS_KEY(space, space)
|
||||
|
||||
@@ -9122,7 +9122,8 @@ CSSParserImpl::ParseVariant(nsCSSValue& aValue,
|
||||
aValue.SetUnsetValue();
|
||||
return CSSParseResult::Ok;
|
||||
}
|
||||
else if (eCSSKeyword_revert == keyword) {
|
||||
else if (eCSSKeyword_revert == keyword ||
|
||||
eCSSKeyword_revert_layer == keyword) {
|
||||
aValue.SetRevertValue(mLevel);
|
||||
return CSSParseResult::Ok;
|
||||
}
|
||||
@@ -9330,7 +9331,8 @@ CSSParserImpl::ParseVariant(nsCSSValue& aValue,
|
||||
tk->mIdent.LowerCaseEqualsLiteral("initial") ||
|
||||
(tk->mIdent.LowerCaseEqualsLiteral("unset") &&
|
||||
nsLayoutUtils::UnsetValueEnabled()) ||
|
||||
tk->mIdent.LowerCaseEqualsLiteral("revert")))) {
|
||||
tk->mIdent.LowerCaseEqualsLiteral("revert") ||
|
||||
tk->mIdent.LowerCaseEqualsLiteral("revert-layer")))) {
|
||||
aValue.SetStringValue(tk->mIdent, eCSSUnit_Ident);
|
||||
return CSSParseResult::Ok;
|
||||
}
|
||||
@@ -9406,6 +9408,7 @@ CSSParserImpl::ParseCustomIdent(nsCSSValue& aValue,
|
||||
keyword == eCSSKeyword_initial ||
|
||||
keyword == eCSSKeyword_unset ||
|
||||
keyword == eCSSKeyword_revert ||
|
||||
keyword == eCSSKeyword_revert_layer ||
|
||||
keyword == eCSSKeyword_default ||
|
||||
(aPropertyKTable &&
|
||||
nsCSSProps::FindIndexOfKeyword(keyword, aPropertyKTable) >= 0)) {
|
||||
@@ -13905,7 +13908,8 @@ CSSParserImpl::ParseImageLayersItem(
|
||||
if (keyword == eCSSKeyword_inherit ||
|
||||
keyword == eCSSKeyword_initial ||
|
||||
keyword == eCSSKeyword_unset ||
|
||||
keyword == eCSSKeyword_revert) {
|
||||
keyword == eCSSKeyword_revert ||
|
||||
keyword == eCSSKeyword_revert_layer) {
|
||||
return false;
|
||||
} else if (keyword == eCSSKeyword_none) {
|
||||
if (haveImage)
|
||||
@@ -16655,6 +16659,7 @@ CSSParserImpl::ParseFamily(nsCSSValue& aValue)
|
||||
}
|
||||
break;
|
||||
case eCSSKeyword_revert:
|
||||
case eCSSKeyword_revert_layer:
|
||||
aValue.SetRevertValue(mLevel);
|
||||
return true;
|
||||
case eCSSKeyword__moz_use_system_font:
|
||||
@@ -16691,6 +16696,7 @@ CSSParserImpl::ParseFamily(nsCSSValue& aValue)
|
||||
case eCSSKeyword_initial:
|
||||
case eCSSKeyword_default:
|
||||
case eCSSKeyword_revert:
|
||||
case eCSSKeyword_revert_layer:
|
||||
case eCSSKeyword__moz_use_system_font:
|
||||
return false;
|
||||
case eCSSKeyword_unset:
|
||||
@@ -18564,14 +18570,15 @@ CSSParserImpl::ParseTransitionProperty()
|
||||
}
|
||||
if (cur->mValue.GetUnit() == eCSSUnit_Ident) {
|
||||
nsDependentString str(cur->mValue.GetStringBufferValue());
|
||||
// Exclude 'none', 'inherit', 'initial', 'unset', and 'revert'
|
||||
// according to the same rules as for 'counter-reset' in CSS 2.1.
|
||||
// Exclude CSS-wide keywords and 'none' according to the same rules
|
||||
// as for 'counter-reset' in CSS 2.1.
|
||||
if (str.LowerCaseEqualsLiteral("none") ||
|
||||
str.LowerCaseEqualsLiteral("inherit") ||
|
||||
str.LowerCaseEqualsLiteral("initial") ||
|
||||
(str.LowerCaseEqualsLiteral("unset") &&
|
||||
nsLayoutUtils::UnsetValueEnabled()) ||
|
||||
str.LowerCaseEqualsLiteral("revert")) {
|
||||
str.LowerCaseEqualsLiteral("revert") ||
|
||||
str.LowerCaseEqualsLiteral("revert-layer")) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -19484,8 +19491,7 @@ CSSParserImpl::ParseValueWithVariables(CSSVariableDeclarations::Type* aType,
|
||||
}
|
||||
}
|
||||
|
||||
// Look for 'initial', 'inherit', 'unset', or 'revert' as the first
|
||||
// non-white space token.
|
||||
// Look for CSS-wide keywords as the first non-white space token.
|
||||
CSSVariableDeclarations::Type type = CSSVariableDeclarations::eTokenStream;
|
||||
if (mToken.mType == eCSSToken_Ident) {
|
||||
if (mToken.mIdent.LowerCaseEqualsLiteral("initial")) {
|
||||
@@ -19494,7 +19500,8 @@ CSSParserImpl::ParseValueWithVariables(CSSVariableDeclarations::Type* aType,
|
||||
type = CSSVariableDeclarations::eInherit;
|
||||
} else if (mToken.mIdent.LowerCaseEqualsLiteral("unset")) {
|
||||
type = CSSVariableDeclarations::eUnset;
|
||||
} else if (mToken.mIdent.LowerCaseEqualsLiteral("revert")) {
|
||||
} else if (mToken.mIdent.LowerCaseEqualsLiteral("revert") ||
|
||||
mToken.mIdent.LowerCaseEqualsLiteral("revert-layer")) {
|
||||
type = CSSVariableDeclarations::eRevert;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,6 +37,7 @@ function runTest()
|
||||
"(unknown:) or (color: green)",
|
||||
"(unknown) or (color: green)",
|
||||
"(font: 16px serif)",
|
||||
"(all: revert-layer)",
|
||||
"(color:) or (color: green)",
|
||||
"not (@page)",
|
||||
"not ({ something @with [ balanced ] brackets })",
|
||||
@@ -69,6 +70,7 @@ function runTest()
|
||||
"not ({ something @with (unbalanced brackets })",
|
||||
"(color: green) or an-extension(that is [unbalanced)",
|
||||
"not(unknown: unknown)",
|
||||
"not (all: revert-layer)",
|
||||
"(color: green) or(color: blue)",
|
||||
"(color: green;)",
|
||||
"(font-family: 'Helvetica\n",
|
||||
@@ -87,7 +89,9 @@ function runTest()
|
||||
["font", "16px serif"],
|
||||
["font", "16px /* comment */ serif"],
|
||||
["font", "16px\nserif"],
|
||||
["color", "\\0067reen"]
|
||||
["color", "\\0067reen"],
|
||||
["all", "revert-layer"],
|
||||
["color", "revert-layer"]
|
||||
];
|
||||
|
||||
var failingDeclarations = [
|
||||
|
||||
Reference in new issue
Block a user