Source/WebCore/ChangeLog

 12015-04-30 Manuel Rego Casasnovas <rego@igalia.com>
 2
 3 [CSS Grid Layout] Wrong computed style for named grid lines in implicit tracks
 4 https://bugs.webkit.org/show_bug.cgi?id=144449
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 If there're implicit tracks trackPositions is bigger than trackSizes, so
 9 we need to use the proper index to append the trailing strings in
 10 valueForGridTrackList().
 11
 12 Test: fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks.html
 13
 14 * css/CSSComputedStyleDeclaration.cpp:
 15 (WebCore::valueForGridTrackList):
 16
1172015-04-29 Jer Noble <jer.noble@apple.com>
218
319 Make GenericTaskQueue even more generic (and usable inside platform/)

Source/WebCore/css/CSSComputedStyleDeclaration.cpp

@@static Ref<CSSValue> valueForGridTrackList(GridTrackSizingDirection direction, R
10531053 }
10541054
10551055 auto list = CSSValueList::createSpaceSeparated();
 1056 unsigned i = 0;
10561057 if (isRenderGrid) {
10571058 const Vector<LayoutUnit>& trackPositions = direction == ForColumns ? downcast<RenderGrid>(*renderer).columnPositions() : downcast<RenderGrid>(*renderer).rowPositions();
10581059 // There are at least #tracks + 1 grid lines (trackPositions). Apart from that, the grid container can generate implicit grid tracks,
10591060 // so we'll have more trackPositions than trackSizes as the latter only contain the explicit grid.
10601061 ASSERT(trackPositions.size() - 1 >= trackSizes.size());
10611062
1062  for (unsigned i = 0; i < trackPositions.size() - 1; ++i) {
 1063 for (; i < trackPositions.size() - 1; ++i) {
10631064 addValuesForNamedGridLinesAtIndex(orderedNamedGridLines, i, list.get());
10641065 list.get().append(zoomAdjustedPixelValue(trackPositions[i + 1] - trackPositions[i], style));
10651066 }
10661067 } else {
1067  for (unsigned i = 0; i < trackSizes.size(); ++i) {
 1068 for (; i < trackSizes.size(); ++i) {
10681069 addValuesForNamedGridLinesAtIndex(orderedNamedGridLines, i, list.get());
10691070 list.get().append(specifiedValueForGridTrackSize(trackSizes[i], style));
10701071 }
10711072 }
10721073
10731074 // Those are the trailing <ident>* allowed in the syntax.
1074  addValuesForNamedGridLinesAtIndex(orderedNamedGridLines, trackSizes.size(), list.get());
 1075 addValuesForNamedGridLinesAtIndex(orderedNamedGridLines, i, list.get());
10751076 return WTF::move(list);
10761077}
10771078

LayoutTests/ChangeLog

 12015-04-30 Manuel Rego Casasnovas <rego@igalia.com>
 2
 3 [CSS Grid Layout] Wrong computed style for named grid lines in implicit tracks
 4 https://bugs.webkit.org/show_bug.cgi?id=144449
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 * fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks-expected.txt: Added.
 9 * fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks.html: Added.
 10
1112015-04-30 Antti Koivisto <antti@apple.com>
212
313 These should be saying HTTP/1.1 not HTTP/1.0

LayoutTests/fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks-expected.txt

 1Test that computed style for grid-template-columns and grid-template-rows works as expected with named grid lines and implicit tracks
 2
 3On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 4
 5
 6PASS window.getComputedStyle(gridOneColumn, '').getPropertyValue('-webkit-grid-template-columns') is "(a) 200px (b)"
 7PASS window.getComputedStyle(gridOneColumn, '').getPropertyValue('-webkit-grid-template-rows') is "(x) 50px (y) 50px 50px 50px"
 8PASS window.getComputedStyle(gridTwoColumns, '').getPropertyValue('-webkit-grid-template-columns') is "(a) 200px (b) 150px"
 9PASS window.getComputedStyle(gridTwoColumns, '').getPropertyValue('-webkit-grid-template-rows') is "(x) 50px (y) 50px"
 10PASS window.getComputedStyle(gridThreeColumns, '').getPropertyValue('-webkit-grid-template-columns') is "(a) 200px (b) 150px 100px"
 11PASS window.getComputedStyle(gridThreeColumns, '').getPropertyValue('-webkit-grid-template-rows') is "(x) 50px (y) 50px"
 12PASS window.getComputedStyle(gridFourColumns, '').getPropertyValue('-webkit-grid-template-columns') is "(a) 200px (b) 150px 100px 50px"
 13PASS window.getComputedStyle(gridFourColumns, '').getPropertyValue('-webkit-grid-template-rows') is "(x) 50px (y)"
 14PASS successfullyParsed is true
 15
 16TEST COMPLETE
 17XXXX
 18XXX
 19XX
 20X
 21XXXX
 22XXX
 23XX
 24X
 25XXXX
 26XXX
 27XX
 28X
 29XXXX
 30XXX
 31XX
 32X

LayoutTests/fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks.html

 1<!DOCTYPE HTML>
 2<html>
 3<head>
 4<link href="resources/grid.css" rel="stylesheet">
 5<style>
 6.grid {
 7 -webkit-grid-template-columns: (a) auto (b);
 8 -webkit-grid-template-rows: (x) auto (y);
 9 font: 50px/1 Ahem;
 10}
 11</style>
 12<script src="../../resources/js-test.js"></script>
 13</head>
 14<body>
 15<div class="grid" id="gridOneColumn">
 16 <div>XXXX</div>
 17 <div>XXX</div>
 18 <div>XX</div>
 19 <div>X</div>
 20</div>
 21
 22<div class="grid" id="gridTwoColumns">
 23 <div class="firstRowAutoColumn">XXXX</div>
 24 <div class="firstRowAutoColumn">XXX</div>
 25 <div>XX</div>
 26 <div>X</div>
 27</div>
 28
 29<div class="grid" id="gridThreeColumns">
 30 <div class="firstRowAutoColumn">XXXX</div>
 31 <div class="firstRowAutoColumn">XXX</div>
 32 <div class="firstRowAutoColumn">XX</div>
 33 <div>X</div>
 34</div>
 35
 36<div class="grid" id="gridFourColumns">
 37 <div class="firstRowAutoColumn">XXXX</div>
 38 <div class="firstRowAutoColumn">XXX</div>
 39 <div class="firstRowAutoColumn">XX</div>
 40 <div class="firstRowAutoColumn">X</div>
 41</div>
 42
 43<script src="resources/grid-definitions-parsing-utils.js"></script>
 44<script>
 45 description('Test that computed style for grid-template-columns and grid-template-rows works as expected with named grid lines and implicit tracks');
 46
 47 testGridTemplatesValues(document.getElementById("gridOneColumn"), "(a) 200px (b)", "(x) 50px (y) 50px 50px 50px");
 48 testGridTemplatesValues(document.getElementById("gridTwoColumns"), "(a) 200px (b) 150px", "(x) 50px (y) 50px");
 49 testGridTemplatesValues(document.getElementById("gridThreeColumns"), "(a) 200px (b) 150px 100px", "(x) 50px (y) 50px");
 50 testGridTemplatesValues(document.getElementById("gridFourColumns"), "(a) 200px (b) 150px 100px 50px", "(x) 50px (y)");
 51</script>
 52</body>
 53</html>