Bug 1164953 - Update CSS grid <line-names> to use brackets instead of parens. r=dholbert

This commit is contained in:
Kyle Zentner 2015-05-19 15:20:00 -04:00
parent 5c6200e6f8
commit 3b888599d2
10 changed files with 98 additions and 98 deletions

View File

@ -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; }

View File

@ -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;
}

View File

@ -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;

View File

@ -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);

View File

@ -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;

View File

@ -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>

View File

@ -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;
}

View File

@ -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'"
]
};

View File

@ -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]",
},
];

View File

@ -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: "",
},
{