Changeset 164609 in webkit
- Timestamp:
- Feb 24, 2014 2:29:20 PM (10 years ago)
- Location:
- trunk
- Files:
-
- 28 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r164602 r164609 1 2014-02-24 Javier Fernandez <jfernandez@igalia.com> 2 3 [CSS Grid Layout] handle undefined RemainingSpace in computeUsedBreadthOfGridTracks algorithm 4 https://bugs.webkit.org/show_bug.cgi?id=128372 5 6 Reviewed by David Hyatt. 7 8 From Blink r165692 by <svillar@igalia.com> 9 10 Adapt tests to consider also cases for undefined RemainingSpace. 11 12 * fast/css-grid-layout/flex-and-minmax-content-resolution-rows-expected.txt: 13 * fast/css-grid-layout/flex-and-minmax-content-resolution-rows.html: 14 * fast/css-grid-layout/flex-content-resolution-rows-expected.txt: 15 * fast/css-grid-layout/flex-content-resolution-rows.html: 16 * fast/css-grid-layout/grid-auto-columns-rows-update-expected.txt: 17 * fast/css-grid-layout/grid-auto-columns-rows-update.html: 18 * fast/css-grid-layout/grid-dynamic-updates-relayout-expected.txt: 19 * fast/css-grid-layout/grid-dynamic-updates-relayout.html: 20 * fast/css-grid-layout/grid-item-addition-track-breadth-update-expected.txt: 21 * fast/css-grid-layout/grid-item-addition-track-breadth-update.html: 22 * fast/css-grid-layout/grid-item-multiple-minmax-content-resolution-expected.txt: 23 * fast/css-grid-layout/grid-item-multiple-minmax-content-resolution.html: 24 * fast/css-grid-layout/grid-item-removal-track-breadth-update-expected.txt: 25 * fast/css-grid-layout/grid-item-removal-track-breadth-update.html: 26 * fast/css-grid-layout/grid-item-with-percent-height-in-auto-height-grid-resolution-expected.txt: 27 * fast/css-grid-layout/grid-item-with-percent-height-in-auto-height-grid-resolution.html: 28 * fast/css-grid-layout/implicit-position-dynamic-change-expected.txt: 29 * fast/css-grid-layout/implicit-position-dynamic-change.html: 30 * fast/css-grid-layout/minmax-max-content-resolution-rows-expected.txt: 31 * fast/css-grid-layout/minmax-max-content-resolution-rows.html: 32 * fast/css-grid-layout/minmax-min-content-column-resolution-rows-expected.txt: 33 * fast/css-grid-layout/minmax-min-content-column-resolution-rows.html: 34 * fast/css-grid-layout/minmax-spanning-resolution-rows-expected.txt: 35 * fast/css-grid-layout/minmax-spanning-resolution-rows.html: 36 1 37 2014-02-24 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org> 2 38 -
trunk/LayoutTests/fast/css-grid-layout/flex-and-minmax-content-resolution-rows-expected.txt
r157393 r164609 1 1 Test that resolving auto tracks on grid items works properly. 2 2 3 XXXXX 4 PASS 5 XXXXX 6 PASS 3 7 XXXXX 4 8 PASS … … 16 20 XXXXX XXXX 17 21 PASS 22 XXXXX XXXX 23 XXXXX XXXX 24 PASS 25 XXXXX XXXX 26 XXXXX XXXX 27 PASS 28 XXXXX XXXX 29 XXXXX XXXX 30 PASS 18 31 XXXXX XXXXX XXXXX XXXXX 32 PASS 33 XXXXX XXXXX XXXXX XXXXX 34 PASS 35 XXXXX XXXXX XXXXX XXXXX XXXXX 36 XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX 19 37 PASS 20 38 XXXXX XXXXX XXXXX XXXXX XXXXX … … 30 48 XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX 31 49 PASS 50 XXXXX XXXXX XXXXX XXXXX 51 XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX 52 PASS 53 XXXXX XXXXX XXXXX XXXXX 54 XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX 55 PASS 56 XXXXX XXXXX XXXXX XXXXX 57 XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX 58 PASS -
trunk/LayoutTests/fast/css-grid-layout/flex-and-minmax-content-resolution-rows.html
r163625 r164609 55 55 <!-- Allow the extra logical space distribution to occur. --> 56 56 <div style="width: 10px; height: 40px"> 57 <div class="grid gridMaxMaxContent" style="height: 100%"> 58 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="10">XXXXX</div> 59 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="30"></div> 60 </div> 61 </div> 62 63 <div style="width: 10px; height: 40px"> 57 64 <div class="grid gridMaxMaxContent"> 58 65 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="10">XXXXX</div> 59 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="30"></div> 66 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="10"></div> 67 </div> 68 </div> 69 70 <div style="width: 10px; height: 110px;"> 71 <div class="grid gridMaxMaxContent" style="height: 100%"> 72 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="10">XXXXX</div> 73 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="100"></div> 60 74 </div> 61 75 </div> … … 64 78 <div class="grid gridMaxMaxContent"> 65 79 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="10">XXXXX</div> 66 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="100"></div> 67 </div> 68 </div> 69 80 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="10"></div> 81 </div> 82 </div> 83 84 <div class="constrainedContainer"> 85 <div class="grid gridMinMinContent" style="height: 100%"> 86 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="10">XXXXX XXXX</div> 87 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="20">XXXXX XXXX</div> 88 </div> 89 </div> 70 90 71 91 <div class="constrainedContainer"> 72 92 <div class="grid gridMinMinContent"> 73 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height=" 10">XXXXX XXXX</div>74 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height=" 20">XXXXX XXXX</div>93 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="30">XXXXX XXXX</div> 94 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="50">XXXXX XXXX</div> 75 95 </div> 76 96 </div> … … 78 98 <!-- Allow the extra logical space distribution to occur. --> 79 99 <div style="width: 10px; height: 40px"> 80 <div class="grid gridMinMinContent" >100 <div class="grid gridMinMinContent" style="height: 100%"> 81 101 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="10">XXXXX XXXX</div> 82 102 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="30">XXXXX XXXX</div> … … 84 104 </div> 85 105 86 <div style="width: 10px; height: 110px;">106 <div style="width: 10px; height: 40px"> 87 107 <div class="grid gridMinMinContent"> 108 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="30">XXXXX XXXX</div> 109 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="50">XXXXX XXXX</div> 110 </div> 111 </div> 112 113 <div style="width: 10px; height: 110px;"> 114 <div class="grid gridMinMinContent" style="height: 100%"> 88 115 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="60">XXXXX XXXX</div> 89 116 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="50">XXXXX XXXX</div> … … 91 118 </div> 92 119 120 <div style="width: 10px; height: 110px;"> 121 <div class="grid gridMinMinContent"> 122 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="30">XXXXX XXXX</div> 123 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="50">XXXXX XXXX</div> 124 </div> 125 </div> 126 127 <div style="width: 10px; height: 60px;"> 128 <div class="grid gridWithIntrinsicSizeBiggerThanFlex" style="height: 100%"> 129 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="40">XXXXX XXXXX XXXXX XXXXX</div> 130 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="20"></div> 131 </div> 132 </div> 93 133 94 134 <div style="width: 10px; height: 60px;"> 95 135 <div class="grid gridWithIntrinsicSizeBiggerThanFlex"> 96 136 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="40">XXXXX XXXXX XXXXX XXXXX</div> 97 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="20"></div> 98 </div> 99 </div> 100 101 102 <div style="width: 10px; height: 60px;"> 103 <div class="grid gridShrinkBelowItemsIntrinsicSize"> 137 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="160"></div> 138 </div> 139 </div> 140 141 <div style="width: 10px; height: 60px;"> 142 <div class="grid gridShrinkBelowItemsIntrinsicSize" style="height: 100%"> 104 143 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="20">XXXXX XXXXX XXXXX XXXXX XXXXX</div> 105 144 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="40">XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX</div> … … 107 146 </div> 108 147 148 <div style="width: 10px; height: 60px;"> 149 <div class="grid gridShrinkBelowItemsIntrinsicSize"> 150 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="50">XXXXX XXXXX XXXXX XXXXX XXXXX</div> 151 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="100">XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX</div> 152 </div> 153 </div> 109 154 110 155 <!-- No space available for the <flex> --> 111 156 <div style="width: 10px; height: 100px;"> 157 <div class="grid gridWithNonFlexingItems" style="height: 100%"> 158 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="40"></div> 159 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="40">XXXXX XXXXX XXXXX XXXXX</div> 160 <div class="sizedToGridArea thirdRowFirstColumn" data-expected-width="50" data-expected-height="60">XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX</div> 161 <div class="sizedToGridArea fourthRowFirstColumn" data-expected-width="50" data-expected-height="20"></div> 162 </div> 163 </div> 164 165 <div style="width: 10px; height: 100px;"> 112 166 <div class="grid gridWithNonFlexingItems"> 113 167 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="40"></div> 114 168 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="40">XXXXX XXXXX XXXXX XXXXX</div> 115 169 <div class="sizedToGridArea thirdRowFirstColumn" data-expected-width="50" data-expected-height="60">XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX</div> 116 <div class="sizedToGridArea fourthRowFirstColumn" data-expected-width="50" data-expected-height=" 20"></div>170 <div class="sizedToGridArea fourthRowFirstColumn" data-expected-width="50" data-expected-height="80"></div> 117 171 </div> 118 172 </div> … … 120 174 <!-- The second track should be sized after the min-content as the <flex> value should be too small. --> 121 175 <div style="width: 10px; height: 180px;"> 176 <div class="grid gridWithNonFlexingItems" style="height: 100%"> 177 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="40"></div> 178 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="40">XXXXX XXXXX XXXXX XXXXX</div> 179 <div class="sizedToGridArea thirdRowFirstColumn" data-expected-width="50" data-expected-height="60">XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX</div> 180 <div class="sizedToGridArea fourthRowFirstColumn" data-expected-width="50" data-expected-height="40"></div> 181 </div> 182 </div> 183 184 <div style="width: 10px; height: 180px;"> 122 185 <div class="grid gridWithNonFlexingItems"> 123 186 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="40"></div> 124 187 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="40">XXXXX XXXXX XXXXX XXXXX</div> 125 188 <div class="sizedToGridArea thirdRowFirstColumn" data-expected-width="50" data-expected-height="60">XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX</div> 126 <div class="sizedToGridArea fourthRowFirstColumn" data-expected-width="50" data-expected-height="40"></div> 189 <div class="sizedToGridArea fourthRowFirstColumn" data-expected-width="50" data-expected-height="80"></div> 190 </div> 191 </div> 192 193 <div style="width: 10px; height: 400px;"> 194 <div class="grid gridWithNonFlexingItems" style="height: 100%"> 195 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="40"></div> 196 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="100">XXXXX XXXXX XXXXX XXXXX</div> 197 <div class="sizedToGridArea thirdRowFirstColumn" data-expected-width="50" data-expected-height="60">XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX</div> 198 <div class="sizedToGridArea fourthRowFirstColumn" data-expected-width="50" data-expected-height="200"></div> 127 199 </div> 128 200 </div> … … 131 203 <div class="grid gridWithNonFlexingItems"> 132 204 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="40"></div> 133 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height=" 100">XXXXX XXXXX XXXXX XXXXX</div>134 <div class="sizedToGridArea thirdRowFirstColumn" data-expected-width="50" data-expected-height="60">XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX</div> 135 <div class="sizedToGridArea fourthRowFirstColumn" data-expected-width="50" data-expected-height=" 200"></div>205 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="40">XXXXX XXXXX XXXXX XXXXX</div> 206 <div class="sizedToGridArea thirdRowFirstColumn" data-expected-width="50" data-expected-height="60">XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX</div> 207 <div class="sizedToGridArea fourthRowFirstColumn" data-expected-width="50" data-expected-height="80"></div> 136 208 </div> 137 209 </div> -
trunk/LayoutTests/fast/css-grid-layout/flex-content-resolution-rows-expected.txt
r157393 r164609 13 13 PASS 14 14 PASS 15 PASS 16 PASS 17 PASS 18 PASS 19 PASS 20 PASS 21 PASS 22 PASS 23 PASS 24 PASS -
trunk/LayoutTests/fast/css-grid-layout/flex-content-resolution-rows.html
r163625 r164609 30 30 31 31 <div style="height: 0px"> 32 <div class="grid gridMinFlexContent" style="height: 100%"> 33 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="0"></div> 34 </div> 35 </div> 36 37 <div style="height: 0px"> 32 38 <div class="grid gridMinFlexContent"> 33 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height=" 0"></div>39 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="50"></div> 34 40 </div> 35 41 </div> … … 37 43 <!-- Allow the extra logical space distribution to occur. --> 38 44 <div style="width: 10px; height: 40px"> 45 <div class="grid gridMinFlexContent" style="height: 100%"> 46 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="40"></div> 47 </div> 48 </div> 49 50 <div style="width: 10px; height: 40px"> 39 51 <div class="grid gridMinFlexContent"> 40 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height=" 40"></div>52 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="50"></div> 41 53 </div> 42 54 </div> … … 57 69 <!-- Allow the extra logical space distribution to occur. --> 58 70 <div style="width: 10px; height: 40px"> 71 <div class="grid gridMaxFlexContent" style="height: 100%;"> 72 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="40"></div> 73 </div> 74 </div> 75 76 <div style="width: 10px; height: 40px"> 59 77 <div class="grid gridMaxFlexContent"> 60 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="40"></div> 78 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="30"></div> 79 </div> 80 </div> 81 82 <div style="width: 10px; height: 100px;"> 83 <div class="grid gridMaxFlexContent" style="height: 100%;"> 84 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="100"></div> 61 85 </div> 62 86 </div> … … 64 88 <div style="width: 10px; height: 100px;"> 65 89 <div class="grid gridMaxFlexContent"> 66 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height=" 100"></div>90 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="30"></div> 67 91 </div> 68 92 </div> 69 93 70 71 94 <div class="constrainedContainer"> 72 <div class="grid gridTwoMaxFlexContent" >95 <div class="grid gridTwoMaxFlexContent" style="height: 100%"> 73 96 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="10"></div> 74 97 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="10"></div> … … 76 99 </div> 77 100 101 <div class="constrainedContainer"> 102 <div class="grid gridTwoMaxFlexContent"> 103 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="10"></div> 104 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="20"></div> 105 </div> 106 </div> 107 78 108 <!-- Allow the extra logical space distribution to occur. --> 79 109 <div style="width: 10px; height: 60px"> 80 <div class="grid gridTwoMaxFlexContent" >110 <div class="grid gridTwoMaxFlexContent" style="height: 100%"> 81 111 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="20"></div> 82 112 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="40"></div> … … 84 114 </div> 85 115 116 <div style="width: 10px; height: 60px"> 117 <div class="grid gridTwoMaxFlexContent"> 118 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="10"></div> 119 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="20"></div> 120 </div> 121 </div> 122 86 123 <div style="width: 10px; height: 120px;"> 87 <div class="grid gridTwoMaxFlexContent" >124 <div class="grid gridTwoMaxFlexContent" style="height: 100%"> 88 125 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="40"></div> 89 126 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="80"></div> … … 91 128 </div> 92 129 130 <div style="width: 10px; height: 120px;"> 131 <div class="grid gridTwoMaxFlexContent"> 132 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="10"></div> 133 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="20"></div> 134 </div> 135 </div> 93 136 94 137 <div class="constrainedContainer"> 95 <div class="grid gridTwoDoubleMaxFlexContent" >138 <div class="grid gridTwoDoubleMaxFlexContent" style="height: 100%"> 96 139 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="10"></div> 97 140 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="10"></div> … … 99 142 </div> 100 143 144 <div class="constrainedContainer"> 145 <div class="grid gridTwoDoubleMaxFlexContent"> 146 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="10"></div> 147 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="40"></div> 148 </div> 149 </div> 150 101 151 <!-- Allow the extra logical space distribution to occur. --> 102 152 <div style="width: 10px; height: 60px"> 103 <div class="grid gridTwoDoubleMaxFlexContent" >153 <div class="grid gridTwoDoubleMaxFlexContent" style="height: 100%"> 104 154 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="12"></div> 105 155 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="48"></div> … … 107 157 </div> 108 158 159 <div style="width: 10px; height: 60px"> 160 <div class="grid gridTwoDoubleMaxFlexContent"> 161 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="10"></div> 162 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="40"></div> 163 </div> 164 </div> 165 109 166 <div style="width: 10px; height: 120px;"> 110 <div class="grid gridTwoDoubleMaxFlexContent" >167 <div class="grid gridTwoDoubleMaxFlexContent" style="height: 100%"> 111 168 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="24"></div> 112 169 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="96"></div> … … 114 171 </div> 115 172 173 <div style="width: 10px; height: 120px;"> 174 <div class="grid gridTwoDoubleMaxFlexContent"> 175 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="10"></div> 176 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="40"></div> 177 </div> 178 </div> 179 116 180 </body> 117 181 </html> -
trunk/LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-update-expected.txt
r146467 r164609 20 20 PASS 21 21 PASS 22 XXXXX XXXXXX 23 PASS 24 PASS 25 PASS 26 PASS 27 PASS 28 PASS 29 PASS 30 PASS 31 PASS -
trunk/LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-update.html
r163625 r164609 48 48 updateAndCheck("unconstrainedGrid", { 'rows': 'minmax(20em, 15px)', 'columns': '50px' }, { 'width': '50px', 'height': '200px' }); 49 49 updateAndCheck("unconstrainedGrid", { 'rows': 'minmax(20em, 15px)', 'columns': 'minmax(10%, 100px)' }, { 'width': '100px', 'height': '200px' }); 50 updateAndCheck("unconstrainedGrid", { 'rows': 'minmax(-webkit-min-content, 15px)', 'columns': 'minmax(10%, 100px)' }, { 'width': '100px', 'height': ' 20px' });50 updateAndCheck("unconstrainedGrid", { 'rows': 'minmax(-webkit-min-content, 15px)', 'columns': 'minmax(10%, 100px)' }, { 'width': '100px', 'height': '15px' }); 51 51 updateAndCheck("unconstrainedGrid", { 'rows': 'minmax(-webkit-min-content, 15px)', 'columns': 'minmax(10%, -webkit-max-content)' }, { 'width': '120px', 'height': '15px' }); 52 52 updateAndCheck("unconstrainedGrid", { 'rows': 'minmax(-webkit-min-content, 15px)', 'columns': 'minmax(10%, -webkit-max-content)' }, { 'width': '120px', 'height': '15px' }); … … 54 54 updateAndCheck("unconstrainedGrid", { 'rows': 'auto', 'columns': 'minmax(20em, -webkit-max-content)' }, { 'width': '200px', 'height': '10px' }); 55 55 updateAndCheck("unconstrainedGrid", { 'rows': 'auto', 'columns': 'auto' }, { 'width': '120px', 'height': '10px' }); 56 57 updateAndCheck("constrainedGridUndefinedHeight", { 'rows': 'minmax(20em, 15px)', 'columns': '50px' }, { 'width': '50px', 'height': '200px' }); 58 updateAndCheck("constrainedGridUndefinedHeight", { 'rows': 'minmax(20em, 15px)', 'columns': 'minmax(10%, 100px)' }, { 'width': '1px', 'height': '200px' }); 59 updateAndCheck("constrainedGridUndefinedHeight", { 'rows': 'minmax(-webkit-min-content, 15px)', 'columns': 'minmax(10%, 100px)' }, { 'width': '1px', 'height': '15px' }); 60 updateAndCheck("constrainedGridUndefinedHeight", { 'rows': 'minmax(-webkit-min-content, 15px)', 'columns': 'minmax(-webkit-max-content, 100px)' }, { 'width': '120px', 'height': '15px' }); 61 updateAndCheck("constrainedGridUndefinedHeight", { 'rows': 'minmax(40em, 15px)', 'columns': 'minmax(-webkit-max-content, 100px)' }, { 'width': '120px', 'height': '400px' }); 62 updateAndCheck("constrainedGridUndefinedHeight", { 'rows': 'minmax(40em, 15px)', 'columns': 'minmax(10%, 100px)' }, { 'width': '1px', 'height': '400px' }); 63 updateAndCheck("constrainedGridUndefinedHeight", { 'rows': 'minmax(40em, 15px)', 'columns': 'auto' }, { 'width': '60px', 'height': '400px' }); 64 updateAndCheck("constrainedGridUndefinedHeight", { 'rows': 'auto', 'columns': 'auto' }, { 'width': '60px', 'height': '20px' }); 56 65 } 57 66 … … 63 72 64 73 <div class="constrainedContainer" style="position: relative"> 65 <div class="grid" id="constrainedGrid" >74 <div class="grid" id="constrainedGrid" style="height: 100%"> 66 75 <div class="sizedToGridArea secondRowSecondColumn" data-offset-x="10" data-offset-y="20" data-expected-width="50" data-expected-height="30">XXXXX XXXXXX</div> 67 76 </div> … … 74 83 </div> 75 84 85 <div class="constrainedContainer" style="position: relative;"> 86 <div class="grid" id="constrainedGridUndefinedHeight"> 87 <div class="sizedToGridArea secondRowSecondColumn" data-offset-x="10" data-offset-y="20" data-expected-width="50" data-expected-height="30">XXXXX XXXXXX</div> 88 </div> 89 </div> 90 76 91 </body> 77 92 </html> -
trunk/LayoutTests/fast/css-grid-layout/grid-dynamic-updates-relayout-expected.txt
r157393 r164609 1 1 This test checks that grid-{rows|columns} dynamic updates properly relayout the grid items. 2 XXXXX XXXXXX 3 PASS 4 PASS 5 PASS 6 PASS 7 PASS 8 PASS 2 9 XXXXX XXXXXX 3 10 PASS -
trunk/LayoutTests/fast/css-grid-layout/grid-dynamic-updates-relayout.html
r163625 r164609 29 29 testLayout("constrainedGrid", { 'rows': '70px', 'columns': 'minmax(-webkit-max-content, 50px)' }, { 'width': '120', 'height': '70' }); 30 30 31 testLayout("constrainedGridUndefinedHeight", { 'rows': 'minmax(20px, 50px)', 'columns': 'minmax(30px, 50px)' }, { 'width': '30', 'height': '50' }); 32 testLayout("constrainedGridUndefinedHeight", { 'rows': 'minmax(40px, 50px)', 'columns': 'minmax(30px, 50px)' }, { 'width': '30', 'height': '50' }); 33 testLayout("constrainedGridUndefinedHeight", { 'rows': 'minmax(40px, 50px)', 'columns': 'minmax(50px, 50px)' }, { 'width': '50', 'height': '50' }); 34 testLayout("constrainedGridUndefinedHeight", { 'rows': 'auto', 'columns': 'minmax(50px, 50px)' }, { 'width': '50', 'height': '20' }); 35 testLayout("constrainedGridUndefinedHeight", { 'rows': 'auto', 'columns': 'minmax(-webkit-max-content, 50px)' }, { 'width': '120', 'height': '10' }); 36 testLayout("constrainedGridUndefinedHeight", { 'rows': '70px', 'columns': 'minmax(-webkit-max-content, 50px)' }, { 'width': '120', 'height': '70' }); 37 31 38 testLayout("unconstrainedGrid", { 'rows': 'minmax(20px, 50px)', 'columns': 'minmax(20px, 60px)' }, { 'width': '60', 'height': '50' }); 32 39 testLayout("unconstrainedGrid", { 'rows': 'minmax(20px, 50px)', 'columns': 'minmax(20px, 40px)' }, { 'width': '40', 'height': '50' }); … … 45 52 <div>This test checks that grid-{rows|columns} dynamic updates properly relayout the grid items.</div> 46 53 <div class="constrainedContainer"> 47 <div class="grid" id="constrainedGrid"> 54 <div class="grid" id="constrainedGrid" style="height: 100%"> 55 <div class="sizedToGridArea">XXXXX XXXXXX</div> 56 </div> 57 </div> 58 59 <div class="constrainedContainer"> 60 <div class="grid" id="constrainedGridUndefinedHeight"> 48 61 <div class="sizedToGridArea">XXXXX XXXXXX</div> 49 62 </div> -
trunk/LayoutTests/fast/css-grid-layout/grid-item-addition-track-breadth-update-expected.txt
r142798 r164609 1 1 This test checks that we properly recompute our grid tracks' sizes when we add more grid items. 2 2 3 XXXX XXXX XXXX 4 XXXX XXXX XXXX 5 XXXX XXXX XXXX 6 XXXX XXXX XXXX 7 XXXX XXXX XXXX 8 XXXX XXXX XXXX 9 XXXX XXXX XXXX 10 XXXX XXXX XXXX 11 XXXX XXXX XXXX 12 XXXX XXXX XXXX 13 XXXX XXXX XXXX 14 XXXX XXXX XXXX 15 XXXX XXXX XXXX 16 XXXX XXXX XXXX 17 XXXX XXXX XXXX 18 XXXX XXXX XXXX 19 XXXX XXXX XXXX 20 XXXX XXXX XXXX 21 XXXX XXXX XXXX 22 XXXX XXXX XXXX 23 XXXX XXXX XXXX 24 PASS 25 PASS 26 PASS 27 PASS 28 PASS 29 PASS 30 PASS 31 PASS 32 PASS 33 PASS 34 PASS 35 PASS 36 PASS 37 PASS 38 PASS 39 PASS 40 PASS 41 PASS 42 PASS 43 PASS 44 PASS 3 45 XXXX XXXX XXXX 4 46 XXXX XXXX XXXX -
trunk/LayoutTests/fast/css-grid-layout/grid-item-addition-track-breadth-update.html
r163625 r164609 63 63 testPosition("constrainedGrid", "XXXX XXXX XXXX", { 'column': '4', 'row': '5' }, { 'width': '50', 'height': '30' }); 64 64 65 66 testPosition("constrainedGridUndefinedHeight", "XXXX XXXX XXXX", { 'column': '10', 'row': '15' }, { 'width': '40', 'height': '30' }); 67 68 testPosition("constrainedGridUndefinedHeight", "XXXX XXXX XXXX", { 'column': '1', 'row': '1' }, { 'width': '50', 'height': '70' }); 69 testPosition("constrainedGridUndefinedHeight", "XXXX XXXX XXXX", { 'column': '1', 'row': '2' }, { 'width': '50', 'height': '70' }); 70 testPosition("constrainedGridUndefinedHeight", "XXXX XXXX XXXX", { 'column': '1', 'row': '3' }, { 'width': '50', 'height': '50' }); 71 testPosition("constrainedGridUndefinedHeight", "XXXX XXXX XXXX", { 'column': '1', 'row': '4' }, { 'width': '50', 'height': '65' }); 72 testPosition("constrainedGridUndefinedHeight", "XXXX XXXX XXXX", { 'column': '1', 'row': '5' }, { 'width': '50', 'height': '30' }); 73 74 testPosition("constrainedGridUndefinedHeight", "XXXX XXXX XXXX", { 'column': '2', 'row': '1' }, { 'width': '40', 'height': '70' }); 75 testPosition("constrainedGridUndefinedHeight", "XXXX XXXX XXXX", { 'column': '2', 'row': '2' }, { 'width': '40', 'height': '70' }); 76 testPosition("constrainedGridUndefinedHeight", "XXXX XXXX XXXX", { 'column': '2', 'row': '3' }, { 'width': '40', 'height': '50' }); 77 testPosition("constrainedGridUndefinedHeight", "XXXX XXXX XXXX", { 'column': '2', 'row': '4' }, { 'width': '40', 'height': '65' }); 78 testPosition("constrainedGridUndefinedHeight", "XXXX XXXX XXXX", { 'column': '2', 'row': '5' }, { 'width': '40', 'height': '30' }); 79 80 testPosition("constrainedGridUndefinedHeight", "XXXX XXXX XXXX", { 'column': '3', 'row': '1' }, { 'width': '140', 'height': '70' }); 81 testPosition("constrainedGridUndefinedHeight", "XXXX XXXX XXXX", { 'column': '3', 'row': '2' }, { 'width': '140', 'height': '70' }); 82 testPosition("constrainedGridUndefinedHeight", "XXXX XXXX XXXX", { 'column': '3', 'row': '3' }, { 'width': '140', 'height': '50' }); 83 testPosition("constrainedGridUndefinedHeight", "XXXX XXXX XXXX", { 'column': '3', 'row': '4' }, { 'width': '140', 'height': '65' }); 84 testPosition("constrainedGridUndefinedHeight", "XXXX XXXX XXXX", { 'column': '3', 'row': '5' }, { 'width': '140', 'height': '30' }); 85 86 testPosition("constrainedGridUndefinedHeight", "XXXX XXXX XXXX", { 'column': '4', 'row': '1' }, { 'width': '50', 'height': '70' }); 87 testPosition("constrainedGridUndefinedHeight", "XXXX XXXX XXXX", { 'column': '4', 'row': '2' }, { 'width': '50', 'height': '70' }); 88 testPosition("constrainedGridUndefinedHeight", "XXXX XXXX XXXX", { 'column': '4', 'row': '3' }, { 'width': '50', 'height': '50' }); 89 testPosition("constrainedGridUndefinedHeight", "XXXX XXXX XXXX", { 'column': '4', 'row': '4' }, { 'width': '50', 'height': '65' }); 90 testPosition("constrainedGridUndefinedHeight", "XXXX XXXX XXXX", { 'column': '4', 'row': '5' }, { 'width': '50', 'height': '30' }); 91 65 92 testPosition("unconstrainedGrid", "XXXXXX XXXXXX", { 'column': '10', 'row': '15' }, { 'width': '130', 'height': '10' }); 66 93 … … 96 123 97 124 <div class="constrainedContainer"> 98 <div class="grid gridFixedContent" id="constrainedGrid"></div> 125 <div class="grid gridFixedContent" id="constrainedGrid" style="height: 100%"></div> 126 </div> 127 128 <div class="constrainedContainer"> 129 <div class="grid gridFixedContent" id="constrainedGridUndefinedHeight"></div> 99 130 </div> 100 131 -
trunk/LayoutTests/fast/css-grid-layout/grid-item-multiple-minmax-content-resolution-expected.txt
r146697 r164609 16 16 XXXXX XXXXX XXXXX XXXXX 17 17 PASS 18 XXXXX XXXXX 19 XXXXX XXXXX XXXXX 20 XXXXX XXXXX 21 XXXXX XXXXX XXXXX XXXXX 22 PASS -
trunk/LayoutTests/fast/css-grid-layout/grid-item-multiple-minmax-content-resolution.html
r163625 r164609 27 27 28 28 <div class="constrainedContainer" style="position: relative;"> 29 <div class="grid gridMinMaxAutoWithColumnMinMaxAuto" >29 <div class="grid gridMinMaxAutoWithColumnMinMaxAuto" style="height: 100%"> 30 30 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="30">XXXXX XXXXX</div> 31 31 <div class="sizedToGridArea firstRowSecondColumn" data-expected-width="50" data-expected-height="30">XXXXX XXXXX XXXXX</div> … … 35 35 </div> 36 36 37 <div class="constrainedContainer" style="position: relative;"> 38 <div class="grid gridMinMaxAutoWithColumnMinMaxAuto"> 39 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="30">XXXXX XXXXX</div> 40 <div class="sizedToGridArea firstRowSecondColumn" data-expected-width="50" data-expected-height="30">XXXXX XXXXX XXXXX</div> 41 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="100">XXXXX XXXXX</div> 42 <div class="sizedToGridArea secondRowSecondColumn" data-expected-width="50" data-expected-height="100">XXXXX XXXXX XXXXX XXXXX</div> 43 </div> 44 </div> 45 37 46 <div style="height: 100px; width: 220px; position: relative;"> 38 47 <div class="grid gridMinMaxAutoWithColumnMinMaxAuto"> 39 48 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="110" data-expected-height="20">XXXXX XXXXX</div> 40 49 <div class="sizedToGridArea firstRowSecondColumn" data-expected-width="110" data-expected-height="20">XXXXX XXXXX XXXXX</div> 41 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="110" data-expected-height=" 80">XXXXX XXXXX</div>42 <div class="sizedToGridArea secondRowSecondColumn" data-expected-width="110" data-expected-height=" 80">XXXXX XXXXX XXXXX XXXXX</div>50 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="110" data-expected-height="100">XXXXX XXXXX</div> 51 <div class="sizedToGridArea secondRowSecondColumn" data-expected-width="110" data-expected-height="100">XXXXX XXXXX XXXXX XXXXX</div> 43 52 </div> 44 53 </div> -
trunk/LayoutTests/fast/css-grid-layout/grid-item-removal-track-breadth-update-expected.txt
r142798 r164609 1 1 This test checks that the tracks' breadth are recomputed after removing a grid item. 2 2 3 XXX XXX XXX 4 PASS 5 PASS 6 PASS 7 XXX XXX XXX 8 PASS 9 PASS 10 PASS 3 11 XXX XXX XXX 4 12 PASS … … 61 69 PASS 62 70 PASS 71 XX XX XX XX XX XX 72 PASS 73 PASS 74 PASS 75 XX XX XX XX XX XX 76 PASS 77 PASS 78 PASS 79 XX XX XX XX XX XX 80 PASS 81 PASS 82 PASS 83 XX XX XX XX XX XX 84 PASS 85 PASS 86 PASS 87 XX XX XX XX XX XX 88 PASS 89 PASS 90 PASS -
trunk/LayoutTests/fast/css-grid-layout/grid-item-removal-track-breadth-update.html
r163625 r164609 77 77 testRemoval("constrainedAutoGrid", { 'width': '50', 'height': '40' }, { 'width': '40', 'height': '40' }, { 'width': '30', 'height': '30' }); 78 78 testRemoval("constrainedMinContentFixedGrid", { 'width': '50', 'height': '40' }, { 'width': '40', 'height': '40' }, { 'width': '30', 'height': '30' }); 79 testRemoval("constrainedMinContentFixedGridUndefinedHeight", { 'width': '50', 'height': '40' }, { 'width': '40', 'height': '40' }, { 'width': '30', 'height': '40' }); 79 80 testRemoval("constrainedMaxContentFixedGrid", { 'width': '190', 'height': '10' }, { 'width': '190', 'height': '10' }, { 'width': '110', 'height': '10' }); 81 testRemoval("constrainedMaxContentFixedGridUndefinedHeight", { 'width': '190', 'height': '40' }, { 'width': '190', 'height': '40' }, { 'width': '110', 'height': '40' }); 80 82 testRemoval("constrainedFixedMinContentGrid", { 'width': '100', 'height': '40' }, { 'width': '100', 'height': '40' }, { 'width': '100', 'height': '40' }); 81 83 testRemoval("constrainedFixedMaxContentGrid", { 'width': '100', 'height': '40' }, { 'width': '100', 'height': '40' }, { 'width': '100', 'height': '40' }); … … 83 85 testRemoval("unconstrainedAutoGrid", { 'width': '390', 'height': '10' }, { 'width': '350', 'height': '10' }, { 'width': '170', 'height': '10' }); 84 86 testRemoval("unconstrainedMinContentFixedGrid", { 'width': '100', 'height': '60' }, { 'width': '100', 'height': '60' }, { 'width': '100', 'height': '40' }); 87 testRemoval("unconstrainedMinContentFixedGridUndefinedHeight", { 'width': '100', 'height': '40' }, { 'width': '100', 'height': '40' }, { 'width': '100', 'height': '40' }); 85 88 testRemoval("unconstrainedMaxContentFixedGrid", { 'width': '390', 'height': '40' }, { 'width': '350', 'height': '40' }, { 'width': '170', 'height': '40' }); 86 89 testRemoval("unconstrainedFixedMinContentGrid", { 'width': '100', 'height': '60' }, { 'width': '100', 'height': '60' }, { 'width': '100', 'height': '40' }); … … 89 92 testRemoval("lessConstrainedAutoGrid", { 'width': '60', 'height': '90' }, { 'width': '60', 'height': '60' }, { 'width': '60', 'height': '30' }); 90 93 testRemoval("lessConstrainedMinContentFixedGrid", { 'width': '60', 'height': '90' }, { 'width': '60', 'height': '60' }, { 'width': '60', 'height': '30' }); 94 testRemoval("lessConstrainedMinContentFixedGridUndefinedHeight", { 'width': '60', 'height': '40' }, { 'width': '60', 'height': '40' }, { 'width': '60', 'height': '40' }); 91 95 testRemoval("lessConstrainedMaxContentFixedGrid", { 'width': '350', 'height': '20' }, { 'width': '350', 'height': '20' }, { 'width': '170', 'height': '20' }); 96 testRemoval("lessConstrainedMaxContentFixedGridUndefinedHeight", { 'width': '350', 'height': '40' }, { 'width': '350', 'height': '40' }, { 'width': '170', 'height': '40' }); 92 97 testRemoval("lessConstrainedFixedMinContentGrid", { 'width': '100', 'height': '40' }, { 'width': '100', 'height': '40' }, { 'width': '100', 'height': '40' }); 98 testRemoval("lessConstrainedFixedMinContentGridUndefinedHeight", { 'width': '100', 'height': '60' }, { 'width': '100', 'height': '60' }, { 'width': '100', 'height': '40' }); 93 99 testRemoval("lessConstrainedFixedMaxContentGrid", { 'width': '100', 'height': '40' }, { 'width': '100', 'height': '40' }, { 'width': '100', 'height': '40' }); 100 testRemoval("lessConstrainedFixedMaxContentGridUndefinedHeight", { 'width': '100', 'height': '60' }, { 'width': '100', 'height': '60' }, { 'width': '100', 'height': '40' }); 94 101 } 95 102 window.addEventListener("load", testRemovals, false); … … 108 115 109 116 <div class="constrainedContainer"> 110 <div class="grid gridMinContentFixed" id="constrainedMinContentFixedGrid"> 111 <div class="firstRowFirstColumn">XXXXX XXXXX XXXXX</div> 112 <div class="firstRowFirstColumn">XXXX XXXX XXXX XXXX</div> 113 <div class="firstRowFirstColumn">XXX XXX XXX</div> 114 </div> 115 </div> 116 117 <div class="constrainedContainer"> 118 <div class="grid gridMaxContentFixed" id="constrainedMaxContentFixedGrid"> 117 <div class="grid gridMinContentFixed" id="constrainedMinContentFixedGrid" style="height: 100%"> 118 <div class="firstRowFirstColumn">XXXXX XXXXX XXXXX</div> 119 <div class="firstRowFirstColumn">XXXX XXXX XXXX XXXX</div> 120 <div class="firstRowFirstColumn">XXX XXX XXX</div> 121 </div> 122 </div> 123 124 <div class="constrainedContainer"> 125 <div class="grid gridMinContentFixed" id="constrainedMinContentFixedGridUndefinedHeight"> 126 <div class="firstRowFirstColumn">XXXXX XXXXX XXXXX</div> 127 <div class="firstRowFirstColumn">XXXX XXXX XXXX XXXX</div> 128 <div class="firstRowFirstColumn">XXX XXX XXX</div> 129 </div> 130 </div> 131 132 <div class="constrainedContainer"> 133 <div class="grid gridMaxContentFixed" id="constrainedMaxContentFixedGrid" style="height: 100%"> 134 <div class="firstRowFirstColumn">XXXXX XXXXX XXXXX</div> 135 <div class="firstRowFirstColumn">XXXX XXXX XXXX XXXX</div> 136 <div class="firstRowFirstColumn">XXX XXX XXX</div> 137 </div> 138 </div> 139 140 <div class="constrainedContainer"> 141 <div class="grid gridMaxContentFixed" id="constrainedMaxContentFixedGridUndefinedHeight"> 119 142 <div class="firstRowFirstColumn">XXXXX XXXXX XXXXX</div> 120 143 <div class="firstRowFirstColumn">XXXX XXXX XXXX XXXX</div> … … 149 172 150 173 <div class="unconstrainedContainer"> 151 <div class="grid gridMinContentFixed" id="unconstrainedMinContentFixedGrid"> 174 <div class="grid gridMinContentFixed" id="unconstrainedMinContentFixedGrid" style="height: 100%"> 175 <div class="firstRowFirstColumn">XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX</div> 176 <div class="firstRowFirstColumn">XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX</div> 177 <div class="firstRowFirstColumn">XX XX XX XX XX XX</div> 178 </div> 179 </div> 180 181 <div class="unconstrainedContainer"> 182 <div class="grid gridMinContentFixed" id="unconstrainedMinContentFixedGridUndefinedHeight"> 152 183 <div class="firstRowFirstColumn">XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX</div> 153 184 <div class="firstRowFirstColumn">XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX</div> … … 190 221 191 222 <div class="lessConstrainedContainer"> 192 <div class="grid gridMinContentFixed" id="lessConstrainedMinContentFixedGrid"> 193 <div class="firstRowFirstColumn">XXX XXX XXX XXX XXX XXX XXX XXX XXX</div> 194 <div class="firstRowFirstColumn">XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX</div> 195 <div class="firstRowFirstColumn">XX XX XX XX XX XX</div> 196 </div> 197 </div> 198 199 <div class="lessConstrainedContainer"> 200 <div class="grid gridMaxContentFixed" id="lessConstrainedMaxContentFixedGrid"> 201 <div class="firstRowFirstColumn">XXX XXX XXX XXX XXX XXX XXX XXX XXX</div> 202 <div class="firstRowFirstColumn">XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX</div> 203 <div class="firstRowFirstColumn">XX XX XX XX XX XX</div> 204 </div> 205 </div> 206 207 <div class="lessConstrainedContainer"> 208 <div class="grid gridFixedMinContent" id="lessConstrainedFixedMinContentGrid"> 209 <div class="firstRowFirstColumn">XXX XXX XXX XXX XXX XXX XXX XXX XXX</div> 210 <div class="firstRowFirstColumn">XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX</div> 211 <div class="firstRowFirstColumn">XX XX XX XX XX XX</div> 212 </div> 213 </div> 214 215 <div class="lessConstrainedContainer"> 216 <div class="grid gridFixedMaxContent" id="lessConstrainedFixedMaxContentGrid"> 223 <div class="grid gridMinContentFixed" id="lessConstrainedMinContentFixedGrid" style="height: 100%"> 224 <div class="firstRowFirstColumn">XXX XXX XXX XXX XXX XXX XXX XXX XXX</div> 225 <div class="firstRowFirstColumn">XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX</div> 226 <div class="firstRowFirstColumn">XX XX XX XX XX XX</div> 227 </div> 228 </div> 229 230 <div class="lessConstrainedContainer"> 231 <div class="grid gridMinContentFixed" id="lessConstrainedMinContentFixedGridUndefinedHeight"> 232 <div class="firstRowFirstColumn">XXX XXX XXX XXX XXX XXX XXX XXX XXX</div> 233 <div class="firstRowFirstColumn">XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX</div> 234 <div class="firstRowFirstColumn">XX XX XX XX XX XX</div> 235 </div> 236 </div> 237 238 <div class="lessConstrainedContainer"> 239 <div class="grid gridMaxContentFixed" id="lessConstrainedMaxContentFixedGrid" style="height: 100%"> 240 <div class="firstRowFirstColumn">XXX XXX XXX XXX XXX XXX XXX XXX XXX</div> 241 <div class="firstRowFirstColumn">XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX</div> 242 <div class="firstRowFirstColumn">XX XX XX XX XX XX</div> 243 </div> 244 </div> 245 246 <div class="lessConstrainedContainer"> 247 <div class="grid gridMaxContentFixed" id="lessConstrainedMaxContentFixedGridUndefinedHeight"> 248 <div class="firstRowFirstColumn">XXX XXX XXX XXX XXX XXX XXX XXX XXX</div> 249 <div class="firstRowFirstColumn">XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX</div> 250 <div class="firstRowFirstColumn">XX XX XX XX XX XX</div> 251 </div> 252 </div> 253 254 <div class="lessConstrainedContainer"> 255 <div class="grid gridFixedMinContent" id="lessConstrainedFixedMinContentGrid" style="height: 100%"> 256 <div class="firstRowFirstColumn">XXX XXX XXX XXX XXX XXX XXX XXX XXX</div> 257 <div class="firstRowFirstColumn">XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX</div> 258 <div class="firstRowFirstColumn">XX XX XX XX XX XX</div> 259 </div> 260 </div> 261 262 <div class="lessConstrainedContainer"> 263 <div class="grid gridFixedMinContent" id="lessConstrainedFixedMinContentGridUndefinedHeight"> 264 <div class="firstRowFirstColumn">XXX XXX XXX XXX XXX XXX XXX XXX XXX</div> 265 <div class="firstRowFirstColumn">XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX</div> 266 <div class="firstRowFirstColumn">XX XX XX XX XX XX</div> 267 </div> 268 </div> 269 270 <div class="lessConstrainedContainer"> 271 <div class="grid gridFixedMaxContent" id="lessConstrainedFixedMaxContentGrid" style="height: 100%"> 272 <div class="firstRowFirstColumn">XXX XXX XXX XXX XXX XXX XXX XXX XXX</div> 273 <div class="firstRowFirstColumn">XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX</div> 274 <div class="firstRowFirstColumn">XX XX XX XX XX XX</div> 275 </div> 276 </div> 277 278 <div class="lessConstrainedContainer"> 279 <div class="grid gridFixedMaxContent" id="lessConstrainedFixedMaxContentGridUndefinedHeight"> 217 280 <div class="firstRowFirstColumn">XXX XXX XXX XXX XXX XXX XXX XXX XXX</div> 218 281 <div class="firstRowFirstColumn">XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX</div> -
trunk/LayoutTests/fast/css-grid-layout/grid-item-with-percent-height-in-auto-height-grid-resolution-expected.txt
r146697 r164609 1 1 Test that grid items with a percentage logical height inside a grid without explicit sizes resolve their size properly. 2 2 3 XXXXX XXXXXX 4 XXXXX XXXXXX 5 XXXXX XXXXXX 6 XXXXX XXXXXX 7 PASS 3 8 XXXXX XXXXXX 4 9 XXXXX XXXXXX -
trunk/LayoutTests/fast/css-grid-layout/grid-item-with-percent-height-in-auto-height-grid-resolution.html
r163625 r164609 35 35 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="20">XXXXX XXXXXX</div> 36 36 <div class="sizedToGridArea firstRowSecondColumn" data-expected-width="100" data-expected-height="20">XXXXX XXXXXX</div> 37 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="100">XXXXX XXXXXX</div> 38 <div class="sizedToGridArea secondRowSecondColumn" data-expected-width="100" data-expected-height="100">XXXXX XXXXXX</div> 39 </div> 40 </div> 41 42 <div style="position: relative;"> 43 <div class="grid gridMinMaxMinMax" style="height: 100px;"> 44 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="20">XXXXX XXXXXX</div> 45 <div class="sizedToGridArea firstRowSecondColumn" data-expected-width="100" data-expected-height="20">XXXXX XXXXXX</div> 37 46 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="80">XXXXX XXXXXX</div> 38 47 <div class="sizedToGridArea secondRowSecondColumn" data-expected-width="100" data-expected-height="80">XXXXX XXXXXX</div> -
trunk/LayoutTests/fast/css-grid-layout/implicit-position-dynamic-change-expected.txt
r141963 r164609 1 1 This test checks that we properly recompute our grid tracks' sizes when a grid item changes its -webkit-grid-row or -webkit-grid-column. 2 2 3 XXXX XXXX XXXX 4 PASS 5 PASS 6 PASS 7 PASS 8 PASS 9 PASS 10 PASS 11 PASS 12 PASS 13 PASS 14 PASS 15 PASS 16 PASS 17 PASS 18 PASS 19 PASS 20 PASS 21 PASS 22 PASS 23 PASS 24 PASS 3 25 XXXX XXXX XXXX 4 26 PASS -
trunk/LayoutTests/fast/css-grid-layout/implicit-position-dynamic-change.html
r163625 r164609 53 53 testPosition("constrainedGrid", { 'column': '10', 'row': '15' }, { 'width': '40', 'height': '30' }); 54 54 55 var gridItem = document.getElementById("constrainedGridUndefinedHeight").firstChild; 56 testPosition("constrainedGridUndefinedHeight", { 'column': '1', 'row': '1' }, { 'width': '50', 'height': '70' }); 57 testPosition("constrainedGridUndefinedHeight", { 'column': '1', 'row': '2' }, { 'width': '50', 'height': '70' }); 58 testPosition("constrainedGridUndefinedHeight", { 'column': '1', 'row': '3' }, { 'width': '50', 'height': '50' }); 59 testPosition("constrainedGridUndefinedHeight", { 'column': '1', 'row': '4' }, { 'width': '50', 'height': '65' }); 60 testPosition("constrainedGridUndefinedHeight", { 'column': '1', 'row': '5' }, { 'width': '50', 'height': '30' }); 61 62 testPosition("constrainedGridUndefinedHeight", { 'column': '2', 'row': '1' }, { 'width': '40', 'height': '70' }); 63 testPosition("constrainedGridUndefinedHeight", { 'column': '2', 'row': '2' }, { 'width': '40', 'height': '70' }); 64 testPosition("constrainedGridUndefinedHeight", { 'column': '2', 'row': '3' }, { 'width': '40', 'height': '50' }); 65 testPosition("constrainedGridUndefinedHeight", { 'column': '2', 'row': '4' }, { 'width': '40', 'height': '65' }); 66 testPosition("constrainedGridUndefinedHeight", { 'column': '2', 'row': '5' }, { 'width': '40', 'height': '30' }); 67 68 testPosition("constrainedGridUndefinedHeight", { 'column': '3', 'row': '1' }, { 'width': '140', 'height': '70' }); 69 testPosition("constrainedGridUndefinedHeight", { 'column': '3', 'row': '2' }, { 'width': '140', 'height': '70' }); 70 testPosition("constrainedGridUndefinedHeight", { 'column': '3', 'row': '3' }, { 'width': '140', 'height': '50' }); 71 testPosition("constrainedGridUndefinedHeight", { 'column': '3', 'row': '4' }, { 'width': '140', 'height': '65' }); 72 testPosition("constrainedGridUndefinedHeight", { 'column': '3', 'row': '5' }, { 'width': '140', 'height': '10' }); 73 74 testPosition("constrainedGridUndefinedHeight", { 'column': '4', 'row': '1' }, { 'width': '50', 'height': '70' }); 75 testPosition("constrainedGridUndefinedHeight", { 'column': '4', 'row': '2' }, { 'width': '50', 'height': '70' }); 76 testPosition("constrainedGridUndefinedHeight", { 'column': '4', 'row': '3' }, { 'width': '50', 'height': '50' }); 77 testPosition("constrainedGridUndefinedHeight", { 'column': '4', 'row': '4' }, { 'width': '50', 'height': '65' }); 78 testPosition("constrainedGridUndefinedHeight", { 'column': '4', 'row': '5' }, { 'width': '50', 'height': '30' }); 79 80 testPosition("constrainedGridUndefinedHeight", { 'column': '10', 'row': '15' }, { 'width': '40', 'height': '30' }); 81 55 82 gridItem = document.getElementById("unconstrainedGrid").firstChild; 56 83 testPosition("unconstrainedGrid", { 'column': '1', 'row': '1' }, { 'width': '50', 'height': '70' }); … … 87 114 88 115 <div class="constrainedContainer"> 89 <div class="grid gridFixedContent" id="constrainedGrid"><div class="sizedToGridArea">XXXX XXXX XXXX</div></div> 116 <div class="grid gridFixedContent" id="constrainedGrid" style="height: 100%"><div class="sizedToGridArea">XXXX XXXX XXXX</div></div> 117 </div> 118 119 <div class="constrainedContainer"> 120 <div class="grid gridFixedContent" id="constrainedGridUndefinedHeight"><div class="sizedToGridArea">XXXX XXXX XXXX</div></div> 90 121 </div> 91 122 -
trunk/LayoutTests/fast/css-grid-layout/minmax-max-content-resolution-rows-expected.txt
r140583 r164609 1 1 Test that resolving minmax function with max-content on grid items works properly. 2 2 3 XX XX XX 4 PASS 3 5 XX XX XX 4 6 PASS … … 7 9 XX XX XX XX XX XX XX XX 8 10 PASS 11 XX XX XX XX XX XX XX XX 12 PASS 9 13 XX XX XX 14 PASS 15 XX XX XX XX XX XX XX XX 10 16 PASS 11 17 XX XX XX XX XX XX XX XX … … 17 23 XX XX XX XX XX 18 24 PASS 25 XX XX XX XX XX 26 PASS 19 27 XX XX XX 20 28 PASS 21 29 XX XX XX XX XX 22 30 PASS 31 XX XX XX XX XX 32 PASS -
trunk/LayoutTests/fast/css-grid-layout/minmax-max-content-resolution-rows.html
r163625 r164609 34 34 35 35 <div class="constrainedContainer"> 36 <div class="grid gridMinMaxContent" style="height: 100%"> 37 <div class="firstRowFirstColumn" data-expected-width="20" data-expected-height="30">XX XX XX</div> 38 </div> 39 </div> 40 41 <div class="constrainedContainer"> 36 42 <div class="grid gridMinMaxContent"> 37 <div class="firstRowFirstColumn" data-expected-width="20" data-expected-height=" 30">XX XX XX</div>43 <div class="firstRowFirstColumn" data-expected-width="20" data-expected-height="50">XX XX XX</div> 38 44 </div> 39 45 </div> … … 46 52 47 53 <div class="constrainedContainer"> 48 <div class="grid gridMinMaxContent" >54 <div class="grid gridMinMaxContent" style="height: 100%"> 49 55 <!-- The 'max' logical width ends up being smaller than the 'min' so per the spec we ignore the 'max'. --> 50 56 <div class="firstRowFirstColumn" data-expected-width="20" data-expected-height="80">XX XX XX XX XX XX XX XX</div> 57 </div> 58 </div> 59 60 <div class="constrainedContainer"> 61 <div class="grid gridMinMaxContent"> 62 <div class="firstRowFirstColumn" data-expected-width="20" data-expected-height="50">XX XX XX XX XX XX XX XX</div> 51 63 </div> 52 64 </div> … … 60 72 61 73 <div style="width: 10px; height: 100px;"> 74 <div class="grid gridMinMaxContent" style="height: 100%"> 75 <!-- The 'max' logical width ends up being smaller than the 'min' so per the spec we ignore the 'max'. --> 76 <div class="firstRowFirstColumn" data-expected-width="20" data-expected-height="80">XX XX XX XX XX XX XX XX</div> 77 </div> 78 </div> 79 80 <div style="width: 10px; height: 100px;"> 62 81 <div class="grid gridMinMaxContent"> 63 82 <!-- The 'max' logical width ends up being smaller than the 'min' so per the spec we ignore the 'max'. --> 64 <div class="firstRowFirstColumn" data-expected-width="20" data-expected-height=" 80">XX XX XX XX XX XX XX XX</div>83 <div class="firstRowFirstColumn" data-expected-width="20" data-expected-height="50">XX XX XX XX XX XX XX XX</div> 65 84 </div> 66 85 </div> … … 79 98 80 99 <div class="constrainedContainer"> 100 <div class="grid gridMaxMaxContent" style="height: 100%"> 101 <div class="firstRowFirstColumn" data-expected-width="20" data-expected-height="30">XX XX XX XX XX</div> 102 </div> 103 </div> 104 105 <div class="constrainedContainer"> 81 106 <div class="grid gridMaxMaxContent"> 82 <div class="firstRowFirstColumn" data-expected-width="20" data-expected-height=" 30">XX XX XX XX XX</div>107 <div class="firstRowFirstColumn" data-expected-width="20" data-expected-height="50">XX XX XX XX XX</div> 83 108 </div> 84 109 </div> … … 93 118 94 119 <div style="width: 100px; height: 20px"> 95 <div class="grid gridMaxMaxContent" >120 <div class="grid gridMaxMaxContent" style="height: 100%"> 96 121 <!-- The 'max' logical width ends up being smaller than the 'min' so per the spec we ignore the 'max'. --> 97 122 <div class="firstRowFirstColumn" data-expected-width="20" data-expected-height="30">XX XX XX XX XX</div> … … 99 124 </div> 100 125 126 <div style="width: 100px; height: 20px"> 127 <div class="grid gridMaxMaxContent"> 128 <div class="firstRowFirstColumn" data-expected-width="20" data-expected-height="50">XX XX XX XX XX</div> 129 </div> 130 </div> 131 101 132 </body> 102 133 </html> -
trunk/LayoutTests/fast/css-grid-layout/minmax-min-content-column-resolution-rows-expected.txt
r140198 r164609 1 1 Test that resolving minmax function with min-content on grid items works properly. 2 2 3 XXX XXX 4 PASS 3 5 XXX XXX 4 6 PASS … … 7 9 XX XX XX XX XX XX 8 10 PASS 11 XX XX XX XX XX XX 12 PASS 9 13 XXX XXX 14 PASS 15 XX XX XX XX XX XX 10 16 PASS 11 17 XX XX XX XX XX XX -
trunk/LayoutTests/fast/css-grid-layout/minmax-min-content-column-resolution-rows.html
r163625 r164609 30 30 31 31 <div class="constrainedContainer"> 32 <div class="grid gridMinMinContent" style="height: 100%"> 33 <div class="firstRowFirstColumn" data-expected-width="30" data-expected-height="20">XXX XXX</div> 34 </div> 35 </div> 36 37 <div class="constrainedContainer"> 32 38 <div class="grid gridMinMinContent"> 33 <div class="firstRowFirstColumn" data-expected-width="30" data-expected-height=" 20">XXX XXX</div>39 <div class="firstRowFirstColumn" data-expected-width="30" data-expected-height="40">XXX XXX</div> 34 40 </div> 35 41 </div> … … 42 48 43 49 <div class="constrainedContainer"> 50 <div class="grid gridMinMinContent" style="height: 100%"> 51 <div class="firstRowFirstColumn" data-expected-width="30" data-expected-height="60">XX XX XX XX XX XX</div> 52 </div> 53 </div> 54 55 <div class="constrainedContainer"> 44 56 <div class="grid gridMinMinContent"> 45 <div class="firstRowFirstColumn" data-expected-width="30" data-expected-height=" 60">XX XX XX XX XX XX</div>57 <div class="firstRowFirstColumn" data-expected-width="30" data-expected-height="40">XX XX XX XX XX XX</div> 46 58 </div> 47 59 </div> … … 55 67 56 68 <div style="width: 30px; height: 100px"> 69 <div class="grid gridMinMinContent" style="height: 100%"> 70 <div class="firstRowFirstColumn" data-expected-width="30" data-expected-height="60">XX XX XX XX XX XX</div> 71 </div> 72 </div> 73 74 <div style="width: 30px; height: 100px"> 57 75 <div class="grid gridMinMinContent"> 58 <div class="firstRowFirstColumn" data-expected-width="30" data-expected-height=" 60">XX XX XX XX XX XX</div>76 <div class="firstRowFirstColumn" data-expected-width="30" data-expected-height="40">XX XX XX XX XX XX</div> 59 77 </div> 60 78 </div> -
trunk/LayoutTests/fast/css-grid-layout/minmax-spanning-resolution-rows-expected.txt
r146482 r164609 27 27 XXXXX XXXXX XXXXX 28 28 PASS 29 XXXXX XXXXX XXXXX 30 PASS 31 XXXXX XXXXX XXXXX XXXXX XXXXX 32 PASS 29 33 XXXXX XXXXX XXXXX XXXXX XXXXX 30 34 PASS 31 35 XXXXX XXXXX XXXXX 36 PASS 37 XXXXX XXXXX XXXXX 38 PASS 39 XXXXX XXXXX XXXXX XXXXX XXXXX 32 40 PASS 33 41 XXXXX XXXXX XXXXX XXXXX XXXXX -
trunk/LayoutTests/fast/css-grid-layout/minmax-spanning-resolution-rows.html
r163625 r164609 143 143 144 144 <div class="constrainedContainer"> 145 <div class="grid gridMinMaxMin"> 146 <div class="sizedToGridArea bothRowFirstColumn" data-expected-width="50" data-expected-height="30">XXXXX XXXXX XXXXX</div> 147 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="15"></div> 148 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="15"></div> 149 </div> 150 </div> 151 152 <div class="constrainedContainer"> 153 <div class="grid gridMinMaxMin"> 154 <div class="sizedToGridArea bothRowBothColumn" data-expected-width="150" data-expected-height="30">XXXXX XXXXX XXXXX XXXXX XXXXX</div> 155 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="15"></div> 156 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="15"></div> 157 <div class="sizedToGridArea firstRowSecondColumn" data-expected-width="100" data-expected-height="15"></div> 158 <div class="sizedToGridArea secondRowSecondColumn" data-expected-width="100" data-expected-height="15"></div> 159 </div> 160 </div> 161 162 <!-- Allow the extra logical space distribution to occur. --> 163 <div style="width: 50px; height: 60px"> 164 <div class="grid gridMinMaxMin"> 145 <div class="grid gridMinMaxMin" style="height: 100%"> 146 <div class="sizedToGridArea bothRowFirstColumn" data-expected-width="50" data-expected-height="30">XXXXX XXXXX XXXXX</div> 147 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="15"></div> 148 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="15"></div> 149 </div> 150 </div> 151 152 <div class="constrainedContainer"> 153 <div class="grid gridMinMaxMin"> 154 <div class="sizedToGridArea bothRowFirstColumn" data-expected-width="50" data-expected-height="190">XXXXX XXXXX XXXXX</div> 155 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="50"></div> 156 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="140"></div> 157 </div> 158 </div> 159 160 <div class="constrainedContainer"> 161 <div class="grid gridMinMaxMin" style="height: 100%"> 162 <div class="sizedToGridArea bothRowBothColumn" data-expected-width="150" data-expected-height="30">XXXXX XXXXX XXXXX XXXXX XXXXX</div> 163 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="15"></div> 164 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="15"></div> 165 <div class="sizedToGridArea firstRowSecondColumn" data-expected-width="100" data-expected-height="15"></div> 166 <div class="sizedToGridArea secondRowSecondColumn" data-expected-width="100" data-expected-height="15"></div> 167 </div> 168 </div> 169 170 <div class="constrainedContainer"> 171 <div class="grid gridMinMaxMin"> 172 <div class="sizedToGridArea bothRowBothColumn" data-expected-width="150" data-expected-height="190">XXXXX XXXXX XXXXX XXXXX XXXXX</div> 173 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="50"></div> 174 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="140"></div> 175 <div class="sizedToGridArea firstRowSecondColumn" data-expected-width="100" data-expected-height="50"></div> 176 <div class="sizedToGridArea secondRowSecondColumn" data-expected-width="100" data-expected-height="140"></div> 177 </div> 178 </div> 179 180 <!-- Allow the extra logical space distribution to occur. --> 181 <div style="width: 50px; height: 60px"> 182 <div class="grid gridMinMaxMin" style="height: 100%"> 165 183 <div class="sizedToGridArea bothRowFirstColumn" data-expected-width="50" data-expected-height="60">XXXXX XXXXX XXXXX</div> 166 184 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="30"></div> … … 171 189 <div style="width: 50px; height: 60px"> 172 190 <div class="grid gridMinMaxMin"> 191 <div class="sizedToGridArea bothRowFirstColumn" data-expected-width="50" data-expected-height="190">XXXXX XXXXX XXXXX</div> 192 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="50"></div> 193 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="140"></div> 194 </div> 195 </div> 196 197 <div style="width: 50px; height: 60px"> 198 <div class="grid gridMinMaxMin" style="height: 100%"> 173 199 <div class="sizedToGridArea bothRowBothColumn" data-expected-width="150" data-expected-height="60">XXXXX XXXXX XXXXX XXXXX XXXXX</div> 174 200 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="30"></div> … … 179 205 </div> 180 206 207 <div style="width: 50px; height: 60px"> 208 <div class="grid gridMinMaxMin"> 209 <div class="sizedToGridArea bothRowBothColumn" data-expected-width="150" data-expected-height="190">XXXXX XXXXX XXXXX XXXXX XXXXX</div> 210 <div class="sizedToGridArea firstRowFirstColumn" data-expected-width="50" data-expected-height="50"></div> 211 <div class="sizedToGridArea secondRowFirstColumn" data-expected-width="50" data-expected-height="140"></div> 212 <div class="sizedToGridArea firstRowSecondColumn" data-expected-width="100" data-expected-height="50"></div> 213 <div class="sizedToGridArea secondRowSecondColumn" data-expected-width="100" data-expected-height="140"></div> 214 </div> 215 </div> 216 181 217 <div class="unconstrainedContainer"> 182 218 <div class="grid gridMinMaxMin"> -
trunk/Source/WebCore/ChangeLog
r164608 r164609 1 2014-02-24 Javier Fernandez <jfernandez@igalia.com> 2 3 [CSS Grid Layout] handle undefined RemainingSpace in computeUsedBreadthOfGridTracks algorithm 4 https://bugs.webkit.org/show_bug.cgi?id=128372 5 6 Reviewed by David Hyatt. 7 8 From Blink r165692 by <svillar@igalia.com> 9 10 The spec defines a different code path for the computeUsedBreadthOfGridTracks algorithm 11 http://dev.w3.org/csswg/css-grid/#function-ComputeUsedBreadthOfGridTracks. 12 13 Basically the track breadth is different when the available size is undefined and thus, 14 cannot be taken into account during the computations. 15 The available size is undefined whenever the height is auto or the grid element has a 16 shrink-to-fit behavior. 17 18 It was also renamed the function to match the specs so the function name starts with 19 'compute' instead of 'computed'. 20 21 No new tests, but added new cases to some of them. 22 23 * rendering/RenderGrid.cpp: 24 (WebCore::RenderGrid::computeIntrinsicLogicalWidths): 25 (WebCore::RenderGrid::computeUsedBreadthOfGridTracks): 26 (WebCore::gridElementIsShrinkToFit): 27 (WebCore::RenderGrid::computeNormalizedFractionBreadth): 28 (WebCore::RenderGrid::layoutGridItems): 29 * rendering/RenderGrid.h: 30 1 31 2014-02-24 Roger Fong <roger_fong@apple.com> 2 32 -
trunk/Source/WebCore/rendering/RenderGrid.cpp
r164214 r164609 223 223 GridSizingData sizingData(gridColumnCount(), gridRowCount()); 224 224 LayoutUnit availableLogicalSpace = 0; 225 const_cast<RenderGrid*>(this)->compute dUsedBreadthOfGridTracks(ForColumns, sizingData, availableLogicalSpace);225 const_cast<RenderGrid*>(this)->computeUsedBreadthOfGridTracks(ForColumns, sizingData, availableLogicalSpace); 226 226 227 227 for (size_t i = 0; i < sizingData.columnTracks.size(); ++i) { … … 258 258 } 259 259 260 void RenderGrid::compute dUsedBreadthOfGridTracks(GridTrackSizingDirection direction, GridSizingData& sizingData)260 void RenderGrid::computeUsedBreadthOfGridTracks(GridTrackSizingDirection direction, GridSizingData& sizingData) 261 261 { 262 262 LayoutUnit availableLogicalSpace = (direction == ForColumns) ? availableLogicalWidth() : availableLogicalHeight(IncludeMarginBorderPadding); 263 computedUsedBreadthOfGridTracks(direction, sizingData, availableLogicalSpace); 264 } 265 266 void RenderGrid::computedUsedBreadthOfGridTracks(GridTrackSizingDirection direction, GridSizingData& sizingData, LayoutUnit& availableLogicalSpace) 263 computeUsedBreadthOfGridTracks(direction, sizingData, availableLogicalSpace); 264 } 265 266 bool RenderGrid::gridElementIsShrinkToFit() 267 { 268 return isFloatingOrOutOfFlowPositioned(); 269 } 270 271 void RenderGrid::computeUsedBreadthOfGridTracks(GridTrackSizingDirection direction, GridSizingData& sizingData, LayoutUnit& availableLogicalSpace) 267 272 { 268 273 Vector<GridTrack>& tracks = (direction == ForColumns) ? sizingData.columnTracks : sizingData.rowTracks; 274 Vector<size_t> flexibleSizedTracksIndex; 269 275 sizingData.contentSizedTracksIndex.shrink(0); 276 277 // 1. Initialize per Grid track variables. 270 278 for (size_t i = 0; i < tracks.size(); ++i) { 271 279 GridTrack& track = tracks[i]; … … 281 289 if (trackSize.isContentSized()) 282 290 sizingData.contentSizedTracksIndex.append(i); 283 } 284 291 if (trackSize.maxTrackBreadth().isFlex()) 292 flexibleSizedTracksIndex.append(i); 293 } 294 295 // 2. Resolve content-based TrackSizingFunctions. 285 296 if (!sizingData.contentSizedTracksIndex.isEmpty()) 286 297 resolveContentBasedTrackSizingFunctions(direction, sizingData); … … 291 302 } 292 303 293 if (availableLogicalSpace <= 0) 304 const bool hasUndefinedRemainingSpace = (direction == ForRows) ? style().logicalHeight().isAuto() : gridElementIsShrinkToFit(); 305 306 if (!hasUndefinedRemainingSpace && availableLogicalSpace <= 0) 294 307 return; 295 308 309 // 3. Grow all Grid tracks in GridTracks from their UsedBreadth up to their MaxBreadth value until 310 // availableLogicalSpace (RemainingSpace in the specs) is exhausted. 296 311 const size_t tracksSize = tracks.size(); 297 Vector<GridTrack*> tracksForDistribution(tracksSize); 298 for (size_t i = 0; i < tracksSize; ++i) 299 tracksForDistribution[i] = tracks.data() + i; 300 301 distributeSpaceToTracks(tracksForDistribution, 0, &GridTrack::usedBreadth, &GridTrack::growUsedBreadth, sizingData, availableLogicalSpace); 312 if (!hasUndefinedRemainingSpace) { 313 Vector<GridTrack*> tracksForDistribution(tracksSize); 314 for (size_t i = 0; i < tracksSize; ++i) 315 tracksForDistribution[i] = tracks.data() + i; 316 317 distributeSpaceToTracks(tracksForDistribution, 0, &GridTrack::usedBreadth, &GridTrack::growUsedBreadth, sizingData, availableLogicalSpace); 318 } else { 319 for (size_t i = 0; i < tracksSize; ++i) 320 tracks[i].m_usedBreadth = tracks[i].m_maxBreadth; 321 } 322 323 if (flexibleSizedTracksIndex.isEmpty()) 324 return; 302 325 303 326 // 4. Grow all Grid tracks having a fraction as the MaxTrackSizingFunction. 304 305 // FIXME: Handle the case where RemainingSpace is not defined. 306 double normalizedFractionBreadth = computeNormalizedFractionBreadth(tracks, direction, availableLogicalSpace); 307 for (size_t i = 0; i < tracksSize; ++i) { 308 const GridTrackSize& trackSize = gridTrackSize(direction, i); 309 if (!trackSize.maxTrackBreadth().isFlex()) 310 continue; 311 312 tracks[i].m_usedBreadth = std::max<LayoutUnit>(tracks[i].m_usedBreadth, normalizedFractionBreadth * trackSize.maxTrackBreadth().flex()); 327 double normalizedFractionBreadth = 0; 328 if (!hasUndefinedRemainingSpace) 329 normalizedFractionBreadth = computeNormalizedFractionBreadth(tracks, GridSpan(0, tracks.size() - 1), direction, availableLogicalSpace); 330 else { 331 for (size_t i = 0; i < flexibleSizedTracksIndex.size(); ++i) { 332 const size_t trackIndex = flexibleSizedTracksIndex[i]; 333 const GridTrackSize& trackSize = gridTrackSize(direction, trackIndex); 334 normalizedFractionBreadth = std::max(normalizedFractionBreadth, tracks[trackIndex].m_usedBreadth / trackSize.maxTrackBreadth().flex()); 335 } 336 337 for (size_t i = 0; i < flexibleSizedTracksIndex.size(); ++i) { 338 GridIterator iterator(m_grid, direction, flexibleSizedTracksIndex[i]); 339 while (RenderBox* gridItem = iterator.nextGridItem()) { 340 const GridCoordinate coordinate = cachedGridCoordinate(gridItem); 341 const GridSpan span = (direction == ForColumns) ? coordinate.columns : coordinate.rows; 342 343 // Do not include already processed items. 344 if (i > 0 && span.initialPositionIndex <= flexibleSizedTracksIndex[i - 1]) 345 continue; 346 347 double itemNormalizedFlexBreadth = computeNormalizedFractionBreadth(tracks, span, direction, maxContentForChild(gridItem, direction, sizingData.columnTracks)); 348 normalizedFractionBreadth = std::max(normalizedFractionBreadth, itemNormalizedFlexBreadth); 349 } 350 } 351 } 352 353 for (size_t i = 0; i < flexibleSizedTracksIndex.size(); ++i) { 354 const size_t trackIndex = flexibleSizedTracksIndex[i]; 355 const GridTrackSize& trackSize = gridTrackSize(direction, trackIndex); 356 357 tracks[trackIndex].m_usedBreadth = std::max<LayoutUnit>(tracks[trackIndex].m_usedBreadth, normalizedFractionBreadth * trackSize.maxTrackBreadth().flex()); 313 358 } 314 359 } … … 351 396 } 352 397 353 double RenderGrid::computeNormalizedFractionBreadth(Vector<GridTrack>& tracks, GridTrackSizingDirection direction, LayoutUnit availableLogicalSpace) const398 double RenderGrid::computeNormalizedFractionBreadth(Vector<GridTrack>& tracks, const GridSpan& tracksSpan, GridTrackSizingDirection direction, LayoutUnit availableLogicalSpace) const 354 399 { 355 400 // |availableLogicalSpace| already accounts for the used breadths so no need to remove it here. 356 401 357 402 Vector<GridTrackForNormalization> tracksForNormalization; 358 for (size_t i = 0; i < tracks.size(); ++i) {403 for (size_t i = tracksSpan.initialPositionIndex; i <= tracksSpan.finalPositionIndex; ++i) { 359 404 const GridTrackSize& trackSize = gridTrackSize(direction, i); 360 405 if (!trackSize.maxTrackBreadth().isFlex()) … … 364 409 } 365 410 366 // FIXME: Ideally we shouldn't come here without any <flex> grid track. 367 if (tracksForNormalization.isEmpty()) 368 return LayoutUnit(); 411 // The function is not called if we don't have <flex> grid tracks 412 ASSERT(!tracksForNormalization.isEmpty()); 369 413 370 414 std::sort(tracksForNormalization.begin(), tracksForNormalization.end(), … … 749 793 750 794 GridSizingData sizingData(gridColumnCount(), gridRowCount()); 751 compute dUsedBreadthOfGridTracks(ForColumns, sizingData);795 computeUsedBreadthOfGridTracks(ForColumns, sizingData); 752 796 ASSERT(tracksAreWiderThanMinTrackBreadth(ForColumns, sizingData.columnTracks)); 753 compute dUsedBreadthOfGridTracks(ForRows, sizingData);797 computeUsedBreadthOfGridTracks(ForRows, sizingData); 754 798 ASSERT(tracksAreWiderThanMinTrackBreadth(ForRows, sizingData.rowTracks)); 755 799 -
trunk/Source/WebCore/rendering/RenderGrid.h
r163547 r164609 73 73 class GridSizingData; 74 74 enum GridTrackSizingDirection { ForColumns, ForRows }; 75 void computedUsedBreadthOfGridTracks(GridTrackSizingDirection, GridSizingData&); 76 void computedUsedBreadthOfGridTracks(GridTrackSizingDirection, GridSizingData&, LayoutUnit& availableLogicalSpace); 75 void computeUsedBreadthOfGridTracks(GridTrackSizingDirection, GridSizingData&); 76 void computeUsedBreadthOfGridTracks(GridTrackSizingDirection, GridSizingData&, LayoutUnit& availableLogicalSpace); 77 bool gridElementIsShrinkToFit(); 77 78 LayoutUnit computeUsedBreadthOfMinLength(GridTrackSizingDirection, const GridLength&) const; 78 79 LayoutUnit computeUsedBreadthOfMaxLength(GridTrackSizingDirection, const GridLength&, LayoutUnit usedBreadth) const; … … 102 103 void distributeSpaceToTracks(Vector<GridTrack*>&, Vector<GridTrack*>* tracksForGrowthAboveMaxBreadth, AccumulatorGetter, AccumulatorGrowFunction, GridSizingData&, LayoutUnit& availableLogicalSpace); 103 104 104 double computeNormalizedFractionBreadth(Vector<GridTrack>&, GridTrackSizingDirection, LayoutUnit availableLogicalSpace) const;105 double computeNormalizedFractionBreadth(Vector<GridTrack>&, const GridSpan& tracksSpan, GridTrackSizingDirection, LayoutUnit availableLogicalSpace) const; 105 106 106 107 const GridTrackSize& gridTrackSize(GridTrackSizingDirection, size_t) const;
Note: See TracChangeset
for help on using the changeset viewer.