Changeset 206161 in webkit


Ignore:
Timestamp:
Sep 20, 2016 11:41:43 AM (8 years ago)
Author:
jfernandez@igalia.com
Message:

[css-grid] The 'grid' shorthand has a new syntax.
https://bugs.webkit.org/show_bug.cgi?id=161954

Reviewed by Darin Adler.

Source/WebCore:

Implementation of the new CSS syntax for the 'grid' shorthand, as
defined in the CSS Grid Layout specification:

No new tests, just adapted the ones we already have and added a few additional test cases.

  • css/CSSValueKeywords.in:
  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseImplicitAutoFlow): Added. Similar to parseGridAutoFlow, but using the new 'auto-flow' keyword.
(WebCore::CSSParser::parseGridShorthand): New syntax of the 'grid' shorthand.

  • css/parser/CSSParser.h:

LayoutTests:

Adapted the already defined test cases to the new syntax of the
'grid' shorthand. Also added a few additional test cases.

  • fast/css-grid-layout/grid-shorthand-get-set-expected.txt:
  • fast/css-grid-layout/grid-shorthand-get-set.html:
Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r206155 r206161  
     12016-09-20  Javier Fernandez  <jfernandez@igalia.com>
     2
     3        [css-grid] The 'grid' shorthand has a new syntax.
     4        https://bugs.webkit.org/show_bug.cgi?id=161954
     5
     6        Reviewed by Darin Adler.
     7
     8        Adapted the already defined test cases to the new syntax of the
     9        'grid' shorthand. Also added a few additional test cases.
     10
     11        * fast/css-grid-layout/grid-shorthand-get-set-expected.txt:
     12        * fast/css-grid-layout/grid-shorthand-get-set.html:
     13
    1142016-09-20  Ryan Haddad  <ryanhaddad@apple.com>
    215
  • trunk/LayoutTests/fast/css-grid-layout/grid-shorthand-get-set-expected.txt

    r203716 r206161  
    55
    66Test getting the longhand values when shorthand is set through CSS.
    7 PASS window.getComputedStyle(gridWithDense, '').getPropertyValue('grid-template-columns') is "none"
    8 PASS window.getComputedStyle(gridWithDense, '').getPropertyValue('grid-template-rows') is "none"
    9 PASS window.getComputedStyle(gridWithDense, '').getPropertyValue('grid-template-areas') is "none"
    10 PASS window.getComputedStyle(gridWithDense, '').getPropertyValue('grid-auto-flow') is "row dense"
    11 PASS window.getComputedStyle(gridWithDense, '').getPropertyValue('grid-auto-columns') is "auto"
    12 PASS window.getComputedStyle(gridWithDense, '').getPropertyValue('grid-auto-rows') is "auto"
     7PASS window.getComputedStyle(gridWithNone, '').getPropertyValue('grid-template-columns') is "none"
     8PASS window.getComputedStyle(gridWithNone, '').getPropertyValue('grid-template-rows') is "none"
     9PASS window.getComputedStyle(gridWithNone, '').getPropertyValue('grid-template-areas') is "none"
     10PASS window.getComputedStyle(gridWithNone, '').getPropertyValue('grid-auto-flow') is "row"
     11PASS window.getComputedStyle(gridWithNone, '').getPropertyValue('grid-auto-columns') is "auto"
     12PASS window.getComputedStyle(gridWithNone, '').getPropertyValue('grid-auto-rows') is "auto"
    1313PASS window.getComputedStyle(gridWithTemplate, '').getPropertyValue('grid-template-columns') is "15px"
    1414PASS window.getComputedStyle(gridWithTemplate, '').getPropertyValue('grid-template-rows') is "10px"
     
    1717PASS window.getComputedStyle(gridWithTemplate, '').getPropertyValue('grid-auto-columns') is "auto"
    1818PASS window.getComputedStyle(gridWithTemplate, '').getPropertyValue('grid-auto-rows') is "auto"
    19 PASS window.getComputedStyle(gridWithTemplate1, '').getPropertyValue('grid-template-columns') is "none"
    20 PASS window.getComputedStyle(gridWithTemplate1, '').getPropertyValue('grid-template-rows') is "10px"
    21 PASS window.getComputedStyle(gridWithTemplate1, '').getPropertyValue('grid-template-areas') is "none"
    22 PASS window.getComputedStyle(gridWithTemplate1, '').getPropertyValue('grid-auto-flow') is "row"
    23 PASS window.getComputedStyle(gridWithTemplate1, '').getPropertyValue('grid-auto-columns') is "auto"
    24 PASS window.getComputedStyle(gridWithTemplate1, '').getPropertyValue('grid-auto-rows') is "auto"
    25 PASS window.getComputedStyle(gridWithTemplateNone, '').getPropertyValue('grid-template-columns') is "none"
    26 PASS window.getComputedStyle(gridWithTemplateNone, '').getPropertyValue('grid-template-rows') is "10px"
    27 PASS window.getComputedStyle(gridWithTemplateNone, '').getPropertyValue('grid-template-areas') is "none"
    28 PASS window.getComputedStyle(gridWithTemplateNone, '').getPropertyValue('grid-auto-flow') is "row"
    29 PASS window.getComputedStyle(gridWithTemplateNone, '').getPropertyValue('grid-auto-columns') is "auto"
    30 PASS window.getComputedStyle(gridWithTemplateNone, '').getPropertyValue('grid-auto-rows') is "auto"
    31 PASS window.getComputedStyle(gridWithAutoFlowDenseAndRowsAndColumns, '').getPropertyValue('grid-template-columns') is "none"
    32 PASS window.getComputedStyle(gridWithAutoFlowDenseAndRowsAndColumns, '').getPropertyValue('grid-template-rows') is "none"
    33 PASS window.getComputedStyle(gridWithAutoFlowDenseAndRowsAndColumns, '').getPropertyValue('grid-template-areas') is "none"
    34 PASS window.getComputedStyle(gridWithAutoFlowDenseAndRowsAndColumns, '').getPropertyValue('grid-auto-flow') is "row dense"
    35 PASS window.getComputedStyle(gridWithAutoFlowDenseAndRowsAndColumns, '').getPropertyValue('grid-auto-columns') is "20px"
    36 PASS window.getComputedStyle(gridWithAutoFlowDenseAndRowsAndColumns, '').getPropertyValue('grid-auto-rows') is "10px"
    37 PASS window.getComputedStyle(gridWithAutoFlowAndRows, '').getPropertyValue('grid-template-columns') is "none"
    38 PASS window.getComputedStyle(gridWithAutoFlowAndRows, '').getPropertyValue('grid-template-rows') is "none"
    39 PASS window.getComputedStyle(gridWithAutoFlowAndRows, '').getPropertyValue('grid-template-areas') is "none"
    40 PASS window.getComputedStyle(gridWithAutoFlowAndRows, '').getPropertyValue('grid-auto-flow') is "column"
    41 PASS window.getComputedStyle(gridWithAutoFlowAndRows, '').getPropertyValue('grid-auto-columns') is "10px"
    42 PASS window.getComputedStyle(gridWithAutoFlowAndRows, '').getPropertyValue('grid-auto-rows') is "10px"
    43 PASS window.getComputedStyle(gridWithAutoFlowDense, '').getPropertyValue('grid-template-columns') is "none"
    44 PASS window.getComputedStyle(gridWithAutoFlowDense, '').getPropertyValue('grid-template-rows') is "none"
    45 PASS window.getComputedStyle(gridWithAutoFlowDense, '').getPropertyValue('grid-template-areas') is "none"
    46 PASS window.getComputedStyle(gridWithAutoFlowDense, '').getPropertyValue('grid-auto-flow') is "row dense"
    47 PASS window.getComputedStyle(gridWithAutoFlowDense, '').getPropertyValue('grid-auto-columns') is "10px"
    48 PASS window.getComputedStyle(gridWithAutoFlowDense, '').getPropertyValue('grid-auto-rows') is "10px"
     19PASS window.getComputedStyle(gridInherit, '').getPropertyValue('grid-template-columns') is "15px"
     20PASS window.getComputedStyle(gridInherit, '').getPropertyValue('grid-template-rows') is "10px"
     21PASS window.getComputedStyle(gridInherit, '').getPropertyValue('grid-template-areas') is "none"
     22PASS window.getComputedStyle(gridInherit, '').getPropertyValue('grid-auto-flow') is "row"
     23PASS window.getComputedStyle(gridInherit, '').getPropertyValue('grid-auto-columns') is "auto"
     24PASS window.getComputedStyle(gridInherit, '').getPropertyValue('grid-auto-rows') is "auto"
     25PASS window.getComputedStyle(gridNoInherit, '').getPropertyValue('grid-template-columns') is "none"
     26PASS window.getComputedStyle(gridNoInherit, '').getPropertyValue('grid-template-rows') is "none"
     27PASS window.getComputedStyle(gridNoInherit, '').getPropertyValue('grid-template-areas') is "none"
     28PASS window.getComputedStyle(gridNoInherit, '').getPropertyValue('grid-auto-flow') is "row"
     29PASS window.getComputedStyle(gridNoInherit, '').getPropertyValue('grid-auto-columns') is "auto"
     30PASS window.getComputedStyle(gridNoInherit, '').getPropertyValue('grid-auto-rows') is "auto"
     31PASS window.getComputedStyle(gridColumnsAndAutoFlow, '').getPropertyValue('grid-template-columns') is "10px"
     32PASS window.getComputedStyle(gridColumnsAndAutoFlow, '').getPropertyValue('grid-template-rows') is "none"
     33PASS window.getComputedStyle(gridColumnsAndAutoFlow, '').getPropertyValue('grid-template-areas') is "none"
     34PASS window.getComputedStyle(gridColumnsAndAutoFlow, '').getPropertyValue('grid-auto-flow') is "row"
     35PASS window.getComputedStyle(gridColumnsAndAutoFlow, '').getPropertyValue('grid-auto-columns') is "auto"
     36PASS window.getComputedStyle(gridColumnsAndAutoFlow, '').getPropertyValue('grid-auto-rows') is "auto"
     37PASS window.getComputedStyle(gridWithAutoFlowAndAutoRows, '').getPropertyValue('grid-template-columns') is "none"
     38PASS window.getComputedStyle(gridWithAutoFlowAndAutoRows, '').getPropertyValue('grid-template-rows') is "none"
     39PASS window.getComputedStyle(gridWithAutoFlowAndAutoRows, '').getPropertyValue('grid-template-areas') is "none"
     40PASS window.getComputedStyle(gridWithAutoFlowAndAutoRows, '').getPropertyValue('grid-auto-flow') is "row"
     41PASS window.getComputedStyle(gridWithAutoFlowAndAutoRows, '').getPropertyValue('grid-auto-columns') is "auto"
     42PASS window.getComputedStyle(gridWithAutoFlowAndAutoRows, '').getPropertyValue('grid-auto-rows') is "10px"
    4943PASS window.getComputedStyle(gridWithAutoFlowColumnDense, '').getPropertyValue('grid-template-columns') is "none"
    5044PASS window.getComputedStyle(gridWithAutoFlowColumnDense, '').getPropertyValue('grid-template-rows') is "none"
    5145PASS window.getComputedStyle(gridWithAutoFlowColumnDense, '').getPropertyValue('grid-template-areas') is "none"
    5246PASS window.getComputedStyle(gridWithAutoFlowColumnDense, '').getPropertyValue('grid-auto-flow') is "column dense"
    53 PASS window.getComputedStyle(gridWithAutoFlowColumnDense, '').getPropertyValue('grid-auto-columns') is "10px"
    54 PASS window.getComputedStyle(gridWithAutoFlowColumnDense, '').getPropertyValue('grid-auto-rows') is "10px"
     47PASS window.getComputedStyle(gridWithAutoFlowColumnDense, '').getPropertyValue('grid-auto-columns') is "auto"
     48PASS window.getComputedStyle(gridWithAutoFlowColumnDense, '').getPropertyValue('grid-auto-rows') is "auto"
    5549PASS window.getComputedStyle(gridWithAutoFlowDenseRow, '').getPropertyValue('grid-template-columns') is "none"
    5650PASS window.getComputedStyle(gridWithAutoFlowDenseRow, '').getPropertyValue('grid-template-rows') is "none"
    5751PASS window.getComputedStyle(gridWithAutoFlowDenseRow, '').getPropertyValue('grid-template-areas') is "none"
    5852PASS window.getComputedStyle(gridWithAutoFlowDenseRow, '').getPropertyValue('grid-auto-flow') is "row dense"
    59 PASS window.getComputedStyle(gridWithAutoFlowDenseRow, '').getPropertyValue('grid-auto-columns') is "10px"
    60 PASS window.getComputedStyle(gridWithAutoFlowDenseRow, '').getPropertyValue('grid-auto-rows') is "10px"
    61 PASS window.getComputedStyle(gridWithAutoFlowAndRowsAndColumns, '').getPropertyValue('grid-template-columns') is "none"
    62 PASS window.getComputedStyle(gridWithAutoFlowAndRowsAndColumns, '').getPropertyValue('grid-template-rows') is "none"
    63 PASS window.getComputedStyle(gridWithAutoFlowAndRowsAndColumns, '').getPropertyValue('grid-template-areas') is "none"
    64 PASS window.getComputedStyle(gridWithAutoFlowAndRowsAndColumns, '').getPropertyValue('grid-auto-flow') is "column"
    65 PASS window.getComputedStyle(gridWithAutoFlowAndRowsAndColumns, '').getPropertyValue('grid-auto-columns') is "20px"
    66 PASS window.getComputedStyle(gridWithAutoFlowAndRowsAndColumns, '').getPropertyValue('grid-auto-rows') is "10px"
    67 PASS window.getComputedStyle(gridWithAutoFlowAndMultipleAutoTracks, '').getPropertyValue('grid-template-columns') is "none"
     53PASS window.getComputedStyle(gridWithAutoFlowDenseRow, '').getPropertyValue('grid-auto-columns') is "auto"
     54PASS window.getComputedStyle(gridWithAutoFlowDenseRow, '').getPropertyValue('grid-auto-rows') is "auto"
     55PASS window.getComputedStyle(gridWithAutoFlowAndAutoRowsAndColumns, '').getPropertyValue('grid-template-columns') is "20px"
     56PASS window.getComputedStyle(gridWithAutoFlowAndAutoRowsAndColumns, '').getPropertyValue('grid-template-rows') is "none"
     57PASS window.getComputedStyle(gridWithAutoFlowAndAutoRowsAndColumns, '').getPropertyValue('grid-template-areas') is "none"
     58PASS window.getComputedStyle(gridWithAutoFlowAndAutoRowsAndColumns, '').getPropertyValue('grid-auto-flow') is "row"
     59PASS window.getComputedStyle(gridWithAutoFlowAndAutoRowsAndColumns, '').getPropertyValue('grid-auto-columns') is "auto"
     60PASS window.getComputedStyle(gridWithAutoFlowAndAutoRowsAndColumns, '').getPropertyValue('grid-auto-rows') is "10px"
     61PASS window.getComputedStyle(gridWithAutoFlowAndMultipleAutoTracks, '').getPropertyValue('grid-template-columns') is "100px 50px"
    6862PASS window.getComputedStyle(gridWithAutoFlowAndMultipleAutoTracks, '').getPropertyValue('grid-template-rows') is "none"
    6963PASS window.getComputedStyle(gridWithAutoFlowAndMultipleAutoTracks, '').getPropertyValue('grid-template-areas') is "none"
    7064PASS window.getComputedStyle(gridWithAutoFlowAndMultipleAutoTracks, '').getPropertyValue('grid-auto-flow') is "row"
    71 PASS window.getComputedStyle(gridWithAutoFlowAndMultipleAutoTracks, '').getPropertyValue('grid-auto-columns') is "100px 10%"
     65PASS window.getComputedStyle(gridWithAutoFlowAndMultipleAutoTracks, '').getPropertyValue('grid-auto-columns') is "auto"
    7266PASS window.getComputedStyle(gridWithAutoFlowAndMultipleAutoTracks, '').getPropertyValue('grid-auto-rows') is "20px 10px"
    73 
    74 Test setting wrong values for 'grid' shorthand through CSS (they should resolve to the default: 'row')
    75 PASS window.getComputedStyle(gridWithNone, '').getPropertyValue('grid-template-columns') is "none"
    76 PASS window.getComputedStyle(gridWithNone, '').getPropertyValue('grid-template-rows') is "none"
    77 PASS window.getComputedStyle(gridWithNone, '').getPropertyValue('grid-template-areas') is "none"
    78 PASS window.getComputedStyle(gridWithNone, '').getPropertyValue('grid-auto-flow') is "row"
    79 PASS window.getComputedStyle(gridWithNone, '').getPropertyValue('grid-auto-columns') is "auto"
    80 PASS window.getComputedStyle(gridWithNone, '').getPropertyValue('grid-auto-rows') is "auto"
    81 PASS window.getComputedStyle(gridWithAutoFlowNoneAndRowsAndColumns, '').getPropertyValue('grid-template-columns') is "none"
    82 PASS window.getComputedStyle(gridWithAutoFlowNoneAndRowsAndColumns, '').getPropertyValue('grid-template-rows') is "none"
    83 PASS window.getComputedStyle(gridWithAutoFlowNoneAndRowsAndColumns, '').getPropertyValue('grid-template-areas') is "none"
    84 PASS window.getComputedStyle(gridWithAutoFlowNoneAndRowsAndColumns, '').getPropertyValue('grid-auto-flow') is "row"
    85 PASS window.getComputedStyle(gridWithAutoFlowNoneAndRowsAndColumns, '').getPropertyValue('grid-auto-columns') is "auto"
    86 PASS window.getComputedStyle(gridWithAutoFlowNoneAndRowsAndColumns, '').getPropertyValue('grid-auto-rows') is "auto"
    87 PASS window.getComputedStyle(gridWithAutoFlowNone, '').getPropertyValue('grid-template-columns') is "none"
    88 PASS window.getComputedStyle(gridWithAutoFlowNone, '').getPropertyValue('grid-template-rows') is "none"
    89 PASS window.getComputedStyle(gridWithAutoFlowNone, '').getPropertyValue('grid-template-areas') is "none"
    90 PASS window.getComputedStyle(gridWithAutoFlowNone, '').getPropertyValue('grid-auto-flow') is "row"
    91 PASS window.getComputedStyle(gridWithAutoFlowNone, '').getPropertyValue('grid-auto-columns') is "auto"
    92 PASS window.getComputedStyle(gridWithAutoFlowNone, '').getPropertyValue('grid-auto-rows') is "auto"
    93 PASS window.getComputedStyle(gridWithExplicitAndImplicit, '').getPropertyValue('grid-template-columns') is "none"
    94 PASS window.getComputedStyle(gridWithExplicitAndImplicit, '').getPropertyValue('grid-template-rows') is "none"
    95 PASS window.getComputedStyle(gridWithExplicitAndImplicit, '').getPropertyValue('grid-template-areas') is "none"
    96 PASS window.getComputedStyle(gridWithExplicitAndImplicit, '').getPropertyValue('grid-auto-flow') is "row"
    97 PASS window.getComputedStyle(gridWithExplicitAndImplicit, '').getPropertyValue('grid-auto-columns') is "auto"
    98 PASS window.getComputedStyle(gridWithExplicitAndImplicit, '').getPropertyValue('grid-auto-rows') is "auto"
     67PASS window.getComputedStyle(gridWithRowsAndAutoFlow, '').getPropertyValue('grid-template-columns') is "none"
     68PASS window.getComputedStyle(gridWithRowsAndAutoFlow, '').getPropertyValue('grid-template-rows') is "10px"
     69PASS window.getComputedStyle(gridWithRowsAndAutoFlow, '').getPropertyValue('grid-template-areas') is "none"
     70PASS window.getComputedStyle(gridWithRowsAndAutoFlow, '').getPropertyValue('grid-auto-flow') is "column"
     71PASS window.getComputedStyle(gridWithRowsAndAutoFlow, '').getPropertyValue('grid-auto-columns') is "auto"
     72PASS window.getComputedStyle(gridWithRowsAndAutoFlow, '').getPropertyValue('grid-auto-rows') is "auto"
     73PASS window.getComputedStyle(gridWithRowsNoneAndAutoFlowAndAutoColumn, '').getPropertyValue('grid-template-columns') is "none"
     74PASS window.getComputedStyle(gridWithRowsNoneAndAutoFlowAndAutoColumn, '').getPropertyValue('grid-template-rows') is "none"
     75PASS window.getComputedStyle(gridWithRowsNoneAndAutoFlowAndAutoColumn, '').getPropertyValue('grid-template-areas') is "none"
     76PASS window.getComputedStyle(gridWithRowsNoneAndAutoFlowAndAutoColumn, '').getPropertyValue('grid-auto-flow') is "column"
     77PASS window.getComputedStyle(gridWithRowsNoneAndAutoFlowAndAutoColumn, '').getPropertyValue('grid-auto-columns') is "10px"
     78PASS window.getComputedStyle(gridWithRowsNoneAndAutoFlowAndAutoColumn, '').getPropertyValue('grid-auto-rows') is "auto"
     79PASS window.getComputedStyle(gridWithRowsAndAutoFlowDenseColumn, '').getPropertyValue('grid-template-columns') is "none"
     80PASS window.getComputedStyle(gridWithRowsAndAutoFlowDenseColumn, '').getPropertyValue('grid-template-rows') is "10px"
     81PASS window.getComputedStyle(gridWithRowsAndAutoFlowDenseColumn, '').getPropertyValue('grid-template-areas') is "none"
     82PASS window.getComputedStyle(gridWithRowsAndAutoFlowDenseColumn, '').getPropertyValue('grid-auto-flow') is "column dense"
     83PASS window.getComputedStyle(gridWithRowsAndAutoFlowDenseColumn, '').getPropertyValue('grid-auto-columns') is "auto"
     84PASS window.getComputedStyle(gridWithRowsAndAutoFlowDenseColumn, '').getPropertyValue('grid-auto-rows') is "auto"
     85PASS window.getComputedStyle(gridWithColumnsAndDenseAutoFlow, '').getPropertyValue('grid-template-columns') is "10px"
     86PASS window.getComputedStyle(gridWithColumnsAndDenseAutoFlow, '').getPropertyValue('grid-template-rows') is "none"
     87PASS window.getComputedStyle(gridWithColumnsAndDenseAutoFlow, '').getPropertyValue('grid-template-areas') is "none"
     88PASS window.getComputedStyle(gridWithColumnsAndDenseAutoFlow, '').getPropertyValue('grid-auto-flow') is "row dense"
     89PASS window.getComputedStyle(gridWithColumnsAndDenseAutoFlow, '').getPropertyValue('grid-auto-columns') is "auto"
     90PASS window.getComputedStyle(gridWithColumnsAndDenseAutoFlow, '').getPropertyValue('grid-auto-rows') is "auto"
     91PASS window.getComputedStyle(gridWithRowsAndAutoFlowAndAutoColumns, '').getPropertyValue('grid-template-columns') is "none"
     92PASS window.getComputedStyle(gridWithRowsAndAutoFlowAndAutoColumns, '').getPropertyValue('grid-template-rows') is "20px"
     93PASS window.getComputedStyle(gridWithRowsAndAutoFlowAndAutoColumns, '').getPropertyValue('grid-template-areas') is "none"
     94PASS window.getComputedStyle(gridWithRowsAndAutoFlowAndAutoColumns, '').getPropertyValue('grid-auto-flow') is "column"
     95PASS window.getComputedStyle(gridWithRowsAndAutoFlowAndAutoColumns, '').getPropertyValue('grid-auto-columns') is "10px"
     96PASS window.getComputedStyle(gridWithRowsAndAutoFlowAndAutoColumns, '').getPropertyValue('grid-auto-rows') is "auto"
     97PASS window.getComputedStyle(gridWithRowsAndAutoFlowAndMultipleAutoTracks, '').getPropertyValue('grid-template-columns') is "none"
     98PASS window.getComputedStyle(gridWithRowsAndAutoFlowAndMultipleAutoTracks, '').getPropertyValue('grid-template-rows') is "100px 50px"
     99PASS window.getComputedStyle(gridWithRowsAndAutoFlowAndMultipleAutoTracks, '').getPropertyValue('grid-template-areas') is "none"
     100PASS window.getComputedStyle(gridWithRowsAndAutoFlowAndMultipleAutoTracks, '').getPropertyValue('grid-auto-flow') is "column"
     101PASS window.getComputedStyle(gridWithRowsAndAutoFlowAndMultipleAutoTracks, '').getPropertyValue('grid-auto-columns') is "20px 10px"
     102PASS window.getComputedStyle(gridWithRowsAndAutoFlowAndMultipleAutoTracks, '').getPropertyValue('grid-auto-rows') is "auto"
     103
     104Test getting wrong values for 'grid' shorthand through CSS (they should resolve to the default: 'none')
     105PASS window.getComputedStyle(gridWithMisplacedAutoColumn, '').getPropertyValue('grid-template-columns') is "none"
     106PASS window.getComputedStyle(gridWithMisplacedAutoColumn, '').getPropertyValue('grid-template-rows') is "none"
     107PASS window.getComputedStyle(gridWithMisplacedAutoColumn, '').getPropertyValue('grid-template-areas') is "none"
     108PASS window.getComputedStyle(gridWithMisplacedAutoColumn, '').getPropertyValue('grid-auto-flow') is "row"
     109PASS window.getComputedStyle(gridWithMisplacedAutoColumn, '').getPropertyValue('grid-auto-columns') is "auto"
     110PASS window.getComputedStyle(gridWithMisplacedAutoColumn, '').getPropertyValue('grid-auto-rows') is "auto"
    99111PASS window.getComputedStyle(gridWithMisplacedNone1, '').getPropertyValue('grid-template-columns') is "none"
    100112PASS window.getComputedStyle(gridWithMisplacedNone1, '').getPropertyValue('grid-template-rows') is "none"
     
    115127PASS window.getComputedStyle(gridWithMisplacedDense, '').getPropertyValue('grid-auto-columns') is "auto"
    116128PASS window.getComputedStyle(gridWithMisplacedDense, '').getPropertyValue('grid-auto-rows') is "auto"
    117 PASS window.getComputedStyle(gridWithWrongSlash1, '').getPropertyValue('grid-template-columns') is "none"
    118 PASS window.getComputedStyle(gridWithWrongSlash1, '').getPropertyValue('grid-template-rows') is "none"
    119 PASS window.getComputedStyle(gridWithWrongSlash1, '').getPropertyValue('grid-template-areas') is "none"
    120 PASS window.getComputedStyle(gridWithWrongSlash1, '').getPropertyValue('grid-auto-flow') is "row"
    121 PASS window.getComputedStyle(gridWithWrongSlash1, '').getPropertyValue('grid-auto-columns') is "auto"
    122 PASS window.getComputedStyle(gridWithWrongSlash1, '').getPropertyValue('grid-auto-rows') is "auto"
    123 PASS window.getComputedStyle(gridWithWrongSlash2, '').getPropertyValue('grid-template-columns') is "none"
    124 PASS window.getComputedStyle(gridWithWrongSlash2, '').getPropertyValue('grid-template-rows') is "none"
    125 PASS window.getComputedStyle(gridWithWrongSlash2, '').getPropertyValue('grid-template-areas') is "none"
    126 PASS window.getComputedStyle(gridWithWrongSlash2, '').getPropertyValue('grid-auto-flow') is "row"
    127 PASS window.getComputedStyle(gridWithWrongSlash2, '').getPropertyValue('grid-auto-columns') is "auto"
    128 PASS window.getComputedStyle(gridWithWrongSlash2, '').getPropertyValue('grid-auto-rows') is "auto"
    129 PASS window.getComputedStyle(gridWithAutoFlowRowAndColumn, '').getPropertyValue('grid-template-columns') is "none"
    130 PASS window.getComputedStyle(gridWithAutoFlowRowAndColumn, '').getPropertyValue('grid-template-rows') is "none"
    131 PASS window.getComputedStyle(gridWithAutoFlowRowAndColumn, '').getPropertyValue('grid-template-areas') is "none"
    132 PASS window.getComputedStyle(gridWithAutoFlowRowAndColumn, '').getPropertyValue('grid-auto-flow') is "row"
    133 PASS window.getComputedStyle(gridWithAutoFlowRowAndColumn, '').getPropertyValue('grid-auto-columns') is "auto"
    134 PASS window.getComputedStyle(gridWithAutoFlowRowAndColumn, '').getPropertyValue('grid-auto-rows') is "auto"
    135 PASS window.getComputedStyle(gridWithAutoFlowString1, '').getPropertyValue('grid-template-columns') is "none"
    136 PASS window.getComputedStyle(gridWithAutoFlowString1, '').getPropertyValue('grid-template-rows') is "none"
    137 PASS window.getComputedStyle(gridWithAutoFlowString1, '').getPropertyValue('grid-template-areas') is "none"
    138 PASS window.getComputedStyle(gridWithAutoFlowString1, '').getPropertyValue('grid-auto-flow') is "row"
    139 PASS window.getComputedStyle(gridWithAutoFlowString1, '').getPropertyValue('grid-auto-columns') is "auto"
    140 PASS window.getComputedStyle(gridWithAutoFlowString1, '').getPropertyValue('grid-auto-rows') is "auto"
    141 PASS window.getComputedStyle(gridWithAutoFlowString2, '').getPropertyValue('grid-template-columns') is "none"
    142 PASS window.getComputedStyle(gridWithAutoFlowString2, '').getPropertyValue('grid-template-rows') is "none"
    143 PASS window.getComputedStyle(gridWithAutoFlowString2, '').getPropertyValue('grid-template-areas') is "none"
    144 PASS window.getComputedStyle(gridWithAutoFlowString2, '').getPropertyValue('grid-auto-flow') is "row"
    145 PASS window.getComputedStyle(gridWithAutoFlowString2, '').getPropertyValue('grid-auto-columns') is "auto"
    146 PASS window.getComputedStyle(gridWithAutoFlowString2, '').getPropertyValue('grid-auto-rows') is "auto"
    147 PASS window.getComputedStyle(gridWithAutoFlowString3, '').getPropertyValue('grid-template-columns') is "none"
    148 PASS window.getComputedStyle(gridWithAutoFlowString3, '').getPropertyValue('grid-template-rows') is "none"
    149 PASS window.getComputedStyle(gridWithAutoFlowString3, '').getPropertyValue('grid-template-areas') is "none"
    150 PASS window.getComputedStyle(gridWithAutoFlowString3, '').getPropertyValue('grid-auto-flow') is "row"
    151 PASS window.getComputedStyle(gridWithAutoFlowString3, '').getPropertyValue('grid-auto-columns') is "auto"
    152 PASS window.getComputedStyle(gridWithAutoFlowString3, '').getPropertyValue('grid-auto-rows') is "auto"
    153 PASS window.getComputedStyle(gridWithTemplateAndAutoFlow, '').getPropertyValue('grid-template-columns') is "none"
    154 PASS window.getComputedStyle(gridWithTemplateAndAutoFlow, '').getPropertyValue('grid-template-rows') is "none"
    155 PASS window.getComputedStyle(gridWithTemplateAndAutoFlow, '').getPropertyValue('grid-template-areas') is "none"
    156 PASS window.getComputedStyle(gridWithTemplateAndAutoFlow, '').getPropertyValue('grid-auto-flow') is "row"
    157 PASS window.getComputedStyle(gridWithTemplateAndAutoFlow, '').getPropertyValue('grid-auto-columns') is "auto"
    158 PASS window.getComputedStyle(gridWithTemplateAndAutoFlow, '').getPropertyValue('grid-auto-rows') is "auto"
    159 PASS window.getComputedStyle(gridWithTemplateAndMisplacedString1, '').getPropertyValue('grid-template-columns') is "none"
    160 PASS window.getComputedStyle(gridWithTemplateAndMisplacedString1, '').getPropertyValue('grid-template-rows') is "none"
    161 PASS window.getComputedStyle(gridWithTemplateAndMisplacedString1, '').getPropertyValue('grid-template-areas') is "none"
    162 PASS window.getComputedStyle(gridWithTemplateAndMisplacedString1, '').getPropertyValue('grid-auto-flow') is "row"
    163 PASS window.getComputedStyle(gridWithTemplateAndMisplacedString1, '').getPropertyValue('grid-auto-columns') is "auto"
    164 PASS window.getComputedStyle(gridWithTemplateAndMisplacedString1, '').getPropertyValue('grid-auto-rows') is "auto"
     129PASS window.getComputedStyle(gridWithDuplicatedDense, '').getPropertyValue('grid-template-columns') is "none"
     130PASS window.getComputedStyle(gridWithDuplicatedDense, '').getPropertyValue('grid-template-rows') is "none"
     131PASS window.getComputedStyle(gridWithDuplicatedDense, '').getPropertyValue('grid-template-areas') is "none"
     132PASS window.getComputedStyle(gridWithDuplicatedDense, '').getPropertyValue('grid-auto-flow') is "row"
     133PASS window.getComputedStyle(gridWithDuplicatedDense, '').getPropertyValue('grid-auto-columns') is "auto"
     134PASS window.getComputedStyle(gridWithDuplicatedDense, '').getPropertyValue('grid-auto-rows') is "auto"
     135PASS window.getComputedStyle(gridWithOnlyDense, '').getPropertyValue('grid-template-columns') is "none"
     136PASS window.getComputedStyle(gridWithOnlyDense, '').getPropertyValue('grid-template-rows') is "none"
     137PASS window.getComputedStyle(gridWithOnlyDense, '').getPropertyValue('grid-template-areas') is "none"
     138PASS window.getComputedStyle(gridWithOnlyDense, '').getPropertyValue('grid-auto-flow') is "row"
     139PASS window.getComputedStyle(gridWithOnlyDense, '').getPropertyValue('grid-auto-columns') is "auto"
     140PASS window.getComputedStyle(gridWithOnlyDense, '').getPropertyValue('grid-auto-rows') is "auto"
     141PASS window.getComputedStyle(gridWithoutColumnInfo, '').getPropertyValue('grid-template-columns') is "none"
     142PASS window.getComputedStyle(gridWithoutColumnInfo, '').getPropertyValue('grid-template-rows') is "none"
     143PASS window.getComputedStyle(gridWithoutColumnInfo, '').getPropertyValue('grid-template-areas') is "none"
     144PASS window.getComputedStyle(gridWithoutColumnInfo, '').getPropertyValue('grid-auto-flow') is "row"
     145PASS window.getComputedStyle(gridWithoutColumnInfo, '').getPropertyValue('grid-auto-columns') is "auto"
     146PASS window.getComputedStyle(gridWithoutColumnInfo, '').getPropertyValue('grid-auto-rows') is "auto"
     147PASS window.getComputedStyle(gridWithTwoAutoFlow, '').getPropertyValue('grid-template-columns') is "none"
     148PASS window.getComputedStyle(gridWithTwoAutoFlow, '').getPropertyValue('grid-template-rows') is "none"
     149PASS window.getComputedStyle(gridWithTwoAutoFlow, '').getPropertyValue('grid-template-areas') is "none"
     150PASS window.getComputedStyle(gridWithTwoAutoFlow, '').getPropertyValue('grid-auto-flow') is "row"
     151PASS window.getComputedStyle(gridWithTwoAutoFlow, '').getPropertyValue('grid-auto-columns') is "auto"
     152PASS window.getComputedStyle(gridWithTwoAutoFlow, '').getPropertyValue('grid-auto-rows') is "auto"
     153PASS window.getComputedStyle(gridWithImplicitAndNoExplicit, '').getPropertyValue('grid-template-columns') is "none"
     154PASS window.getComputedStyle(gridWithImplicitAndNoExplicit, '').getPropertyValue('grid-template-rows') is "none"
     155PASS window.getComputedStyle(gridWithImplicitAndNoExplicit, '').getPropertyValue('grid-template-areas') is "none"
     156PASS window.getComputedStyle(gridWithImplicitAndNoExplicit, '').getPropertyValue('grid-auto-flow') is "row"
     157PASS window.getComputedStyle(gridWithImplicitAndNoExplicit, '').getPropertyValue('grid-auto-columns') is "auto"
     158PASS window.getComputedStyle(gridWithImplicitAndNoExplicit, '').getPropertyValue('grid-auto-rows') is "auto"
     159PASS window.getComputedStyle(gridWithExtraIdBeforeAutoFlowColumn, '').getPropertyValue('grid-template-columns') is "none"
     160PASS window.getComputedStyle(gridWithExtraIdBeforeAutoFlowColumn, '').getPropertyValue('grid-template-rows') is "none"
     161PASS window.getComputedStyle(gridWithExtraIdBeforeAutoFlowColumn, '').getPropertyValue('grid-template-areas') is "none"
     162PASS window.getComputedStyle(gridWithExtraIdBeforeAutoFlowColumn, '').getPropertyValue('grid-auto-flow') is "row"
     163PASS window.getComputedStyle(gridWithExtraIdBeforeAutoFlowColumn, '').getPropertyValue('grid-auto-columns') is "auto"
     164PASS window.getComputedStyle(gridWithExtraIdBeforeAutoFlowColumn, '').getPropertyValue('grid-auto-rows') is "auto"
     165PASS window.getComputedStyle(gridWithExtraIdBeforeAutoFlowRow, '').getPropertyValue('grid-template-columns') is "none"
     166PASS window.getComputedStyle(gridWithExtraIdBeforeAutoFlowRow, '').getPropertyValue('grid-template-rows') is "none"
     167PASS window.getComputedStyle(gridWithExtraIdBeforeAutoFlowRow, '').getPropertyValue('grid-template-areas') is "none"
     168PASS window.getComputedStyle(gridWithExtraIdBeforeAutoFlowRow, '').getPropertyValue('grid-auto-flow') is "row"
     169PASS window.getComputedStyle(gridWithExtraIdBeforeAutoFlowRow, '').getPropertyValue('grid-auto-columns') is "auto"
     170PASS window.getComputedStyle(gridWithExtraIdBeforeAutoFlowRow, '').getPropertyValue('grid-auto-rows') is "auto"
     171PASS window.getComputedStyle(gridWithExtraIdBeforeAutoColumn, '').getPropertyValue('grid-template-columns') is "none"
     172PASS window.getComputedStyle(gridWithExtraIdBeforeAutoColumn, '').getPropertyValue('grid-template-rows') is "none"
     173PASS window.getComputedStyle(gridWithExtraIdBeforeAutoColumn, '').getPropertyValue('grid-template-areas') is "none"
     174PASS window.getComputedStyle(gridWithExtraIdBeforeAutoColumn, '').getPropertyValue('grid-auto-flow') is "row"
     175PASS window.getComputedStyle(gridWithExtraIdBeforeAutoColumn, '').getPropertyValue('grid-auto-columns') is "auto"
     176PASS window.getComputedStyle(gridWithExtraIdBeforeAutoColumn, '').getPropertyValue('grid-auto-rows') is "auto"
     177PASS window.getComputedStyle(gridWithExtraIdAfterAutoColumn, '').getPropertyValue('grid-template-columns') is "none"
     178PASS window.getComputedStyle(gridWithExtraIdAfterAutoColumn, '').getPropertyValue('grid-template-rows') is "none"
     179PASS window.getComputedStyle(gridWithExtraIdAfterAutoColumn, '').getPropertyValue('grid-template-areas') is "none"
     180PASS window.getComputedStyle(gridWithExtraIdAfterAutoColumn, '').getPropertyValue('grid-auto-flow') is "row"
     181PASS window.getComputedStyle(gridWithExtraIdAfterAutoColumn, '').getPropertyValue('grid-auto-columns') is "auto"
     182PASS window.getComputedStyle(gridWithExtraIdAfterAutoColumn, '').getPropertyValue('grid-auto-rows') is "auto"
     183PASS window.getComputedStyle(gridWithExtraIdBeforeAutoRow, '').getPropertyValue('grid-template-columns') is "none"
     184PASS window.getComputedStyle(gridWithExtraIdBeforeAutoRow, '').getPropertyValue('grid-template-rows') is "none"
     185PASS window.getComputedStyle(gridWithExtraIdBeforeAutoRow, '').getPropertyValue('grid-template-areas') is "none"
     186PASS window.getComputedStyle(gridWithExtraIdBeforeAutoRow, '').getPropertyValue('grid-auto-flow') is "row"
     187PASS window.getComputedStyle(gridWithExtraIdBeforeAutoRow, '').getPropertyValue('grid-auto-columns') is "auto"
     188PASS window.getComputedStyle(gridWithExtraIdBeforeAutoRow, '').getPropertyValue('grid-auto-rows') is "auto"
     189PASS window.getComputedStyle(gridWithExtraIdAfterAutoRow, '').getPropertyValue('grid-template-columns') is "none"
     190PASS window.getComputedStyle(gridWithExtraIdAfterAutoRow, '').getPropertyValue('grid-template-rows') is "none"
     191PASS window.getComputedStyle(gridWithExtraIdAfterAutoRow, '').getPropertyValue('grid-template-areas') is "none"
     192PASS window.getComputedStyle(gridWithExtraIdAfterAutoRow, '').getPropertyValue('grid-auto-flow') is "row"
     193PASS window.getComputedStyle(gridWithExtraIdAfterAutoRow, '').getPropertyValue('grid-auto-columns') is "auto"
     194PASS window.getComputedStyle(gridWithExtraIdAfterAutoRow, '').getPropertyValue('grid-auto-rows') is "auto"
    165195
    166196Test getting and setting 'grid' shorthand through JS
     
    190220PASS element.style.gridAutoRows is "initial"
    191221PASS getComputedStyle(element, '').getPropertyValue('grid-template-columns') is "none"
    192 PASS element.style.gridTemplateColumns is "initial"
     222PASS element.style.gridTemplateColumns is "none"
    193223PASS getComputedStyle(element, '').getPropertyValue('grid-template-rows') is "none"
    194224PASS element.style.gridTemplateRows is "initial"
     
    197227PASS getComputedStyle(element, '').getPropertyValue('grid-auto-flow') is "row dense"
    198228PASS element.style.gridAutoFlow is "row dense"
    199 PASS getComputedStyle(element, '').getPropertyValue('grid-auto-columns') is "20px"
    200 PASS element.style.gridAutoColumns is "20px"
     229PASS getComputedStyle(element, '').getPropertyValue('grid-auto-columns') is "auto"
     230PASS element.style.gridAutoColumns is "initial"
    201231PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is "20px"
    202232PASS element.style.gridAutoRows is "20px"
    203233PASS getComputedStyle(element, '').getPropertyValue('grid-template-columns') is "none"
    204234PASS element.style.gridTemplateColumns is "initial"
    205 PASS getComputedStyle(element, '').getPropertyValue('grid-template-rows') is "none"
    206 PASS element.style.gridTemplateRows is "initial"
     235PASS getComputedStyle(element, '').getPropertyValue('grid-template-rows') is "20px"
     236PASS element.style.gridTemplateRows is "20px"
    207237PASS getComputedStyle(element, '').getPropertyValue('grid-template-areas') is "none"
    208238PASS element.style.gridTemplateAreas is "initial"
     
    211241PASS getComputedStyle(element, '').getPropertyValue('grid-auto-columns') is "10px"
    212242PASS element.style.gridAutoColumns is "10px"
    213 PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is "20px"
    214 PASS element.style.gridAutoRows is "20px"
     243PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is "auto"
     244PASS element.style.gridAutoRows is "initial"
     245PASS getComputedStyle(element, '').getPropertyValue('grid-template-columns') is "none"
     246PASS element.style.gridTemplateColumns is "initial"
     247PASS getComputedStyle(element, '').getPropertyValue('grid-template-rows') is "none"
     248PASS element.style.gridTemplateRows is "none"
     249PASS getComputedStyle(element, '').getPropertyValue('grid-template-areas') is "none"
     250PASS element.style.gridTemplateAreas is "initial"
     251PASS getComputedStyle(element, '').getPropertyValue('grid-auto-flow') is "column dense"
     252PASS element.style.gridAutoFlow is "column dense"
     253PASS getComputedStyle(element, '').getPropertyValue('grid-auto-columns') is "20px"
     254PASS element.style.gridAutoColumns is "20px"
     255PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is "auto"
     256PASS element.style.gridAutoRows is "initial"
     257PASS getComputedStyle(element, '').getPropertyValue('grid-template-columns') is "none"
     258PASS element.style.gridTemplateColumns is "initial"
     259PASS getComputedStyle(element, '').getPropertyValue('grid-template-rows') is "10px"
     260PASS element.style.gridTemplateRows is "10px"
     261PASS getComputedStyle(element, '').getPropertyValue('grid-template-areas') is "none"
     262PASS element.style.gridTemplateAreas is "initial"
     263PASS getComputedStyle(element, '').getPropertyValue('grid-auto-flow') is "column"
     264PASS element.style.gridAutoFlow is "column"
     265PASS getComputedStyle(element, '').getPropertyValue('grid-auto-columns') is "20px"
     266PASS element.style.gridAutoColumns is "20px"
     267PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is "auto"
     268PASS element.style.gridAutoRows is "initial"
    215269
    216270Test the initial value
     
    231285PASS getComputedStyle(element, '').getPropertyValue('grid-template-columns') is "none"
    232286PASS element.style.gridTemplateColumns is "initial"
    233 PASS getComputedStyle(element, '').getPropertyValue('grid-template-rows') is "none"
    234 PASS element.style.gridTemplateRows is "initial"
     287PASS getComputedStyle(element, '').getPropertyValue('grid-template-rows') is "10px"
     288PASS element.style.gridTemplateRows is "10px"
    235289PASS getComputedStyle(element, '').getPropertyValue('grid-template-areas') is "none"
    236290PASS element.style.gridTemplateAreas is "initial"
     
    239293PASS getComputedStyle(element, '').getPropertyValue('grid-auto-columns') is "20px"
    240294PASS element.style.gridAutoColumns is "20px"
    241 PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is "10px"
    242 PASS element.style.gridAutoRows is "10px"
     295PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is "auto"
     296PASS element.style.gridAutoRows is "initial"
     297PASS getComputedStyle(element, '').getPropertyValue('grid-template-columns') is "none"
     298PASS element.style.gridTemplateColumns is "none"
     299PASS getComputedStyle(element, '').getPropertyValue('grid-template-rows') is "none"
     300PASS element.style.gridTemplateRows is "none"
     301PASS getComputedStyle(element, '').getPropertyValue('grid-template-areas') is "none"
     302PASS element.style.gridTemplateAreas is "none"
     303PASS getComputedStyle(element, '').getPropertyValue('grid-auto-flow') is "row"
     304PASS element.style.gridAutoFlow is "initial"
     305PASS getComputedStyle(element, '').getPropertyValue('grid-auto-columns') is "auto"
     306PASS element.style.gridAutoColumns is "initial"
     307PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is "auto"
     308PASS element.style.gridAutoRows is "initial"
     309PASS getComputedStyle(element, '').getPropertyValue('grid-template-columns') is "none"
     310PASS element.style.gridTemplateColumns is "initial"
     311PASS getComputedStyle(element, '').getPropertyValue('grid-template-rows') is "20px"
     312PASS element.style.gridTemplateRows is "20px"
     313PASS getComputedStyle(element, '').getPropertyValue('grid-template-areas') is "none"
     314PASS element.style.gridTemplateAreas is "initial"
     315PASS getComputedStyle(element, '').getPropertyValue('grid-auto-flow') is "column"
     316PASS element.style.gridAutoFlow is "column"
     317PASS getComputedStyle(element, '').getPropertyValue('grid-auto-columns') is "10px"
     318PASS element.style.gridAutoColumns is "10px"
     319PASS getComputedStyle(element, '').getPropertyValue('grid-auto-rows') is "auto"
     320PASS element.style.gridAutoRows is "initial"
    243321PASS getComputedStyle(element, '').getPropertyValue('grid-template-columns') is "none"
    244322PASS element.style.gridTemplateColumns is "none"
  • trunk/LayoutTests/fast/css-grid-layout/grid-shorthand-get-set.html

    r203716 r206161  
    44<link href="resources/grid.css" rel="stylesheet">
    55<style>
    6 #gridWithDense {
    7     grid: dense;
    8 }
    9 #gridWithTemplate {
    10     grid: 10px / 15px;
    11 }
    12 #gridWithTemplate1 {
    13     grid: 10px / none;
    14 }
    15 #gridWithTemplateNone {
    16     grid: 10px / none;
    17 }
    18 #gridWithAutoFlowDenseAndRowsAndColumns {
    19     grid: dense 10px / 20px;
    20 }
    21 #gridWithAutoFlowAndRows {
    22     grid: column 10px;
    23 }
    24 #gridWithAutoFlowDense {
    25     grid: dense 10px;
    26 }
    27 #gridWithAutoFlowColumnDense {
    28     grid: column dense 10px;
    29 }
    30 #gridWithAutoFlowDenseRow {
    31     grid: dense row 10px;
    32 }
    33 #gridWithAutoFlowAndRowsAndColumns {
    34     grid: column 10px / 20px;
    35 }
    36 #gridWithAutoFlowAndMultipleAutoTracks {
    37     grid: row 20px 10px / 100px 10%;
    38 }
    39 
    40 /* Bad values. */
    41 
    426#gridWithNone {
    437    grid: none;
    448}
    45 #gridWithAutoFlowNoneAndRowsAndColumns {
    46     grid: none 10px / 20px;
    47 }
    48 #gridWithAutoFlowNone {
    49     grid: none 10px;
    50 }
    51 #gridWithExplicitAndImplicit {
    52     grid: 10px / 20px column;
     9.gridWithTemplate {
     10    grid: 10px / 15px;
     11}
     12.gridWithInherit {
     13    grid: inherit;
     14}
     15#gridColumnsAndAutoFlow {
     16    grid: auto-flow / 10px;
     17}
     18#gridWithAutoFlowAndAutoRows {
     19    grid: auto-flow 10px / none;
     20}
     21#gridWithAutoFlowColumnDense {
     22    grid: none / auto-flow dense;
     23}
     24#gridWithAutoFlowDenseRow {
     25    grid: auto-flow dense / none;
     26}
     27#gridWithAutoFlowAndAutoRowsAndColumns {
     28    grid: auto-flow 10px / 20px;
     29}
     30#gridWithAutoFlowAndMultipleAutoTracks {
     31    grid: auto-flow 20px 10px / 100px 50px;
     32}
     33#gridWithRowsAndAutoFlow {
     34    grid: 10px / auto-flow;
     35}
     36#gridWithRowsNoneAndAutoFlowAndAutoColumn {
     37    grid: none / auto-flow 10px;
     38}
     39#gridWithRowsAndAutoFlowDenseColumn {
     40    grid: 10px / auto-flow dense;
     41}
     42#gridWithColumnsAndDenseAutoFlow {
     43    grid: dense auto-flow / 10px;
     44}
     45#gridWithRowsAndAutoFlowAndAutoColumns {
     46    grid: 20px / auto-flow 10px;
     47}
     48#gridWithRowsAndAutoFlowAndMultipleAutoTracks {
     49    grid: 100px 50px / auto-flow 20px 10px;
     50}
     51
     52/* Bad values. */
     53
     54#gridWithMisplacedAutoColumn {
     55    grid: 10px / 20px auto-flow;
    5356}
    5457#gridWithMisplacedNone1 {
    55     grid: column 10px / none 20px;
     58    grid: auto-flow 10px / none 20px;
    5659}
    5760#gridWithMisplacedNone2 {
    5861    grid: 10px / 20px none;
    5962}
    60 #gridWithWrongSlash1 {
    61     grid: column / 10px;
    62 }
    63 #gridWithWrongSlash2 {
    64     grid: 5x / 10px / 20px;
    65 }
    66 #gridWithAutoFlowRowAndColumn {
    67     grid: row column 10px;
    68 }
    69 #gridWithAutoFlowString1 {
    70     grid: row 10px "a";
    71 }
    72 #gridWithAutoFlowString2 {
    73     grid: row "a" 10px;
    74 }
    75 #gridWithAutoFlowString3 {
    76     grid: row "a";
    77 }
    78 #gridWithTemplateAndAutoFlow {
    79     grid: 10px / 10px row;
    80 }
    81 #gridWithTemplateAndMisplacedString1 {
    82     grid: 10px / 10px "a";
    83 }
    8463#gridWithMisplacedDense {
    85     grid: dense column dense;
     64    grid: dense 10px / auto-flow 20px;
     65}
     66#gridWithDuplicatedDense {
     67    grid: dense auto-flow dense / 10px;
     68}
     69#gridWithOnlyDense {
     70    grid: dense / 10px;
     71}
     72#gridWithoutColumnInfo {
     73    grid: auto-flow dense 10px;
     74}
     75#gridWithTwoAutoFlow {
     76    grid: auto-flow / auto-flow 20px;
     77}
     78#gridWithImplicitAndNoExplicit {
     79    grid: column 20px / 10px;
     80}
     81#gridWithExtraIdBeforeAutoFlowColumn {
     82    grid: 10px / a auto-flow 20px;
     83}
     84#gridWithExtraIdBeforeAutoFlowRow {
     85    grid: a auto-flow 10px / 20px;
     86}
     87#gridWithExtraIdBeforeAutoColumn {
     88    grid: 10px / auto-flow a 20px;
     89}
     90#gridWithExtraIdAfterAutoColumn {
     91    grid: 10px / auto-flow 20px a;
     92}
     93#gridWithExtraIdBeforeAutoRow {
     94   grid: auto-flow a 20px / 10px;
     95}
     96#gridWithExtraIdAfterAutoRow {
     97   grid: auto-flow 20px a / 10px;
    8698}
    8799</style>
     
    89101</head>
    90102<body>
    91 <div class="grid" id="gridWithDense"></div>
    92 <div class="grid" id="gridWithTemplate"></div>
    93 <div class="grid" id="gridWithTemplate1"></div>
    94 <div class="grid" id="gridWithAutoFlowDenseAndRowsAndColumns"></div>
    95 <div class="grid" id="gridWithAutoFlowAndRows"></div>
    96 <div class="grid" id="gridWithAutoFlowDense"></div>
     103<div class="grid" id="gridWithNone"></div>
     104<div class="grid gridWithTemplate" id="gridWithTemplate"></div>
     105<div class="grid gridWithTemplate">
     106    <div class="grid gridWithInherit" id="gridInherit"></div>
     107</div>
     108<div class="grid" class="gridWithTemplate">
     109    <div><div class="grid gridWithInherit" id="gridNoInherit"></div></div>
     110</div-->
     111<div class="grid" id="gridColumnsAndAutoFlow"></div>
     112<div class="grid" id="gridWithAutoFlowAndAutoRows"></div>
    97113<div class="grid" id="gridWithAutoFlowColumnDense"></div>
    98114<div class="grid" id="gridWithAutoFlowDenseRow"></div>
    99 <div class="grid" id="gridWithAutoFlowAndRowsAndColumns"></div>
    100 <div class="grid" id="gridWithNone"></div>
    101 <div class="grid" id="gridWithTemplateNone"></div>
    102 <div class="grid" id="gridWithAutoFlowNoneAndRowsAndColumns"></div>
    103 <div class="grid" id="gridWithAutoFlowNone"></div>
    104 <div class="grid" id="gridWithExplicitAndImplicit"></div>
     115<div class="grid" id="gridWithAutoFlowAndAutoRowsAndColumns"></div>
     116<div class="grid" id="gridWithAutoFlowAndMultipleAutoTracks"></div>
     117<div class="grid" id="gridWithRowsAndAutoFlow"></div>
     118<div class="grid" id="gridWithRowsNoneAndAutoFlowAndAutoColumn"></div>
     119<div class="grid" id="gridWithRowsAndAutoFlowDenseColumn"></div>
     120<div class="grid" id="gridWithColumnsAndDenseAutoFlow"></div>
     121<div class="grid" id="gridWithRowsAndAutoFlowAndAutoColumns"></div>
     122<div class="grid" id="gridWithRowsAndAutoFlowAndMultipleAutoTracks"></div>
     123<div class="grid" id="gridWithMisplacedAutoColumn"></div>
    105124<div class="grid" id="gridWithMisplacedNone1"></div>
    106125<div class="grid" id="gridWithMisplacedNone2"></div>
    107 <div class="grid" id="gridWithWrongSlash1"></div>
    108 <div class="grid" id="gridWithWrongSlash2"></div>
    109 <div class="grid" id="gridWithAutoFlowRowAndColumn"></div>
    110 <div class="grid" id="gridWithAutoFlowString1"></div>
    111 <div class="grid" id="gridWithAutoFlowString2"></div>
    112 <div class="grid" id="gridWithAutoFlowString3"></div>
    113 <div class="grid" id="gridWithTemplateAndAutoFlow"></div>
    114 <div class="grid" id="gridWithTemplateAndMisplacedString1"></div>
    115126<div class="grid" id="gridWithMisplacedDense"></div>
    116 <div class="grid" id="gridWithAutoFlowAndMultipleAutoTracks"></div>
     127<div class="grid" id="gridWithDuplicatedDense"></div>
     128<div class="grid" id="gridWithOnlyDense"></div>
     129<div class="grid" id="gridWithoutColumnInfo"></div>
     130<div class="grid" id="gridWithTwoAutoFlow"></div>
     131<div class="grid" id="gridWithImplicitAndNoExplicit"></div>
     132<div class="grid" id="gridWithExtraIdBeforeAutoFlowColumn"></div>
     133<div class="grid" id="gridWithExtraIdBeforeAutoFlowRow"></div>
     134<div class="grid" id="gridWithExtraIdBeforeAutoColumn"></div>
     135<div class="grid" id="gridWithExtraIdAfterAutoColumn"></div>
     136<div class="grid" id="gridWithExtraIdBeforeAutoRow"></div>
     137<div class="grid" id="gridWithExtraIdAfterAutoRow"></div>
    117138<script src="resources/grid-shorthand-parsing-utils.js"></script>
    118139<script>
     
    120141
    121142    debug("Test getting the longhand values when shorthand is set through CSS.");
    122     testGridDefinitionsValues(document.getElementById("gridWithDense"), "none", "none", "none", "row dense", "auto", "auto");
     143    testGridDefinitionsValues(document.getElementById("gridWithNone"), "none", "none", "none", "row", "auto", "auto");
    123144    testGridDefinitionsValues(document.getElementById("gridWithTemplate"), "15px", "10px", "none", "row", "auto", "auto");
    124     testGridDefinitionsValues(document.getElementById("gridWithTemplate1"), "none", "10px", "none", "row", "auto", "auto");
    125     testGridDefinitionsValues(document.getElementById("gridWithTemplateNone"), "none", "10px", "none", "row", "auto", "auto");
    126     testGridDefinitionsValues(document.getElementById("gridWithAutoFlowDenseAndRowsAndColumns"), "none", "none", "none", "row dense", "20px", "10px");
    127     testGridDefinitionsValues(document.getElementById("gridWithAutoFlowAndRows"), "none", "none", "none", "column", "10px", "10px");
    128     testGridDefinitionsValues(document.getElementById("gridWithAutoFlowDense"), "none", "none", "none", "row dense", "10px", "10px");
    129     testGridDefinitionsValues(document.getElementById("gridWithAutoFlowColumnDense"), "none", "none", "none", "column dense", "10px", "10px");
    130     testGridDefinitionsValues(document.getElementById("gridWithAutoFlowDenseRow"), "none", "none", "none", "row dense", "10px", "10px");
    131     testGridDefinitionsValues(document.getElementById("gridWithAutoFlowAndRowsAndColumns"), "none", "none", "none", "column", "20px", "10px");
    132     testGridDefinitionsValues(document.getElementById("gridWithAutoFlowAndMultipleAutoTracks"), "none", "none", "none", "row", "100px 10%", "20px 10px");
    133 
    134     debug("");
    135     debug("Test setting wrong values for 'grid' shorthand through CSS (they should resolve to the default: 'row')");
    136     testGridDefinitionsValues(document.getElementById("gridWithNone"), "none", "none", "none", "row", "auto", "auto");
    137     testGridDefinitionsValues(document.getElementById("gridWithAutoFlowNoneAndRowsAndColumns"), "none", "none", "none", "row", "auto", "auto");
    138     testGridDefinitionsValues(document.getElementById("gridWithAutoFlowNone"), "none", "none", "none", "row", "auto", "auto");
    139     testGridDefinitionsValues(document.getElementById("gridWithExplicitAndImplicit"), "none", "none", "none", "row", "auto", "auto");
     145    testGridDefinitionsValues(document.getElementById("gridInherit"), "15px", "10px", "none", "row", "auto", "auto");
     146    testGridDefinitionsValues(document.getElementById("gridNoInherit"), "none", "none", "none", "row", "auto", "auto");
     147    testGridDefinitionsValues(document.getElementById("gridColumnsAndAutoFlow"), "10px", "none", "none", "row", "auto", "auto");
     148    testGridDefinitionsValues(document.getElementById("gridWithAutoFlowAndAutoRows"), "none", "none", "none", "row", "auto", "10px");
     149    testGridDefinitionsValues(document.getElementById("gridWithAutoFlowColumnDense"), "none", "none", "none", "column dense", "auto", "auto");
     150    testGridDefinitionsValues(document.getElementById("gridWithAutoFlowDenseRow"), "none", "none", "none", "row dense", "auto", "auto");
     151    testGridDefinitionsValues(document.getElementById("gridWithAutoFlowAndAutoRowsAndColumns"), "20px", "none", "none", "row", "auto", "10px");
     152    testGridDefinitionsValues(document.getElementById("gridWithAutoFlowAndMultipleAutoTracks"), "100px 50px", "none", "none", "row", "auto", "20px 10px");
     153
     154    testGridDefinitionsValues(document.getElementById("gridWithRowsAndAutoFlow"), "none", "10px", "none", "column", "auto", "auto");
     155    testGridDefinitionsValues(document.getElementById("gridWithRowsNoneAndAutoFlowAndAutoColumn"), "none", "none", "none", "column", "10px", "auto");
     156    testGridDefinitionsValues(document.getElementById("gridWithRowsAndAutoFlowDenseColumn"), "none", "10px", "none", "column dense", "auto", "auto");
     157    testGridDefinitionsValues(document.getElementById("gridWithColumnsAndDenseAutoFlow"), "10px", "none", "none", "row dense", "auto", "auto");
     158    testGridDefinitionsValues(document.getElementById("gridWithRowsAndAutoFlowAndAutoColumns"), "none", "20px", "none", "column", "10px", "auto");
     159    testGridDefinitionsValues(document.getElementById("gridWithRowsAndAutoFlowAndMultipleAutoTracks"), "none", "100px 50px", "none", "column", "20px 10px", "auto");
     160
     161    debug("");
     162    debug("Test getting wrong values for 'grid' shorthand through CSS (they should resolve to the default: 'none')");
     163    testGridDefinitionsValues(document.getElementById("gridWithMisplacedAutoColumn"), "none", "none", "none", "row", "auto", "auto");
    140164    testGridDefinitionsValues(document.getElementById("gridWithMisplacedNone1"), "none", "none", "none", "row", "auto", "auto");
    141165    testGridDefinitionsValues(document.getElementById("gridWithMisplacedNone2"), "none", "none", "none", "row", "auto", "auto");
    142166    testGridDefinitionsValues(document.getElementById("gridWithMisplacedDense"), "none", "none", "none", "row", "auto", "auto");
    143     testGridDefinitionsValues(document.getElementById("gridWithWrongSlash1"), "none", "none", "none", "row", "auto", "auto");
    144     testGridDefinitionsValues(document.getElementById("gridWithWrongSlash2"), "none", "none", "none", "row", "auto", "auto");
    145     testGridDefinitionsValues(document.getElementById("gridWithAutoFlowRowAndColumn"), "none", "none", "none", "row", "auto", "auto");
    146     testGridDefinitionsValues(document.getElementById("gridWithAutoFlowString1"), "none", "none", "none", "row", "auto", "auto");
    147     testGridDefinitionsValues(document.getElementById("gridWithAutoFlowString2"), "none", "none", "none", "row", "auto", "auto");
    148     testGridDefinitionsValues(document.getElementById("gridWithAutoFlowString3"), "none", "none", "none", "row", "auto", "auto");
    149     testGridDefinitionsValues(document.getElementById("gridWithTemplateAndAutoFlow"), "none", "none", "none", "row", "auto", "auto");
    150     testGridDefinitionsValues(document.getElementById("gridWithTemplateAndMisplacedString1"), "none", "none", "none", "row", "auto", "auto");
     167    testGridDefinitionsValues(document.getElementById("gridWithDuplicatedDense"), "none", "none", "none", "row", "auto", "auto");
     168    testGridDefinitionsValues(document.getElementById("gridWithOnlyDense"), "none", "none", "none", "row", "auto", "auto");
     169    testGridDefinitionsValues(document.getElementById("gridWithoutColumnInfo"), "none", "none", "none", "row", "auto", "auto");
     170    testGridDefinitionsValues(document.getElementById("gridWithTwoAutoFlow"), "none", "none", "none", "row", "auto", "auto");
     171    testGridDefinitionsValues(document.getElementById("gridWithImplicitAndNoExplicit"), "none", "none", "none", "row", "auto", "auto");
     172    testGridDefinitionsValues(document.getElementById("gridWithExtraIdBeforeAutoFlowColumn"), "none", "none", "none", "row", "auto", "auto");
     173    testGridDefinitionsValues(document.getElementById("gridWithExtraIdBeforeAutoFlowRow"), "none", "none", "none", "row", "auto", "auto");
     174    testGridDefinitionsValues(document.getElementById("gridWithExtraIdBeforeAutoColumn"), "none", "none", "none", "row", "auto", "auto");
     175    testGridDefinitionsValues(document.getElementById("gridWithExtraIdAfterAutoColumn"), "none", "none", "none", "row", "auto", "auto");
     176    testGridDefinitionsValues(document.getElementById("gridWithExtraIdBeforeAutoRow"), "none", "none", "none", "row", "auto", "auto");
     177    testGridDefinitionsValues(document.getElementById("gridWithExtraIdAfterAutoRow"), "none", "none", "none", "row", "auto", "auto");
    151178
    152179    debug("");
     
    154181    testGridDefinitionsSetJSValues("20px / 10px", "10px", "20px", "none", "row", "auto", "auto", "10px", "20px", "none", "initial", "initial", "initial");
    155182    testGridDefinitionsSetJSValues("[line] 'a' 20px / 10px", "10px", "[line] 20px", "\"a\"", "row", "auto", "auto", "10px", "[line] 20px", "\"a\"", "initial", "initial", "initial");
    156     testGridDefinitionsSetJSValues("row dense 20px", "none", "none", "none", "row dense", "20px", "20px", "initial", "initial", "initial", "row dense", "20px", "20px");
    157     testGridDefinitionsSetJSValues("column 20px / 10px", "none", "none", "none", "column", "10px", "20px", "initial", "initial", "initial", "column", "10px", "20px");
     183    testGridDefinitionsSetJSValues("auto-flow dense 20px / none", "none", "none", "none", "row dense", "auto", "20px", "none", "initial", "initial", "row dense", "initial", "20px");
     184    testGridDefinitionsSetJSValues("20px / auto-flow 10px", "none", "20px", "none", "column", "10px", "auto", "initial", "20px", "initial", "column", "10px", "initial");
     185    testGridDefinitionsSetJSValues("none / auto-flow dense 20px", "none", "none", "none", "column dense", "20px", "auto", "initial", "none", "initial", "column dense", "20px", "initial");
     186    testGridDefinitionsSetJSValues("10px / auto-flow 20px", "none", "10px", "none", "column", "20px", "auto", "initial", "10px", "initial", "column", "20px", "initial");
    158187
    159188    debug("");
     
    171200    debug("");
    172201    debug("Test setting grid-template-columns and grid-template-rows back to 'none' through JS");
    173     testGridDefinitionsSetJSValues("column 10px / 20px", "none", "none", "none", "column", "20px", "10px", "initial", "initial", "initial", "column", "20px", "10px");
     202    testGridDefinitionsSetJSValues("10px / auto-flow 20px", "none", "10px", "none", "column", "20px", "auto", "initial", "10px", "initial", "column", "20px", "initial");
     203    testGridDefinitionsSetJSValues("none", "none", "none", "none", "row", "auto", "auto", "none", "none", "none", "initial", "initial", "initial");
     204    testGridDefinitionsSetJSValues("20px / auto-flow 10px", "none", "20px", "none", "column", "10px", "auto", "initial", "20px", "initial", "column", "10px", "initial");
    174205    testGridDefinitionsSetJSValues("none", "none", "none", "none", "row", "auto", "auto", "none", "none", "none", "initial", "initial", "initial");
    175206
  • trunk/Source/WebCore/ChangeLog

    r206159 r206161  
     12016-09-20  Javier Fernandez  <jfernandez@igalia.com>
     2
     3        [css-grid] The 'grid' shorthand has a new syntax.
     4        https://bugs.webkit.org/show_bug.cgi?id=161954
     5
     6        Reviewed by Darin Adler.
     7
     8        Implementation of the new CSS syntax for the 'grid' shorthand, as
     9        defined in the CSS Grid Layout specification:
     10        - https://drafts.csswg.org/css-grid/#grid-shorthand
     11
     12        No new tests, just adapted the ones we already have and added a few additional test cases.
     13
     14        * css/CSSValueKeywords.in:
     15        * css/parser/CSSParser.cpp:
     16        (WebCore::CSSParser::parseImplicitAutoFlow): Added. Similar to parseGridAutoFlow, but using the new 'auto-flow' keyword.
     17        (WebCore::CSSParser::parseGridShorthand): New syntax of the 'grid' shorthand.
     18        * css/parser/CSSParser.h:
     19
    1202016-09-20  Alex Christensen  <achristensen@webkit.org>
    221
  • trunk/Source/WebCore/css/CSSValueKeywords.in

    r206007 r206161  
    12511251
    12521252// grid-auto-flow
     1253auto-flow
    12531254dense
    12541255
  • trunk/Source/WebCore/css/parser/CSSParser.cpp

    r206043 r206161  
    55025502}
    55035503
     5504static RefPtr<CSSValue> parseImplicitAutoFlow(CSSParserValueList& inputList, Ref<CSSPrimitiveValue>&& flowDirection)
     5505{
     5506    // [ auto-flow && dense? ]
     5507    auto value = inputList.current();
     5508    if (!value)
     5509        return nullptr;
     5510    auto list = CSSValueList::createSpaceSeparated();
     5511    list->append(WTFMove(flowDirection));
     5512    if (value->id == CSSValueAutoFlow) {
     5513        value = inputList.next();
     5514        if (value && value->id == CSSValueDense) {
     5515            list->append(CSSValuePool::singleton().createIdentifierValue(CSSValueDense));
     5516            inputList.next();
     5517        }
     5518    } else {
     5519        if (value->id != CSSValueDense)
     5520            return nullptr;
     5521        value = inputList.next();
     5522        if (!value || value->id != CSSValueAutoFlow)
     5523            return nullptr;
     5524        list->append(CSSValuePool::singleton().createIdentifierValue(CSSValueDense));
     5525        inputList.next();
     5526    }
     5527
     5528    return WTFMove(list);
     5529}
     5530
    55045531bool CSSParser::parseGridShorthand(bool important)
    55055532{
     
    55235550    // Need to rewind parsing to explore the alternative syntax of this shorthand.
    55245551    m_valueList->setCurrentIndex(0);
    5525 
    5526     // 2- <grid-auto-flow> [ <grid-auto-columns> [ / <grid-auto-rows> ]? ]
    5527     if (!parseValue(CSSPropertyGridAutoFlow, important))
     5552    auto value = m_valueList->current();
     5553    if (!value)
    55285554        return false;
    55295555
    55305556    RefPtr<CSSValue> autoColumnsValue;
    55315557    RefPtr<CSSValue> autoRowsValue;
    5532 
    5533     if (m_valueList->current()) {
    5534         autoRowsValue = parseGridTrackList(GridAuto);
    5535         if (!autoRowsValue)
    5536             return false;
    5537         if (m_valueList->current()) {
    5538             if (!isForwardSlashOperator(*m_valueList->current()) || !m_valueList->next())
     5558    RefPtr<CSSValue> templateRows;
     5559    RefPtr<CSSValue> templateColumns;
     5560    RefPtr<CSSValue> gridAutoFlow;
     5561    if (value->id == CSSValueDense || value->id == CSSValueAutoFlow) {
     5562        // 2- [ auto-flow && dense? ] <grid-auto-rows>? / <grid-template-columns>
     5563        gridAutoFlow = parseImplicitAutoFlow(*m_valueList, CSSValuePool::singleton().createIdentifierValue(CSSValueRow));
     5564        if (!gridAutoFlow)
     5565            return false;
     5566        if (!m_valueList->current())
     5567            return false;
     5568        if (isForwardSlashOperator(*m_valueList->current()))
     5569            autoRowsValue = CSSValuePool::singleton().createImplicitInitialValue();
     5570        else {
     5571            autoRowsValue = parseGridTrackList(GridAuto);
     5572            if (!autoRowsValue)
    55395573                return false;
     5574            if (!(m_valueList->current() && isForwardSlashOperator(*m_valueList->current())))
     5575                return false;
     5576        }
     5577        if (!m_valueList->next())
     5578            return false;
     5579        templateColumns = parseGridTrackList(GridTemplate);
     5580        if (!templateColumns)
     5581            return false;
     5582        templateRows = CSSValuePool::singleton().createImplicitInitialValue();
     5583        autoColumnsValue = CSSValuePool::singleton().createImplicitInitialValue();
     5584    } else {
     5585        // 3- <grid-template-rows> / [ auto-flow && dense? ] <grid-auto-columns>?
     5586        templateRows = parseGridTrackList(GridTemplate);
     5587        if (!templateRows)
     5588            return false;
     5589        if (!(m_valueList->current() && isForwardSlashOperator(*m_valueList->current())))
     5590            return false;
     5591        if (!m_valueList->next())
     5592            return false;
     5593        gridAutoFlow = parseImplicitAutoFlow(*m_valueList, CSSValuePool::singleton().createIdentifierValue(CSSValueColumn));
     5594        if (!gridAutoFlow)
     5595            return false;
     5596        if (!m_valueList->current())
     5597            autoColumnsValue = CSSValuePool::singleton().createImplicitInitialValue();
     5598        else {
    55405599            autoColumnsValue = parseGridTrackList(GridAuto);
    55415600            if (!autoColumnsValue)
    55425601                return false;
    55435602        }
    5544         if (m_valueList->current())
    5545             return false;
    5546     } else {
    5547         // Other omitted values are set to their initial values.
    5548         autoColumnsValue = CSSValuePool::singleton().createImplicitInitialValue();
     5603        templateColumns = CSSValuePool::singleton().createImplicitInitialValue();
    55495604        autoRowsValue = CSSValuePool::singleton().createImplicitInitialValue();
    55505605    }
    55515606
    5552     // if <grid-auto-rows> value is omitted, it is set to the value specified for grid-auto-columns.
    5553     if (!autoColumnsValue)
    5554         autoColumnsValue = autoRowsValue;
    5555 
     5607    if (m_valueList->current())
     5608        return false;
     5609
     5610    // It can only be specified the explicit or the implicit grid properties in a single grid declaration.
     5611    // The sub-properties not specified are set to their initial value, as normal for shorthands.
     5612    addProperty(CSSPropertyGridTemplateColumns, templateColumns.releaseNonNull(), important);
     5613    addProperty(CSSPropertyGridTemplateRows, templateRows.releaseNonNull(), important);
     5614    addProperty(CSSPropertyGridTemplateAreas, CSSValuePool::singleton().createImplicitInitialValue(), important);
     5615    addProperty(CSSPropertyGridAutoFlow, gridAutoFlow.releaseNonNull(), important);
    55565616    addProperty(CSSPropertyGridAutoColumns, autoColumnsValue.releaseNonNull(), important);
    55575617    addProperty(CSSPropertyGridAutoRows, autoRowsValue.releaseNonNull(), important);
    5558 
    5559     // It can only be specified the explicit or the implicit grid properties in a single grid declaration.
    5560     // The sub-properties not specified are set to their initial value, as normal for shorthands.
    5561     addProperty(CSSPropertyGridTemplateColumns, CSSValuePool::singleton().createImplicitInitialValue(), important);
    5562     addProperty(CSSPropertyGridTemplateRows, CSSValuePool::singleton().createImplicitInitialValue(), important);
    5563     addProperty(CSSPropertyGridTemplateAreas, CSSValuePool::singleton().createImplicitInitialValue(), important);
    55645618    addProperty(CSSPropertyGridColumnGap, CSSValuePool::singleton().createImplicitInitialValue(), important);
    55655619    addProperty(CSSPropertyGridRowGap, CSSValuePool::singleton().createImplicitInitialValue(), important);
Note: See TracChangeset for help on using the changeset viewer.