mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1164953 - Update CSS grid <line-names> to use brackets instead of parens. r=dholbert
This commit is contained in:
parent
5c6200e6f8
commit
3b888599d2
@ -46,13 +46,13 @@ span {
|
||||
|
||||
.test3 {
|
||||
grid-template-areas:'. a .';
|
||||
grid-template-columns: (a-start) 20px 20px (a-start-start) 20px (a-start-end);
|
||||
grid-template-columns: [a-start] 20px 20px [a-start-start] 20px [a-start-end];
|
||||
}
|
||||
.test3 span { grid-column: a-start / 8; }
|
||||
|
||||
.test4, .test5 {
|
||||
grid-template-areas:'. . . a';
|
||||
grid-template-columns: 20px (a-start) 20px (a-start) 20px (a-end) 20px ;
|
||||
grid-template-columns: 20px [a-start] 20px [a-start] 20px [a-end] 20px ;
|
||||
}
|
||||
.test4 span { grid-column: a-start 2 / 8; }
|
||||
.test5 span { grid-column: a / 8; }
|
||||
|
@ -24,7 +24,7 @@ span {
|
||||
|
||||
.grid {
|
||||
display: grid;
|
||||
grid-template-columns: (A) 20px (A) 20px;
|
||||
grid-template-columns: [A] 20px [A] 20px;
|
||||
grid-template-rows: 20px 20px;
|
||||
grid-auto-columns: 20px;
|
||||
}
|
||||
|
@ -14,7 +14,7 @@ body,html { color:black; background:white; font-size:16px; padding:0; margin:0;
|
||||
|
||||
.grid {
|
||||
display: grid;
|
||||
grid-template-columns: 20px 20px (A) 20px;
|
||||
grid-template-columns: 20px 20px [A] 20px;
|
||||
grid-template-rows: 20px;
|
||||
grid-auto-columns: 20px;
|
||||
grid-auto-rows: 20px;
|
||||
|
@ -1040,10 +1040,10 @@ Declaration::GetValue(nsCSSProperty aProperty, nsAString& aValue,
|
||||
|
||||
} else if (unit == eCSSUnit_List || unit == eCSSUnit_ListDep) {
|
||||
// Non-empty <line-names>
|
||||
aValue.Append('(');
|
||||
aValue.Append('[');
|
||||
rowsItem->mValue.AppendToString(eCSSProperty_grid_template_rows,
|
||||
aValue, aSerialization);
|
||||
aValue.Append(')');
|
||||
aValue.Append(']');
|
||||
|
||||
} else {
|
||||
nsStyleUtil::AppendEscapedCSSString(areas->mTemplates[row++], aValue);
|
||||
|
@ -839,7 +839,7 @@ protected:
|
||||
// to indicate that we parsed the empty list,
|
||||
// or set it to a eCSSUnit_List of eCSSUnit_Ident.
|
||||
//
|
||||
// To parse an optional <line-names> (ie. if not finding an open paren
|
||||
// To parse an optional <line-names> (ie. if not finding an open bracket
|
||||
// is considered the same as an empty list),
|
||||
// treat CSSParseResult::NotFound the same as CSSParseResult::Ok.
|
||||
//
|
||||
@ -8005,10 +8005,10 @@ CSSParserImpl::ParseGridAutoFlow()
|
||||
CSSParseResult
|
||||
CSSParserImpl::ParseGridLineNames(nsCSSValue& aValue)
|
||||
{
|
||||
if (!ExpectSymbol('(', true)) {
|
||||
if (!ExpectSymbol('[', true)) {
|
||||
return CSSParseResult::NotFound;
|
||||
}
|
||||
if (!GetToken(true) || mToken.IsSymbol(')')) {
|
||||
if (!GetToken(true) || mToken.IsSymbol(']')) {
|
||||
return CSSParseResult::Ok;
|
||||
}
|
||||
// 'return' so far leaves aValue untouched, to represent an empty list.
|
||||
@ -8035,10 +8035,10 @@ CSSParserImpl::ParseGridLineNames(nsCSSValue& aValue)
|
||||
if (!(eCSSToken_Ident == mToken.mType &&
|
||||
ParseCustomIdent(item->mValue, mToken.mIdent))) {
|
||||
UngetToken();
|
||||
SkipUntil(')');
|
||||
SkipUntil(']');
|
||||
return CSSParseResult::Error;
|
||||
}
|
||||
if (!GetToken(true) || mToken.IsSymbol(')')) {
|
||||
if (!GetToken(true) || mToken.IsSymbol(']')) {
|
||||
return CSSParseResult::Ok;
|
||||
}
|
||||
item->mNext = new nsCSSValueList;
|
||||
|
@ -1944,7 +1944,7 @@ AppendGridTemplateToString(const nsCSSValueList* val,
|
||||
} else if (unit == eCSSUnit_Null) {
|
||||
// Empty or omitted <line-names>.
|
||||
if (isSubgrid) {
|
||||
aResult.AppendLiteral("()");
|
||||
aResult.AppendLiteral("[]");
|
||||
} else {
|
||||
// Serializes to nothing.
|
||||
addSpaceSeparator = false; // Avoid a double space.
|
||||
@ -1952,10 +1952,10 @@ AppendGridTemplateToString(const nsCSSValueList* val,
|
||||
|
||||
} else if (unit == eCSSUnit_List || unit == eCSSUnit_ListDep) {
|
||||
// Non-empty <line-names>
|
||||
aResult.Append('(');
|
||||
aResult.Append('[');
|
||||
AppendValueListToString(val->mValue.GetListValue(), aProperty,
|
||||
aResult, aSerialization);
|
||||
aResult.Append(')');
|
||||
aResult.Append(']');
|
||||
|
||||
} else {
|
||||
// <track-size>
|
||||
|
@ -2272,7 +2272,7 @@ nsComputedDOMStyle::GetGridLineNames(const nsTArray<nsString>& aLineNames)
|
||||
nsROCSSPrimitiveValue *val = new nsROCSSPrimitiveValue;
|
||||
nsAutoString lineNamesString;
|
||||
uint32_t i_end = aLineNames.Length();
|
||||
lineNamesString.Assign('(');
|
||||
lineNamesString.Assign('[');
|
||||
if (i_end > 0) {
|
||||
for (uint32_t i = 0;;) {
|
||||
nsStyleUtil::AppendEscapedCSSIdent(aLineNames[i], lineNamesString);
|
||||
@ -2282,7 +2282,7 @@ nsComputedDOMStyle::GetGridLineNames(const nsTArray<nsString>& aLineNames)
|
||||
lineNamesString.Append(' ');
|
||||
}
|
||||
}
|
||||
lineNamesString.Append(')');
|
||||
lineNamesString.Append(']');
|
||||
val->SetString(lineNamesString);
|
||||
return val;
|
||||
}
|
||||
|
@ -5790,32 +5790,32 @@ if (SpecialPowers.getBoolPref("layout.css.grid.enabled")) {
|
||||
"auto",
|
||||
"40px",
|
||||
"2.5fr",
|
||||
"(normal) 40px () auto ( ) 12%",
|
||||
"(foo) 40px min-content ( bar ) calc(20px + 10%) max-content",
|
||||
"[normal] 40px [] auto [ ] 12%",
|
||||
"[foo] 40px min-content [ bar ] calc(20px + 10%) max-content",
|
||||
"40px min-content calc(20px + 10%) max-content",
|
||||
"minmax(min-content, auto)",
|
||||
"minmax(auto, max-content)",
|
||||
"m\\69nmax(20px, 4Fr)",
|
||||
"40px MinMax(min-content, calc(20px + 10%)) max-content",
|
||||
"40px 2em",
|
||||
"() 40px (-foo) 2em (bar baz This\ is\ one\ ident)",
|
||||
// TODO bug 978478: "(a) repeat(3, (b) 20px (c) 40px (d)) (e)",
|
||||
"[] 40px [-foo] 2em [bar baz This\ is\ one\ ident]",
|
||||
// TODO bug 978478: "[a] repeat(3, [b] 20px [c] 40px [d]) [e]",
|
||||
"repeat(1, 20px)",
|
||||
"repeat(1, (a) 20px)",
|
||||
"(a) Repeat(4, (a) 20px () auto (b c)) (d)",
|
||||
"(a) 2.5fr Repeat(4, (a) 20px () auto (b c)) (d)",
|
||||
"(a) 2.5fr (z) Repeat(4, (a) 20px () auto (b c)) (d)",
|
||||
"(a) 2.5fr (z) Repeat(4, (a) 20px () auto) (d)",
|
||||
"(a) 2.5fr (z) Repeat(4, 20px (b c) auto (b c)) (d)",
|
||||
"(a) 2.5fr (z) Repeat(4, 20px auto) (d)",
|
||||
"repeat(1, [a] 20px)",
|
||||
"[a] Repeat(4, [a] 20px [] auto [b c]) [d]",
|
||||
"[a] 2.5fr Repeat(4, [a] 20px [] auto [b c]) [d]",
|
||||
"[a] 2.5fr [z] Repeat(4, [a] 20px [] auto [b c]) [d]",
|
||||
"[a] 2.5fr [z] Repeat(4, [a] 20px [] auto) [d]",
|
||||
"[a] 2.5fr [z] Repeat(4, 20px [b c] auto [b c]) [d]",
|
||||
"[a] 2.5fr [z] Repeat(4, 20px auto) [d]",
|
||||
|
||||
// See https://bugzilla.mozilla.org/show_bug.cgi?id=981300
|
||||
"(none auto subgrid min-content max-content foo) 40px",
|
||||
"[none auto subgrid min-content max-content foo] 40px",
|
||||
|
||||
"subgrid",
|
||||
"subgrid () (foo bar)",
|
||||
"subgrid repeat(1, ())",
|
||||
"subgrid Repeat(4, (a) (b c) () (d))",
|
||||
"subgrid [] [foo bar]",
|
||||
"subgrid repeat(1, [])",
|
||||
"subgrid Repeat(4, [a] [b c] [] [d])",
|
||||
],
|
||||
invalid_values: [
|
||||
"",
|
||||
@ -5833,7 +5833,7 @@ if (SpecialPowers.getBoolPref("layout.css.grid.enabled")) {
|
||||
"(5th) 40px",
|
||||
"(foo() bar) 40px",
|
||||
"(foo)) 40px",
|
||||
"[foo] 40px",
|
||||
"(foo) 40px",
|
||||
"(foo) (bar) 40px",
|
||||
"40px (foo) (bar)",
|
||||
"minmax()",
|
||||
@ -5917,32 +5917,32 @@ if (SpecialPowers.getBoolPref("layout.css.grid.enabled")) {
|
||||
"subgrid",
|
||||
// <'grid-template-columns'> / <'grid-template-rows'>
|
||||
"40px / 100px",
|
||||
"(foo) 40px (bar) / (baz) 100px (fizz)",
|
||||
"[foo] 40px [bar] / [baz] 100px [fizz]",
|
||||
" none/100px",
|
||||
"40px/none",
|
||||
"subgrid/40px 20px",
|
||||
"subgrid (foo) () (bar baz) / 40px 20px",
|
||||
"subgrid [foo] [] [bar baz] / 40px 20px",
|
||||
"40px 20px/subgrid",
|
||||
"40px 20px/subgrid (foo) () repeat(3, (a) (b)) (bar baz)",
|
||||
"40px 20px/subgrid [foo] [] repeat(3, [a] [b]) [bar baz]",
|
||||
"subgrid/subgrid",
|
||||
"subgrid (foo) () (bar baz)/subgrid (foo) () (bar baz)",
|
||||
"subgrid [foo] [] [bar baz]/subgrid [foo] [] [bar baz]",
|
||||
// [ <track-list> / ]? [ <line-names>? <string> <track-size>? <line-names>? ]+
|
||||
"'fizz'",
|
||||
"(bar) 'fizz'",
|
||||
"(foo) 40px / 'fizz'",
|
||||
"(foo) 40px / (bar) 'fizz'",
|
||||
"(foo) 40px / 'fizz' 100px",
|
||||
"(foo) 40px / (bar) 'fizz' 100px",
|
||||
"(foo) 40px / (bar) 'fizz' 100px (buzz)",
|
||||
"(foo) 40px / (bar) 'fizz' 100px (buzz) \n (a) '.' 200px (b)",
|
||||
"[bar] 'fizz'",
|
||||
"[foo] 40px / 'fizz'",
|
||||
"[foo] 40px / [bar] 'fizz'",
|
||||
"[foo] 40px / 'fizz' 100px",
|
||||
"[foo] 40px / [bar] 'fizz' 100px",
|
||||
"[foo] 40px / [bar] 'fizz' 100px [buzz]",
|
||||
"[foo] 40px / [bar] 'fizz' 100px [buzz] \n [a] '.' 200px [b]",
|
||||
],
|
||||
invalid_values: [
|
||||
"subgrid ()",
|
||||
"subgrid () / 'fizz'",
|
||||
"subgrid []",
|
||||
"subgrid [] / 'fizz'",
|
||||
"subgrid / 'fizz'",
|
||||
"(foo) (bar) 40px / 100px",
|
||||
"40px / (fizz) (buzz) 100px",
|
||||
"40px / (fizz) (buzz) 'foo'",
|
||||
"[foo] [bar] 40px / 100px",
|
||||
"40px / [fizz] [buzz] 100px",
|
||||
"40px / [fizz] [buzz] 'foo'",
|
||||
"none / 'foo'"
|
||||
]
|
||||
};
|
||||
|
@ -34,9 +34,9 @@ var grid_template_test_cases = [
|
||||
gridTemplateRows: "100px",
|
||||
},
|
||||
{
|
||||
specified: "(foo) 40px (bar) / (baz) 100px (fizz)",
|
||||
gridTemplateColumns: "(foo) 40px (bar)",
|
||||
gridTemplateRows: "(baz) 100px (fizz)",
|
||||
specified: "[foo] 40px [bar] / [baz] 100px [fizz]",
|
||||
gridTemplateColumns: "[foo] 40px [bar]",
|
||||
gridTemplateRows: "[baz] 100px [fizz]",
|
||||
},
|
||||
{
|
||||
specified: " none/100px",
|
||||
@ -54,54 +54,54 @@ var grid_template_test_cases = [
|
||||
gridTemplateRows: "20px",
|
||||
},
|
||||
{
|
||||
specified: "40px/(a)repeat(1, 20px)",
|
||||
specified: "40px/[a]repeat(1, 20px)",
|
||||
gridTemplateColumns: "40px",
|
||||
gridTemplateRows: "(a) 20px",
|
||||
gridTemplateRows: "[a] 20px",
|
||||
},
|
||||
{
|
||||
specified: "40px/repeat(1, (a) 20px)",
|
||||
specified: "40px/repeat(1, [a] 20px)",
|
||||
gridTemplateColumns: "40px",
|
||||
gridTemplateRows: "(a) 20px",
|
||||
gridTemplateRows: "[a] 20px",
|
||||
},
|
||||
{
|
||||
specified: "40px/(a)repeat(2, (b)20px)",
|
||||
specified: "40px/[a]repeat(2, [b]20px)",
|
||||
gridTemplateColumns: "40px",
|
||||
gridTemplateRows: "(a b) 20px (b) 20px",
|
||||
gridTemplateRows: "[a b] 20px [b] 20px",
|
||||
},
|
||||
{
|
||||
specified: "40px/(a)repeat(2, 20px)",
|
||||
specified: "40px/[a]repeat(2, 20px)",
|
||||
gridTemplateColumns: "40px",
|
||||
gridTemplateRows: "(a) 20px 20px",
|
||||
gridTemplateRows: "[a] 20px 20px",
|
||||
},
|
||||
{
|
||||
specified: "40px/repeat(2, (a) 20px)",
|
||||
specified: "40px/repeat(2, [a] 20px)",
|
||||
gridTemplateColumns: "40px",
|
||||
gridTemplateRows: "(a) 20px (a) 20px",
|
||||
gridTemplateRows: "[a] 20px [a] 20px",
|
||||
},
|
||||
{
|
||||
specified: "40px/(a)repeat(2, (b)20px)",
|
||||
specified: "40px/[a]repeat(2, [b]20px)",
|
||||
gridTemplateColumns: "40px",
|
||||
gridTemplateRows: "(a b) 20px (b) 20px",
|
||||
gridTemplateRows: "[a b] 20px [b] 20px",
|
||||
},
|
||||
{
|
||||
specified: "40px/repeat(2, 20px(a))",
|
||||
specified: "40px/repeat(2, 20px[a])",
|
||||
gridTemplateColumns: "40px",
|
||||
gridTemplateRows: "20px (a) 20px (a)",
|
||||
gridTemplateRows: "20px [a] 20px [a]",
|
||||
},
|
||||
{
|
||||
specified: "40px/repeat(2, 20px(a)) (b)",
|
||||
specified: "40px/repeat(2, 20px[a]) [b]",
|
||||
gridTemplateColumns: "40px",
|
||||
gridTemplateRows: "20px (a) 20px (a b)",
|
||||
gridTemplateRows: "20px [a] 20px [a b]",
|
||||
},
|
||||
{
|
||||
specified: "40px/repeat(2, (a) 20px(b)) (c)",
|
||||
specified: "40px/repeat(2, [a] 20px[b]) [c]",
|
||||
gridTemplateColumns: "40px",
|
||||
gridTemplateRows: "(a) 20px (b a) 20px (b c)",
|
||||
gridTemplateRows: "[a] 20px [b a] 20px [b c]",
|
||||
},
|
||||
{
|
||||
specified: "40px/(a) repeat(3, (b c) 20px (d) 100px (e f)) (g)",
|
||||
specified: "40px/[a] repeat(3, [b c] 20px [d] 100px [e f]) [g]",
|
||||
gridTemplateColumns: "40px",
|
||||
gridTemplateRows: "(a b c) 20px (d) 100px (e f b c) 20px (d) 100px (e f b c) 20px (d) 100px (e f g)",
|
||||
gridTemplateRows: "[a b c] 20px [d] 100px [e f b c] 20px [d] 100px [e f b c] 20px [d] 100px [e f g]",
|
||||
},
|
||||
{
|
||||
specified: "'fizz'",
|
||||
@ -109,33 +109,33 @@ var grid_template_test_cases = [
|
||||
gridTemplateRows: "auto",
|
||||
},
|
||||
{
|
||||
specified: "(bar) 'fizz'",
|
||||
specified: "[bar] 'fizz'",
|
||||
gridTemplateAreas: "\"fizz\"",
|
||||
gridTemplateRows: "(bar) auto",
|
||||
gridTemplateRows: "[bar] auto",
|
||||
},
|
||||
{
|
||||
specified: "(foo) 40px / 'fizz'",
|
||||
specified: "[foo] 40px / 'fizz'",
|
||||
gridTemplateAreas: "\"fizz\"",
|
||||
gridTemplateColumns: "(foo) 40px",
|
||||
gridTemplateColumns: "[foo] 40px",
|
||||
gridTemplateRows: "auto",
|
||||
},
|
||||
{
|
||||
specified: "(foo) 40px / (bar) 'fizz'",
|
||||
specified: "[foo] 40px / [bar] 'fizz'",
|
||||
gridTemplateAreas: "\"fizz\"",
|
||||
gridTemplateColumns: "(foo) 40px",
|
||||
gridTemplateRows: "(bar) auto",
|
||||
gridTemplateColumns: "[foo] 40px",
|
||||
gridTemplateRows: "[bar] auto",
|
||||
},
|
||||
{
|
||||
specified: "(foo) 40px / 'fizz' 100px",
|
||||
specified: "[foo] 40px / 'fizz' 100px",
|
||||
gridTemplateAreas: "\"fizz\"",
|
||||
gridTemplateColumns: "(foo) 40px",
|
||||
gridTemplateColumns: "[foo] 40px",
|
||||
gridTemplateRows: "100px",
|
||||
},
|
||||
{
|
||||
specified: "(foo) 40px / (bar) 'fizz' 100px (buzz) \n (a) '.' 200px (b)",
|
||||
specified: "[foo] 40px / [bar] 'fizz' 100px [buzz] \n [a] '.' 200px [b]",
|
||||
gridTemplateAreas: "\"fizz\" \".\"",
|
||||
gridTemplateColumns: "(foo) 40px",
|
||||
gridTemplateRows: "(bar) 100px (buzz a) 200px (b)",
|
||||
gridTemplateColumns: "[foo] 40px",
|
||||
gridTemplateRows: "[bar] 100px [buzz a] 200px [b]",
|
||||
},
|
||||
{
|
||||
specified: "subgrid",
|
||||
@ -148,28 +148,28 @@ var grid_template_test_cases = [
|
||||
gridTemplateRows: "subgrid",
|
||||
},
|
||||
{
|
||||
specified: "subgrid / subgrid (foo)",
|
||||
specified: "subgrid / subgrid [foo]",
|
||||
gridTemplateColumns: "subgrid",
|
||||
gridTemplateRows: "subgrid (foo)",
|
||||
gridTemplateRows: "subgrid [foo]",
|
||||
},
|
||||
{
|
||||
specified: "subgrid / subgrid (foo) repeat(3, () (a b) (c))",
|
||||
specified: "subgrid / subgrid [foo] repeat(3, [] [a b] [c])",
|
||||
gridTemplateColumns: "subgrid",
|
||||
gridTemplateRows: "subgrid (foo) () (a b) (c) () (a b) (c) () (a b) (c)",
|
||||
gridTemplateRows: "subgrid [foo] [] [a b] [c] [] [a b] [c] [] [a b] [c]",
|
||||
},
|
||||
{
|
||||
// https://bugzilla.mozilla.org/show_bug.cgi?id=978478#c1
|
||||
// The number of repetitions is clamped to
|
||||
// #define GRID_TEMPLATE_MAX_REPETITIONS 10000
|
||||
specified: "subgrid / subgrid (foo) repeat(999999999, (a))",
|
||||
specified: "subgrid / subgrid [foo] repeat(999999999, [a])",
|
||||
gridTemplateColumns: "subgrid",
|
||||
// Array(n + 1).join(s) is a hack for the non-standard s.repeat(n)
|
||||
gridTemplateRows: "subgrid (foo)" + Array(10000 + 1).join(" (a)"),
|
||||
gridTemplateRows: "subgrid [foo]" + Array(10000 + 1).join(" [a]"),
|
||||
},
|
||||
{
|
||||
specified: "subgrid () (foo)/ subgrid (bar",
|
||||
gridTemplateColumns: "subgrid () (foo)",
|
||||
gridTemplateRows: "subgrid (bar)",
|
||||
specified: "subgrid [] [foo]/ subgrid [bar",
|
||||
gridTemplateColumns: "subgrid [] [foo]",
|
||||
gridTemplateRows: "subgrid [bar]",
|
||||
},
|
||||
];
|
||||
|
||||
|
@ -38,9 +38,9 @@ var grid_template_test_cases = [
|
||||
shorthand: "40px / subgrid",
|
||||
},
|
||||
{
|
||||
gridTemplateColumns: "(foo) 40px (bar)",
|
||||
gridTemplateRows: "(baz) 100px (fizz)",
|
||||
shorthand: "(foo) 40px (bar) / (baz) 100px (fizz)",
|
||||
gridTemplateColumns: "[foo] 40px [bar]",
|
||||
gridTemplateRows: "[baz] 100px [fizz]",
|
||||
shorthand: "[foo] 40px [bar] / [baz] 100px [fizz]",
|
||||
},
|
||||
{
|
||||
gridTemplateAreas: "\"a\"",
|
||||
@ -49,8 +49,8 @@ var grid_template_test_cases = [
|
||||
},
|
||||
{
|
||||
gridTemplateAreas: "\"a\"",
|
||||
gridTemplateRows: "(foo) 20px (bar)",
|
||||
shorthand: "(foo) \"a\" 20px (bar)",
|
||||
gridTemplateRows: "[foo] 20px [bar]",
|
||||
shorthand: "[foo] \"a\" 20px [bar]",
|
||||
},
|
||||
// Combinations of longhands that make the shorthand non-serializable:
|
||||
{
|
||||
@ -70,7 +70,7 @@ var grid_template_test_cases = [
|
||||
},
|
||||
{
|
||||
gridTemplateAreas: "\"a\"",
|
||||
gridTemplateRows: "subgrid (foo)",
|
||||
gridTemplateRows: "subgrid [foo]",
|
||||
shorthand: "",
|
||||
},
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user