Changeset 154996 in webkit
- Timestamp:
- Sep 3, 2013 12:14:41 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r154995 r154996 1 2013-08-28 Sergio Villar Senin <svillar@igalia.com> 2 3 [CSS Grid Layout] Add parsing for named grid lines 4 https://bugs.webkit.org/show_bug.cgi?id=119540 5 6 Reviewed by Andreas Kling. 7 8 From Blink r150381,r150587 by <jchaffraix@chromium.org> 9 10 Added several new test cases which include different types of 11 named grid lines, this means including the names at different 12 positions, multiple names per line or mixing names with keywords 13 like 'span'. 14 15 * fast/css-grid-layout/grid-item-column-row-get-set-expected.txt: 16 * fast/css-grid-layout/grid-item-column-row-get-set.html: 17 1 18 2013-09-03 Alexey Proskuryakov <ap@apple.com> 2 19 -
trunk/LayoutTests/fast/css-grid-layout/grid-item-column-row-get-set-expected.txt
r154438 r154996 77 77 PASS getComputedStyle(gridItemWithNoSpaceElement, '').getPropertyValue('-webkit-grid-row-start') is "5" 78 78 PASS getComputedStyle(gridItemWithNoSpaceElement, '').getPropertyValue('-webkit-grid-row-end') is "auto" 79 PASS getComputedStyle(gridItemWithString, '').getPropertyValue('-webkit-grid-column') is "1 first / auto" 80 PASS getComputedStyle(gridItemWithString, '').getPropertyValue('-webkit-grid-column-start') is "1 first" 81 PASS getComputedStyle(gridItemWithString, '').getPropertyValue('-webkit-grid-column-end') is "auto" 82 PASS getComputedStyle(gridItemWithString, '').getPropertyValue('-webkit-grid-row') is "1 last / auto" 83 PASS getComputedStyle(gridItemWithString, '').getPropertyValue('-webkit-grid-row-start') is "1 last" 84 PASS getComputedStyle(gridItemWithString, '').getPropertyValue('-webkit-grid-row-end') is "auto" 85 PASS getComputedStyle(gridItemWithSpanString, '').getPropertyValue('-webkit-grid-column') is "1 / span 1 first" 86 PASS getComputedStyle(gridItemWithSpanString, '').getPropertyValue('-webkit-grid-column-start') is "1" 87 PASS getComputedStyle(gridItemWithSpanString, '').getPropertyValue('-webkit-grid-column-end') is "span 1 first" 88 PASS getComputedStyle(gridItemWithSpanString, '').getPropertyValue('-webkit-grid-row') is "-1 / span 1 last" 89 PASS getComputedStyle(gridItemWithSpanString, '').getPropertyValue('-webkit-grid-row-start') is "-1" 90 PASS getComputedStyle(gridItemWithSpanString, '').getPropertyValue('-webkit-grid-row-end') is "span 1 last" 91 PASS getComputedStyle(gridItemWithSpanNumberString, '').getPropertyValue('-webkit-grid-column') is "1 / span 3 first" 92 PASS getComputedStyle(gridItemWithSpanNumberString, '').getPropertyValue('-webkit-grid-column-start') is "1" 93 PASS getComputedStyle(gridItemWithSpanNumberString, '').getPropertyValue('-webkit-grid-column-end') is "span 3 first" 94 PASS getComputedStyle(gridItemWithSpanNumberString, '').getPropertyValue('-webkit-grid-row') is "-1 / span 2 last" 95 PASS getComputedStyle(gridItemWithSpanNumberString, '').getPropertyValue('-webkit-grid-row-start') is "-1" 96 PASS getComputedStyle(gridItemWithSpanNumberString, '').getPropertyValue('-webkit-grid-row-end') is "span 2 last" 79 97 80 98 Test the initial value … … 141 159 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-start') is "5" 142 160 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-end') is "span 1" 161 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column') is "span 1 first / 3" 162 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-start') is "span 1 first" 163 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-end') is "3" 164 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row') is "5 / span 1 last" 165 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-start') is "5" 166 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-end') is "span 1 last" 167 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column') is "1 first / 1 last" 168 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-start') is "1 first" 169 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-end') is "1 last" 170 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row') is "1 nav / span 1 last" 171 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-start') is "1 nav" 172 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-end') is "span 1 last" 173 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column') is "3 first / 2 last" 174 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-start') is "3 first" 175 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-end') is "2 last" 176 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row') is "5 nav / span 7 last" 177 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-start') is "5 nav" 178 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-end') is "span 7 last" 179 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column') is "span 3 first / -3 last" 180 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-start') is "span 3 first" 181 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-end') is "-3 last" 182 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row') is "span 2 last / -1 nav" 183 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-start') is "span 2 last" 184 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-end') is "-1 nav" 143 185 144 186 Test setting grid-column and grid-row back to 'auto' through JS … … 229 271 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-start') is "auto" 230 272 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-end') is "auto" 273 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column') is "auto / auto" 274 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-start') is "auto" 275 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-end') is "auto" 276 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row') is "auto / auto" 277 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-start') is "auto" 278 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-end') is "auto" 279 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column') is "auto / auto" 280 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-start') is "auto" 281 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-end') is "auto" 282 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row') is "auto / auto" 283 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-start') is "auto" 284 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-end') is "auto" 285 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column') is "auto / auto" 286 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-start') is "auto" 287 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-end') is "auto" 288 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row') is "auto / auto" 289 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-start') is "auto" 290 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-end') is "auto" 291 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column') is "auto / auto" 292 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-start') is "auto" 293 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-end') is "auto" 294 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row') is "auto / auto" 295 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-start') is "auto" 296 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-end') is "auto" 297 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column') is "auto / auto" 298 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-start') is "auto" 299 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-end') is "auto" 300 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row') is "auto / auto" 301 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-start') is "auto" 302 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-end') is "auto" 303 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column') is "auto / auto" 304 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-start') is "auto" 305 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-end') is "auto" 306 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row') is "auto / auto" 307 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-start') is "auto" 308 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-end') is "auto" 309 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column') is "auto / auto" 310 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-start') is "auto" 311 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-end') is "auto" 312 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row') is "auto / auto" 313 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-start') is "auto" 314 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-end') is "auto" 315 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column') is "auto / auto" 316 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-start') is "auto" 317 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-end') is "auto" 318 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row') is "auto / auto" 319 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-start') is "auto" 320 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-end') is "auto" 321 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column') is "auto / auto" 322 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-start') is "auto" 323 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-end') is "auto" 324 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row') is "auto / auto" 325 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-start') is "auto" 326 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-end') is "auto" 327 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column') is "auto / auto" 328 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-start') is "auto" 329 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-end') is "auto" 330 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row') is "auto / auto" 331 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-start') is "auto" 332 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-end') is "auto" 333 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column') is "auto / auto" 334 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-start') is "auto" 335 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-end') is "auto" 336 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row') is "auto / auto" 337 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-start') is "auto" 338 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-end') is "auto" 339 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column') is "auto / auto" 340 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-start') is "auto" 341 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-end') is "auto" 342 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row') is "auto / auto" 343 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-start') is "auto" 344 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-end') is "auto" 345 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column') is "auto / auto" 346 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-start') is "auto" 347 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-end') is "auto" 348 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row') is "auto / auto" 349 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-start') is "auto" 350 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-end') is "auto" 351 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column') is "auto / auto" 352 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-start') is "auto" 353 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-end') is "auto" 354 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row') is "auto / auto" 355 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-start') is "auto" 356 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-end') is "auto" 357 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column') is "auto / auto" 358 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-start') is "auto" 359 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-end') is "auto" 360 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row') is "auto / auto" 361 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-start') is "auto" 362 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-end') is "auto" 363 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column') is "auto / auto" 364 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-start') is "auto" 365 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-end') is "auto" 366 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row') is "auto / auto" 367 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-start') is "auto" 368 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-end') is "auto" 369 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column') is "auto / auto" 370 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-start') is "auto" 371 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-end') is "auto" 372 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row') is "auto / auto" 373 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-start') is "auto" 374 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-end') is "auto" 375 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column') is "auto / auto" 376 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-start') is "auto" 377 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-end') is "auto" 378 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row') is "auto / auto" 379 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-start') is "auto" 380 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-end') is "auto" 381 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column') is "auto / auto" 382 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-start') is "auto" 383 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-end') is "auto" 384 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row') is "auto / auto" 385 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-start') is "auto" 386 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-end') is "auto" 387 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column') is "auto / auto" 388 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-start') is "auto" 389 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-end') is "auto" 390 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row') is "auto / auto" 391 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-start') is "auto" 392 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-end') is "auto" 393 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column') is "auto / auto" 394 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-start') is "auto" 395 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-end') is "auto" 396 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row') is "auto / auto" 397 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-start') is "auto" 398 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-end') is "auto" 399 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column') is "auto / auto" 400 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-start') is "auto" 401 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-column-end') is "auto" 402 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row') is "auto / auto" 403 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-start') is "auto" 404 PASS getComputedStyle(gridItem, '').getPropertyValue('-webkit-grid-row-end') is "auto" 231 405 PASS successfullyParsed is true 232 406 -
trunk/LayoutTests/fast/css-grid-layout/grid-item-column-row-get-set.html
r154438 r154996 51 51 -webkit-grid-column: auto/1; 52 52 -webkit-grid-row: 5/auto; 53 } 54 .gridItemWithString { 55 -webkit-grid-column: "first"; 56 -webkit-grid-row: "last"; 57 } 58 .gridItemWithSpanString { 59 -webkit-grid-column: 1 /span "first"; 60 -webkit-grid-row: -1 / span "last"; 61 } 62 .gridItemWithSpanNumberString { 63 -webkit-grid-column: 1 /span 3 "first"; 64 -webkit-grid-row: -1 / "last" 2 span ; 53 65 } 54 66 </style> … … 69 81 <div class="gridItemWithNegativePositiveInteger gridItemWithBothLongHand" id="gridItemWithBothShortLongHandElement"></div> 70 82 <div class="gridItemWithNoSpace" id="gridItemWithNoSpaceElement"></div> 83 <div class="gridItemWithString" id="gridItemWithString"></div> 84 <div class="gridItemWithSpanString" id="gridItemWithSpanString"></div> 85 <div class="gridItemWithSpanNumberString" id="gridItemWithSpanNumberString"></div> 71 86 <script> 72 87 description('Test that setting and getting grid-column and grid-row works as expected'); … … 85 100 testColumnRowCSSParsing("gridItemWithBothShortLongHandElement", "10 / 11", "4 / 5"); 86 101 testColumnRowCSSParsing("gridItemWithNoSpaceElement", "auto / 1", "5 / auto"); 102 testColumnRowCSSParsing("gridItemWithString", "1 first / auto", "1 last / auto"); 103 testColumnRowCSSParsing("gridItemWithSpanString", "1 / span 1 first", "-1 / span 1 last"); 104 testColumnRowCSSParsing("gridItemWithSpanNumberString", "1 / span 3 first", "-1 / span 2 last"); 87 105 88 106 debug(""); … … 108 126 testColumnRowJSParsing("auto / 5", "auto / 8"); 109 127 testColumnRowJSParsing("span / 3", "5 / span", "span 1 / 3", "5 / span 1"); 128 testColumnRowJSParsing("'first' span / 3", "5 / 'last' span", "span 1 first / 3", "5 / span 1 last"); 129 testColumnRowJSParsing("'first' / 'last'", "'nav' / 'last' span", "1 first / 1 last", "1 nav / span 1 last"); 130 testColumnRowJSParsing("3 'first' / 2 'last'", "5 'nav' / 'last' 7 span", "3 first / 2 last", "5 nav / span 7 last"); 131 testColumnRowJSParsing("3 'first' span / -3 'last'", "'last' 2 span / -1 'nav'", "span 3 first / -3 last", "span 2 last / -1 nav"); 110 132 111 133 debug(""); … … 144 166 testColumnRowInvalidJSParsing("span span / span span", "span span / span span"); 145 167 146 // Negative integer or 0 are invalid. 147 testColumnRowInvalidJSParsing("span -1 / -2 span", "-3 span / span -4"); 148 testColumnRowInvalidJSParsing("0 span / span 0", "span 0 / 0 span"); 168 // More than 1 <integer> and / or <string>. 169 testColumnRowInvalidJSParsing("5 5 / span 2", "4 4 / 3 span"); 170 testColumnRowInvalidJSParsing("5 'first' 'last' / span 2", "'first' 4 'last' / 3 span"); 171 testColumnRowInvalidJSParsing("5 / 'first' 'last' 2", "4 / 'first' 3 'last'"); 172 testColumnRowInvalidJSParsing("'first' 'last' / span 2", "'first' 'last' / 3 span"); 173 testColumnRowInvalidJSParsing("5 / 'first' 'last'", "4 / 'first' 'last'"); 174 testColumnRowInvalidJSParsing("5 5 span / 2", "span 4 4 / 3"); 175 testColumnRowInvalidJSParsing("span 3 5 / 1", "5 span 4 / 3"); 176 testColumnRowInvalidJSParsing("span 'last' 'first' / 1", "span 'first' 'last' / 3"); 177 testColumnRowInvalidJSParsing("2 / span 'last' 'first'", "3 / span 'first' 'last'"); 178 testColumnRowInvalidJSParsing("span 1 'last' 'first' / 1", "span 'first' 'last' 7 / 3"); 179 testColumnRowInvalidJSParsing("2 / span 'last' 3 'first'", "3 / span 'first' 5 'last'"); 180 testColumnRowInvalidJSParsing("1 span 2 'first' / 1", "1 span 'last' 7 / 3"); 181 testColumnRowInvalidJSParsing("2 / 3 span 3 'first'", "3 / 5 span 'first' 5"); 182 183 // Negative integer or 0 are invalid for spans. 184 testColumnRowInvalidJSParsing("span -1 / -2", "-3 span / -4"); 185 testColumnRowInvalidJSParsing("-1 / -2 span", "-3 / span -4"); 186 testColumnRowInvalidJSParsing("0 span / 0", "span 0 / 0"); 187 testColumnRowInvalidJSParsing("0 / span 0", "0 / 0 span"); 188 testColumnRowInvalidJSParsing("span -3 'first' / 3 'last'", "'last' -2 span / 1 'nav'"); 149 189 150 190 // Spans for both initial / end values are not allowed. 151 191 testColumnRowInvalidJSParsing("5 span / span 2", "span 4 / 3 span"); 192 testColumnRowInvalidJSParsing("'first' span / span 'last'", "span 4 'first' / 3 span 'last'"); 193 testColumnRowInvalidJSParsing("'first' 3 span / span 'last'", "span 'first' / 2 span 'last'"); 194 testColumnRowInvalidJSParsing("'first' -1 span / span 'last'", "span -2 'first' / span 'last'"); 195 196 // We don't allow span to be between the <integer> and the <string>. 197 testColumnRowInvalidJSParsing("'first' span 1 / 'last'", "2 span 'first' / 'last'"); 198 testColumnRowInvalidJSParsing("3 'first' / 2 span 'last'", "5 'nav' / 'last' span 7"); 199 testColumnRowInvalidJSParsing("3 / 1 span 2", "5 / 3 span 3"); 152 200 </script> 153 201 <script src="../js/resources/js-test-post.js"></script> -
trunk/Source/WebCore/ChangeLog
r154995 r154996 1 2013-08-28 Sergio Villar Senin <svillar@igalia.com> 2 3 [CSS Grid Layout] Add parsing for named grid lines 4 https://bugs.webkit.org/show_bug.cgi?id=119540 5 6 Reviewed by Andreas Kling. 7 8 From Blink r150381,r150587 by <jchaffraix@chromium.org> 9 10 Adds parsing support for named grid lines at <grid-line> level, 11 i.e., inside grid-{row|column}-{start|end}. This change covers 12 only the parsing, layout changes coming in a follow up patch. 13 14 * css/CSSComputedStyleDeclaration.cpp: 15 (WebCore::valueForGridPosition): 16 * css/CSSParser.cpp: 17 (WebCore::CSSParser::parseIntegerOrStringFromGridPosition): 18 (WebCore::CSSParser::parseGridPosition): 19 * css/CSSParser.h: 20 * css/StyleResolver.cpp: 21 (WebCore::createGridPosition): 22 * rendering/RenderGrid.cpp: 23 (WebCore::RenderGrid::resolveGridPositionFromStyle): 24 * rendering/style/GridPosition.h: 25 (WebCore::GridPosition::setExplicitPosition): 26 (WebCore::GridPosition::setSpanPosition): 27 (WebCore::GridPosition::integerPosition): 28 (WebCore::GridPosition::namedGridLine): 29 1 30 2013-09-03 Alexey Proskuryakov <ap@apple.com> 2 31 -
trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp
r154906 r154996 1154 1154 return cssValuePool().createIdentifierValue(CSSValueAuto); 1155 1155 1156 if (position.isInteger())1157 return cssValuePool().createValue(position.integerPosition(), CSSPrimitiveValue::CSS_NUMBER);1158 1159 1156 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); 1160 list->append(cssValuePool().createIdentifierValue(CSSValueSpan)); 1161 list->append(cssValuePool().createValue(position.spanPosition(), CSSPrimitiveValue::CSS_NUMBER)); 1157 if (position.isSpan()) { 1158 list->append(cssValuePool().createIdentifierValue(CSSValueSpan)); 1159 list->append(cssValuePool().createValue(position.spanPosition(), CSSPrimitiveValue::CSS_NUMBER)); 1160 } else 1161 list->append(cssValuePool().createValue(position.integerPosition(), CSSPrimitiveValue::CSS_NUMBER)); 1162 1163 if (!position.namedGridLine().isNull()) 1164 list->append(cssValuePool().createValue(position.namedGridLine(), CSSPrimitiveValue::CSS_STRING)); 1162 1165 return list.release(); 1163 1166 } -
trunk/Source/WebCore/css/CSSParser.cpp
r154877 r154996 4795 4795 } 4796 4796 4797 // The function parses [ <integer> || <string> ] in <grid-line> (which can be stand alone or with 'span'). 4798 bool CSSParser::parseIntegerOrStringFromGridPosition(RefPtr<CSSPrimitiveValue>& numericValue, RefPtr<CSSPrimitiveValue>& gridLineName) 4799 { 4800 CSSParserValue* value = m_valueList->current(); 4801 if (validUnit(value, FInteger) && value->fValue) { 4802 numericValue = createPrimitiveNumericValue(value); 4803 value = m_valueList->next(); 4804 if (value && value->unit == CSSPrimitiveValue::CSS_STRING) { 4805 gridLineName = createPrimitiveStringValue(m_valueList->current()); 4806 m_valueList->next(); 4807 } 4808 return true; 4809 } 4810 4811 if (value->unit == CSSPrimitiveValue::CSS_STRING) { 4812 gridLineName = createPrimitiveStringValue(m_valueList->current()); 4813 value = m_valueList->next(); 4814 if (value && validUnit(value, FInteger) && value->fValue) { 4815 numericValue = createPrimitiveNumericValue(value); 4816 m_valueList->next(); 4817 } 4818 return true; 4819 } 4820 4821 return false; 4822 } 4823 4797 4824 PassRefPtr<CSSValue> CSSParser::parseGridPosition() 4798 4825 { … … 4804 4831 4805 4832 RefPtr<CSSPrimitiveValue> numericValue; 4833 RefPtr<CSSPrimitiveValue> gridLineName; 4806 4834 bool hasSeenSpanKeyword = false; 4807 4835 4808 if (validUnit(value, FInteger) && value->fValue) { 4809 numericValue = createPrimitiveNumericValue(value); 4810 value = m_valueList->next(); 4836 if (parseIntegerOrStringFromGridPosition(numericValue, gridLineName)) { 4837 value = m_valueList->current(); 4811 4838 if (value && value->id == CSSValueSpan) { 4812 4839 hasSeenSpanKeyword = true; … … 4815 4842 } else if (value->id == CSSValueSpan) { 4816 4843 hasSeenSpanKeyword = true; 4817 value = m_valueList->next();4818 if (value && (validUnit(value, FInteger) && value->fValue)) {4819 numericValue = createPrimitiveNumericValue(value);4820 m_valueList->next(); 4821 }4822 }4823 4824 if (!hasSeenSpanKeyword)4825 return numericValue.release(); 4826 4827 if (! numericValue && hasSeenSpanKeyword)4828 return cssValuePool().createIdentifierValue(CSSValueSpan);4844 if (m_valueList->next()) 4845 parseIntegerOrStringFromGridPosition(numericValue, gridLineName); 4846 } 4847 4848 // Check that we have consumed all the value list. For shorthands, the parser will pass 4849 // the whole value list (including the opposite position). 4850 if (m_valueList->current() && !isForwardSlashOperator(m_valueList->current())) 4851 return 0; 4852 4853 // If we didn't parse anything, this is not a valid grid position. 4854 if (!hasSeenSpanKeyword && !gridLineName && !numericValue) 4855 return 0; 4829 4856 4830 4857 // Negative numbers are not allowed for span (but are for <integer>). 4831 if ( numericValue && numericValue->getIntValue() < 0)4858 if (hasSeenSpanKeyword && numericValue && numericValue->getIntValue() < 0) 4832 4859 return 0; 4833 4860 4834 4861 RefPtr<CSSValueList> values = CSSValueList::createSpaceSeparated(); 4835 values->append(cssValuePool().createIdentifierValue(CSSValueSpan)); 4862 if (hasSeenSpanKeyword) 4863 values->append(cssValuePool().createIdentifierValue(CSSValueSpan)); 4836 4864 if (numericValue) 4837 4865 values->append(numericValue.release()); 4866 if (gridLineName) 4867 values->append(gridLineName.release()); 4868 ASSERT(values->length()); 4838 4869 return values.release(); 4839 4870 } -
trunk/Source/WebCore/css/CSSParser.h
r154133 r154996 572 572 bool parseColor(const String&); 573 573 574 bool parseIntegerOrStringFromGridPosition(RefPtr<CSSPrimitiveValue>& numericValue, RefPtr<CSSPrimitiveValue>& gridLineName); 575 574 576 enum ParsingMode { 575 577 NormalMode, -
trunk/Source/WebCore/css/StyleResolver.cpp
r154909 r154996 1974 1974 static bool createGridPosition(CSSValue* value, GridPosition& position) 1975 1975 { 1976 // For now, we only accept: 'auto' | <integer>| span && <integer>?1976 // For now, we only accept: 'auto' | [ <integer> || <string> ] | span && <integer>? 1977 1977 if (value->isPrimitiveValue()) { 1978 #if !ASSERT_DISABLED 1978 1979 CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value); 1979 if (primitiveValue->getValueID() == CSSValueAuto) 1980 return true; 1981 1982 if (primitiveValue->getValueID() == CSSValueSpan) { 1983 // If the <integer> is omitted, it defaults to '1'. 1984 position.setSpanPosition(1); 1985 return true; 1986 } 1987 1988 ASSERT(primitiveValue->isNumber()); 1989 position.setIntegerPosition(primitiveValue->getIntValue()); 1980 ASSERT(primitiveValue->getValueID() == CSSValueAuto); 1981 #endif 1990 1982 return true; 1991 1983 } … … 1993 1985 ASSERT_WITH_SECURITY_IMPLICATION(value->isValueList()); 1994 1986 CSSValueList* values = static_cast<CSSValueList*>(value); 1995 ASSERT(values->length() == 2); 1996 ASSERT_WITH_SECURITY_IMPLICATION(values->itemWithoutBoundsCheck(1)->isPrimitiveValue()); 1997 CSSPrimitiveValue* numericValue = static_cast<CSSPrimitiveValue*>(values->itemWithoutBoundsCheck(1)); 1998 ASSERT(numericValue->isNumber()); 1999 position.setSpanPosition(numericValue->getIntValue()); 1987 ASSERT(values->length()); 1988 1989 bool isSpanPosition = false; 1990 // The specification makes the <integer> optional, in which case it default to '1'. 1991 int gridLineNumber = 1; 1992 String gridLineName; 1993 1994 CSSValueListIterator it = values; 1995 CSSPrimitiveValue* currentValue = static_cast<CSSPrimitiveValue*>(it.value()); 1996 if (currentValue->getValueID() == CSSValueSpan) { 1997 isSpanPosition = true; 1998 it.advance(); 1999 currentValue = it.hasMore() ? static_cast<CSSPrimitiveValue*>(it.value()) : 0; 2000 } 2001 2002 if (currentValue && currentValue->isNumber()) { 2003 gridLineNumber = currentValue->getIntValue(); 2004 it.advance(); 2005 currentValue = it.hasMore() ? static_cast<CSSPrimitiveValue*>(it.value()) : 0; 2006 } 2007 2008 if (currentValue && currentValue->isString()) { 2009 gridLineName = currentValue->getStringValue(); 2010 it.advance(); 2011 } 2012 2013 ASSERT(!it.hasMore()); 2014 if (isSpanPosition) 2015 position.setSpanPosition(gridLineNumber, gridLineName); 2016 else 2017 position.setExplicitPosition(gridLineNumber, gridLineName); 2018 2000 2019 return true; 2001 2020 } -
trunk/Source/WebCore/rendering/RenderGrid.cpp
r154753 r154996 767 767 // FIXME: Handle other values for grid-{row,column} like ranges or line names. 768 768 switch (position.type()) { 769 case IntegerPosition: {769 case ExplicitPosition: { 770 770 ASSERT(position.integerPosition()); 771 771 if (position.isPositive()) -
trunk/Source/WebCore/rendering/style/GridPosition.h
r154753 r154996 32 32 #define GridPosition_h 33 33 34 #include <wtf/text/WTFString.h> 35 34 36 namespace WebCore { 35 37 36 38 enum GridPositionType { 37 39 AutoPosition, 38 IntegerPosition,40 ExplicitPosition, // [ <integer> || <string> ] 39 41 SpanPosition 40 42 }; … … 52 54 GridPositionType type() const { return m_type; } 53 55 bool isAuto() const { return m_type == AutoPosition; } 54 bool isInteger() const { return m_type == IntegerPosition; }55 56 bool isSpan() const { return m_type == SpanPosition; } 56 57 57 void set IntegerPosition(int position)58 void setExplicitPosition(int position, const String& namedGridLine) 58 59 { 59 m_type = IntegerPosition;60 m_type = ExplicitPosition; 60 61 m_integerPosition = position; 62 m_namedGridLine = namedGridLine; 61 63 } 62 64 … … 64 66 // be. This means that we have to convert the span position to an integer, losing 65 67 // some precision here. It shouldn't be an issue in practice though. 66 void setSpanPosition(int position )68 void setSpanPosition(int position, const String& namedGridLine) 67 69 { 68 70 m_type = SpanPosition; 69 71 m_integerPosition = position; 72 m_namedGridLine = namedGridLine; 70 73 } 71 74 72 75 int integerPosition() const 73 76 { 74 ASSERT(type() == IntegerPosition);77 ASSERT(type() == ExplicitPosition); 75 78 return m_integerPosition; 79 } 80 81 String namedGridLine() const 82 { 83 ASSERT(type() == ExplicitPosition || type() == SpanPosition); 84 return m_namedGridLine; 76 85 } 77 86 … … 94 103 GridPositionType m_type; 95 104 int m_integerPosition; 105 String m_namedGridLine; 96 106 }; 97 107
Note: See TracChangeset
for help on using the changeset viewer.