- a/LayoutTests/ChangeLog +10 lines
Lines 1-3 a/LayoutTests/ChangeLog_sec1
1
2012-12-21  Xan Lopez  <xlopez@igalia.com>
2
3
        [CSS Grid Layout] Add the plumbing to parse -webkit-grid-{column,row}-span
4
        https://bugs.webkit.org/show_bug.cgi?id=105548
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        * fast/css-grid-layout/grid-item-column-row-span-get-set-expected.txt: Added.
9
        * fast/css-grid-layout/grid-item-column-row-span-get-set.html: Added.
10
1
2012-12-19  Levi Weintraub  <leviw@chromium.org>
11
2012-12-19  Levi Weintraub  <leviw@chromium.org>
2
12
3
        Re-skipping touch-input-element-chang-documents.html since it's still
13
        Re-skipping touch-input-element-chang-documents.html since it's still
- a/LayoutTests/fast/css-grid-layout/grid-item-column-row-span-get-set-expected.txt +26 lines
Line 0 a/LayoutTests/fast/css-grid-layout/grid-item-column-row-span-get-set-expected.txt_sec1
1
Test that setting and getting -webkit-grid-column-span and -webkit-grid-row-span works as expected
2
3
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
4
5
6
Test getting -webkit-grid-column-span and -webkit-grid-row-span set through CSS
7
PASS getComputedStyle(gridElement, '').getPropertyValue('-webkit-grid-column-span') is '1'
8
PASS getComputedStyle(gridElement, '').getPropertyValue('-webkit-grid-row-span') is '1'
9
PASS getComputedStyle(gridItemWithColumnSpan, '').getPropertyValue('-webkit-grid-column') is '1'
10
PASS getComputedStyle(gridItemWithColumnSpan, '').getPropertyValue('-webkit-grid-column-span') is '5'
11
PASS getComputedStyle(gridItemWithRowSpan, '').getPropertyValue('-webkit-grid-row') is '2'
12
PASS getComputedStyle(gridItemWithRowSpan, '').getPropertyValue('-webkit-grid-row-span') is '3'
13
PASS getComputedStyle(gridItemWithColumnRowSpan, '').getPropertyValue('-webkit-grid-row') is '7'
14
PASS getComputedStyle(gridItemWithColumnRowSpan, '').getPropertyValue('-webkit-grid-column') is '5'
15
PASS getComputedStyle(gridItemWithColumnRowSpan, '').getPropertyValue('-webkit-grid-row-span') is '3'
16
PASS getComputedStyle(gridItemWithColumnRowSpan, '').getPropertyValue('-webkit-grid-column-span') is '10'
17
PASS getComputedStyle(gridItemWithMultipleValuesForSpan, '').getPropertyValue('-webkit-grid-row-span') is '1'
18
PASS getComputedStyle(gridItemWithMultipleValuesForSpan, '').getPropertyValue('-webkit-grid-column-span') is '1'
19
PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-column-span') is '5'
20
PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-row-span') is '12'
21
PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-column-span') is '1'
22
PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-row-span') is '1'
23
PASS successfullyParsed is true
24
25
TEST COMPLETE
26
- a/LayoutTests/fast/css-grid-layout/grid-item-column-row-span-get-set.html +82 lines
Line 0 a/LayoutTests/fast/css-grid-layout/grid-item-column-row-span-get-set.html_sec1
1
<!DOCTYPE html>
2
<html>
3
<head>
4
<script>
5
if (window.testRunner)
6
    testRunner.overridePreference("WebKitCSSGridLayoutEnabled", 1);
7
</script>
8
<style>
9
.gridItemWithColumnSpan {
10
    -webkit-grid-column: 1;
11
    -webkit-grid-column-span: 5;
12
}
13
14
.gridItemWithRowSpan {
15
    -webkit-grid-row: 2;
16
    -webkit-grid-row-span: 3;
17
}
18
19
.gridItemWithColumnRowSpan {
20
    -webkit-grid-column: 5;
21
    -webkit-grid-row: 7;
22
    -webkit-grid-column-span: 10;
23
    -webkit-grid-row-span: 3;
24
}
25
26
.gridItemWithMultipleValuesForSpan {
27
    -webkit-grid-column-span: 1 2 3;
28
}
29
</style>
30
<script src="../js/resources/js-test-pre.js"></script>
31
</head>
32
<body>
33
<!-- The first has no properties set on it. -->
34
<div id="gridElement"></div>
35
<div class="gridItemWithColumnSpan" id="gridItemWithColumnSpan"></div>
36
<div class="gridItemWithRowSpan" id="gridItemWithRowSpan"></div>
37
<div class="gridItemWithColumnRowSpan" id="gridItemWithColumnRowSpan"></div>
38
<div class="gridItemWithMultipleValuesForSpan" id="gridItemWithMultipleValuesForSpan"></div>
39
<script>
40
    description('Test that setting and getting -webkit-grid-column-span and -webkit-grid-row-span works as expected');
41
42
    debug("Test getting -webkit-grid-column-span and -webkit-grid-row-span set through CSS");
43
    var gridElement = document.getElementById("gridElement");
44
    shouldBe("getComputedStyle(gridElement, '').getPropertyValue('-webkit-grid-column-span')", "'1'");
45
    shouldBe("getComputedStyle(gridElement, '').getPropertyValue('-webkit-grid-row-span')", "'1'");
46
47
    var gridItemWithPositiveInteger = document.getElementById("gridItemWithColumnSpan");
48
    shouldBe("getComputedStyle(gridItemWithColumnSpan, '').getPropertyValue('-webkit-grid-column')", "'1'");
49
    shouldBe("getComputedStyle(gridItemWithColumnSpan, '').getPropertyValue('-webkit-grid-column-span')", "'5'");
50
51
    var gridItemWithPositiveInteger = document.getElementById("gridItemWithRowSpan");
52
    shouldBe("getComputedStyle(gridItemWithRowSpan, '').getPropertyValue('-webkit-grid-row')", "'2'");
53
    shouldBe("getComputedStyle(gridItemWithRowSpan, '').getPropertyValue('-webkit-grid-row-span')", "'3'");
54
55
    var gridItemWithPositiveInteger = document.getElementById("gridItemWithColumnRowSpan");
56
    shouldBe("getComputedStyle(gridItemWithColumnRowSpan, '').getPropertyValue('-webkit-grid-row')", "'7'");
57
    shouldBe("getComputedStyle(gridItemWithColumnRowSpan, '').getPropertyValue('-webkit-grid-column')", "'5'");
58
    shouldBe("getComputedStyle(gridItemWithColumnRowSpan, '').getPropertyValue('-webkit-grid-row-span')", "'3'");
59
    shouldBe("getComputedStyle(gridItemWithColumnRowSpan, '').getPropertyValue('-webkit-grid-column-span')", "'10'");
60
61
    var gridItemWithPositiveInteger = document.getElementById("gridItemWithMultipleValuesForSpan");
62
    shouldBe("getComputedStyle(gridItemWithMultipleValuesForSpan, '').getPropertyValue('-webkit-grid-row-span')", "'1'");
63
    shouldBe("getComputedStyle(gridItemWithMultipleValuesForSpan, '').getPropertyValue('-webkit-grid-column-span')", "'1'");
64
65
    element = document.createElement("div");
66
    document.body.appendChild(element);
67
    element.style.webkitGridColumnSpan = "5";
68
    element.style.webkitGridRowSpan = "12";
69
    shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-column-span')", "'5'");
70
    shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-row-span')", "'12'");
71
72
    element = document.createElement("div");
73
    document.body.appendChild(element);
74
    element.style.webkitGridColumnSpan = "1 2 3";
75
    element.style.webkitGridRowSpan = "4 5 6";
76
    shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-column-span')", "'1'");
77
    shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-row-span')", "'1'");
78
79
</script>
80
<script src="../js/resources/js-test-post.js"></script>
81
</body>
82
</html>
- a/Source/WebCore/ChangeLog +40 lines
Lines 1-3 a/Source/WebCore/ChangeLog_sec1
1
2012-12-21  Xan Lopez  <xlopez@igalia.com>
2
3
        [CSS Grid Layout] Add the plumbing to parse -webkit-grid-{column,row}-span
4
        https://bugs.webkit.org/show_bug.cgi?id=105548
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        Add basic plumbing to parse the column/row span properties. No
9
        effect on layout yet.
10
11
        Test: fast/css-grid-layout/grid-item-column-row-span-get-set.html
12
13
        * css/CSSComputedStyleDeclaration.cpp:
14
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
15
        Return the span values.
16
        * css/CSSParser.cpp:
17
        (WebCore::CSSParser::parseValue): Parse the new properties.
18
        * css/CSSProperty.cpp:
19
        (WebCore::CSSProperty::isInheritedProperty): Add new properties to
20
        the switch.
21
        * css/CSSPropertyNames.in:
22
        * css/StyleResolver.cpp:
23
        (WebCore::createGridSpan): Method to convert from the CSSValue to
24
        the span value.
25
        (WebCore::StyleResolver::applyProperty): Set the span values.
26
        * rendering/style/GridPosition.h:
27
        (WebCore::GridPosition::GridPosition):
28
        (GridPosition): Allow to construct a GridPosition with an integer
29
        value, to be used for the default span values ('1').
30
        * rendering/style/RenderStyle.h:
31
        * rendering/style/StyleGridItemData.cpp:
32
        (WebCore::StyleGridItemData::StyleGridItemData): Initialize the
33
        default span values.
34
        * rendering/style/StyleGridItemData.h:
35
        (WebCore::StyleGridItemData::operator==): Consider the span values
36
        when doing the == comparison.
37
        (StyleGridItemData): Add the span to the item data. We use a
38
        GridPosition, but only integer and identifier values will be
39
        allowed.
40
1
2012-12-04  Xan Lopez  <xlopez@igalia.com>
41
2012-12-04  Xan Lopez  <xlopez@igalia.com>
2
42
3
        [CSS] LenghtFunctions methods should receive a const RenderView
43
        [CSS] LenghtFunctions methods should receive a const RenderView
- a/Source/WebCore/css/CSSComputedStyleDeclaration.cpp +5 lines
Lines 1861-1866 PassRefPtr<CSSValue> CSSComputedStyleDeclaration::getPropertyCSSValue(CSSPropert a/Source/WebCore/css/CSSComputedStyleDeclaration.cpp_sec1
1861
        case CSSPropertyWebkitGridRow:
1861
        case CSSPropertyWebkitGridRow:
1862
            return valueForGridPosition(style->gridItemRow());
1862
            return valueForGridPosition(style->gridItemRow());
1863
1863
1864
        case CSSPropertyWebkitGridColumnSpan:
1865
            return valueForGridPosition(style->gridItemColumnSpan());
1866
        case CSSPropertyWebkitGridRowSpan:
1867
            return valueForGridPosition(style->gridItemRowSpan());
1868
1864
        case CSSPropertyHeight:
1869
        case CSSPropertyHeight:
1865
            if (renderer) {
1870
            if (renderer) {
1866
                // According to http://www.w3.org/TR/CSS2/visudet.html#the-height-property,
1871
                // According to http://www.w3.org/TR/CSS2/visudet.html#the-height-property,
- a/Source/WebCore/css/CSSParser.cpp +7 lines
Lines 2507-2512 bool CSSParser::parseValue(CSSPropertyID propId, bool important) a/Source/WebCore/css/CSSParser.cpp_sec1
2507
        validPrimitive = id == CSSValueAuto || validUnit(value, FInteger);
2507
        validPrimitive = id == CSSValueAuto || validUnit(value, FInteger);
2508
        break;
2508
        break;
2509
2509
2510
    case CSSPropertyWebkitGridColumnSpan:
2511
    case CSSPropertyWebkitGridRowSpan:
2512
        if (!cssGridLayoutEnabled())
2513
            return false;
2514
        validPrimitive = validUnit(value, FInteger);
2515
        break;
2516
2510
    case CSSPropertyWebkitMarginCollapse: {
2517
    case CSSPropertyWebkitMarginCollapse: {
2511
        if (num == 1) {
2518
        if (num == 1) {
2512
            ShorthandScope scope(this, CSSPropertyWebkitMarginCollapse);
2519
            ShorthandScope scope(this, CSSPropertyWebkitMarginCollapse);
- a/Source/WebCore/css/CSSProperty.cpp +2 lines
Lines 578-583 bool CSSProperty::isInheritedProperty(CSSPropertyID propertyID) a/Source/WebCore/css/CSSProperty.cpp_sec1
578
    case CSSPropertyWebkitGridRows:
578
    case CSSPropertyWebkitGridRows:
579
    case CSSPropertyWebkitGridColumn:
579
    case CSSPropertyWebkitGridColumn:
580
    case CSSPropertyWebkitGridRow:
580
    case CSSPropertyWebkitGridRow:
581
    case CSSPropertyWebkitGridColumnSpan:
582
    case CSSPropertyWebkitGridRowSpan:
581
    case CSSPropertyWebkitLineClamp:
583
    case CSSPropertyWebkitLineClamp:
582
    case CSSPropertyWebkitLogicalWidth:
584
    case CSSPropertyWebkitLogicalWidth:
583
    case CSSPropertyWebkitLogicalHeight:
585
    case CSSPropertyWebkitLogicalHeight:
- a/Source/WebCore/css/CSSPropertyNames.in +2 lines
Lines 294-299 z-index a/Source/WebCore/css/CSSPropertyNames.in_sec1
294
-webkit-grid-rows
294
-webkit-grid-rows
295
-webkit-grid-column
295
-webkit-grid-column
296
-webkit-grid-row
296
-webkit-grid-row
297
-webkit-grid-column-span
298
-webkit-grid-row-span
297
-webkit-highlight
299
-webkit-highlight
298
-webkit-hyphenate-character
300
-webkit-hyphenate-character
299
-webkit-hyphenate-limit-after
301
-webkit-hyphenate-limit-after
- a/Source/WebCore/css/StyleResolver.cpp +25 lines
Lines 2834-2839 static bool createGridTrackList(CSSValue* value, Vector<GridTrackSize>& trackSiz a/Source/WebCore/css/StyleResolver.cpp_sec1
2834
    return createGridTrackGroup(value, selector, trackSizes);
2834
    return createGridTrackGroup(value, selector, trackSizes);
2835
}
2835
}
2836
2836
2837
static bool createGridSpan(CSSValue *value, GridPosition& span)
2838
{
2839
    // For now, we only accept: <integer>
2840
    if (!value->isPrimitiveValue())
2841
        return false;
2842
2843
    CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value);
2844
    ASSERT(primitiveValue->isNumber());
2845
    span.setIntegerPosition(primitiveValue->getIntValue());
2846
    return true;
2847
}
2837
2848
2838
static bool createGridPosition(CSSValue* value, GridPosition& position)
2849
static bool createGridPosition(CSSValue* value, GridPosition& position)
2839
{
2850
{
Lines 3711-3716 void StyleResolver::applyProperty(CSSPropertyID id, CSSValue* value) a/Source/WebCore/css/StyleResolver.cpp_sec2
3711
        m_style->setGridItemRow(row);
3722
        m_style->setGridItemRow(row);
3712
        return;
3723
        return;
3713
    }
3724
    }
3725
    case CSSPropertyWebkitGridColumnSpan: {
3726
        GridPosition columnSpan;
3727
        if (!createGridSpan(value, columnSpan))
3728
            return;
3729
        m_style->setGridItemColumnSpan(columnSpan);
3730
        return;
3731
    }
3732
    case CSSPropertyWebkitGridRowSpan: {
3733
        GridPosition rowSpan;
3734
        if (!createGridSpan(value, rowSpan))
3735
            return;
3736
        m_style->setGridItemRowSpan(rowSpan);
3737
        return;
3738
    }
3714
    // These properties are implemented in the StyleBuilder lookup table.
3739
    // These properties are implemented in the StyleBuilder lookup table.
3715
    case CSSPropertyBackgroundAttachment:
3740
    case CSSPropertyBackgroundAttachment:
3716
    case CSSPropertyBackgroundClip:
3741
    case CSSPropertyBackgroundClip:
- a/Source/WebCore/rendering/style/GridPosition.h +6 lines
Lines 46-51 public: a/Source/WebCore/rendering/style/GridPosition.h_sec1
46
    {
46
    {
47
    }
47
    }
48
48
49
    GridPosition(int position)
50
        : m_type(IntegerPosition)
51
        , m_integerPosition(position)
52
    {
53
    }
54
49
    bool isPositive() const { return integerPosition() > 0; }
55
    bool isPositive() const { return integerPosition() > 0; }
50
56
51
    GridPositionType type() const { return m_type; }
57
    GridPositionType type() const { return m_type; }
- a/Source/WebCore/rendering/style/RenderStyle.h +9 lines
Lines 765-770 public: a/Source/WebCore/rendering/style/RenderStyle.h_sec1
765
    const GridPosition& gridItemColumn() const { return rareNonInheritedData->m_gridItem->m_gridColumn; }
765
    const GridPosition& gridItemColumn() const { return rareNonInheritedData->m_gridItem->m_gridColumn; }
766
    const GridPosition& gridItemRow() const { return rareNonInheritedData->m_gridItem->m_gridRow; }
766
    const GridPosition& gridItemRow() const { return rareNonInheritedData->m_gridItem->m_gridRow; }
767
767
768
    const GridPosition& gridItemColumnSpan() const { return rareNonInheritedData->m_gridItem->m_gridColumnSpan; }
769
    const GridPosition& gridItemRowSpan() const { return rareNonInheritedData->m_gridItem->m_gridRowSpan; }
770
768
    const ShadowData* boxShadow() const { return rareNonInheritedData->m_boxShadow.get(); }
771
    const ShadowData* boxShadow() const { return rareNonInheritedData->m_boxShadow.get(); }
769
    void getBoxShadowExtent(LayoutUnit& top, LayoutUnit& right, LayoutUnit& bottom, LayoutUnit& left) const { getShadowExtent(boxShadow(), top, right, bottom, left); }
772
    void getBoxShadowExtent(LayoutUnit& top, LayoutUnit& right, LayoutUnit& bottom, LayoutUnit& left) const { getShadowExtent(boxShadow(), top, right, bottom, left); }
770
    LayoutBoxExtent getBoxShadowInsetExtent() const { return getShadowInsetExtent(boxShadow()); }
773
    LayoutBoxExtent getBoxShadowInsetExtent() const { return getShadowInsetExtent(boxShadow()); }
Lines 1251-1256 public: a/Source/WebCore/rendering/style/RenderStyle.h_sec2
1251
    void setGridRows(const Vector<GridTrackSize>& lengths) { SET_VAR(rareNonInheritedData.access()->m_grid, m_gridRows, lengths); }
1254
    void setGridRows(const Vector<GridTrackSize>& lengths) { SET_VAR(rareNonInheritedData.access()->m_grid, m_gridRows, lengths); }
1252
    void setGridItemColumn(const GridPosition& columnPosition) { SET_VAR(rareNonInheritedData.access()->m_gridItem, m_gridColumn, columnPosition); }
1255
    void setGridItemColumn(const GridPosition& columnPosition) { SET_VAR(rareNonInheritedData.access()->m_gridItem, m_gridColumn, columnPosition); }
1253
    void setGridItemRow(const GridPosition& rowPosition) { SET_VAR(rareNonInheritedData.access()->m_gridItem, m_gridRow, rowPosition); }
1256
    void setGridItemRow(const GridPosition& rowPosition) { SET_VAR(rareNonInheritedData.access()->m_gridItem, m_gridRow, rowPosition); }
1257
    void setGridItemColumnSpan(const GridPosition& columnSpan) { SET_VAR(rareNonInheritedData.access()->m_gridItem, m_gridColumnSpan, columnSpan); }
1258
    void setGridItemRowSpan(const GridPosition& rowSpan) { SET_VAR(rareNonInheritedData.access()->m_gridItem, m_gridRowSpan, rowSpan); }
1254
1259
1255
    void setMarqueeIncrement(const Length& f) { SET_VAR(rareNonInheritedData.access()->m_marquee, increment, f); }
1260
    void setMarqueeIncrement(const Length& f) { SET_VAR(rareNonInheritedData.access()->m_marquee, increment, f); }
1256
    void setMarqueeSpeed(int f) { SET_VAR(rareNonInheritedData.access()->m_marquee, speed, f); }
1261
    void setMarqueeSpeed(int f) { SET_VAR(rareNonInheritedData.access()->m_marquee, speed, f); }
Lines 1654-1659 public: a/Source/WebCore/rendering/style/RenderStyle.h_sec3
1654
    static GridPosition initialGridItemColumn() { return GridPosition(); }
1659
    static GridPosition initialGridItemColumn() { return GridPosition(); }
1655
    static GridPosition initialGridItemRow() { return GridPosition(); }
1660
    static GridPosition initialGridItemRow() { return GridPosition(); }
1656
1661
1662
    // The initial value is '1' for column and row span
1663
    static GridPosition initialGridItemColumnSpan() { return GridPosition(1); }
1664
    static GridPosition initialGridItemRowSpan() { return GridPosition(1); }
1665
1657
    static unsigned initialTabSize() { return 8; }
1666
    static unsigned initialTabSize() { return 8; }
1658
1667
1659
    static const AtomicString& initialLineGrid() { return nullAtom; }
1668
    static const AtomicString& initialLineGrid() { return nullAtom; }
- a/Source/WebCore/rendering/style/StyleGridItemData.cpp +4 lines
Lines 37-42 namespace WebCore { a/Source/WebCore/rendering/style/StyleGridItemData.cpp_sec1
37
StyleGridItemData::StyleGridItemData()
37
StyleGridItemData::StyleGridItemData()
38
    : m_gridColumn(RenderStyle::initialGridItemColumn())
38
    : m_gridColumn(RenderStyle::initialGridItemColumn())
39
    , m_gridRow(RenderStyle::initialGridItemRow())
39
    , m_gridRow(RenderStyle::initialGridItemRow())
40
    , m_gridColumnSpan(RenderStyle::initialGridItemColumnSpan())
41
    , m_gridRowSpan(RenderStyle::initialGridItemRowSpan())
40
{
42
{
41
}
43
}
42
44
Lines 44-49 StyleGridItemData::StyleGridItemData(const StyleGridItemData& o) a/Source/WebCore/rendering/style/StyleGridItemData.cpp_sec2
44
    : RefCounted<StyleGridItemData>()
46
    : RefCounted<StyleGridItemData>()
45
    , m_gridColumn(o.m_gridColumn)
47
    , m_gridColumn(o.m_gridColumn)
46
    , m_gridRow(o.m_gridRow)
48
    , m_gridRow(o.m_gridRow)
49
    , m_gridColumnSpan(o.m_gridColumnSpan)
50
    , m_gridRowSpan(o.m_gridRowSpan)
47
{
51
{
48
}
52
}
49
53
- a/Source/WebCore/rendering/style/StyleGridItemData.h -2 / +3 lines
Lines 46-52 public: a/Source/WebCore/rendering/style/StyleGridItemData.h_sec1
46
46
47
    bool operator==(const StyleGridItemData& o) const
47
    bool operator==(const StyleGridItemData& o) const
48
    {
48
    {
49
        return m_gridColumn == o.m_gridColumn && m_gridRow == o.m_gridRow;
49
        return m_gridColumn == o.m_gridColumn && m_gridRow == o.m_gridRow && m_gridColumnSpan == o.m_gridColumnSpan && m_gridRowSpan == o.m_gridRowSpan;
50
    }
50
    }
51
51
52
    bool operator!=(const StyleGridItemData& o) const
52
    bool operator!=(const StyleGridItemData& o) const
Lines 57-62 public: a/Source/WebCore/rendering/style/StyleGridItemData.h_sec2
57
    GridPosition m_gridColumn;
57
    GridPosition m_gridColumn;
58
    GridPosition m_gridRow;
58
    GridPosition m_gridRow;
59
59
60
    GridPosition m_gridColumnSpan;
61
    GridPosition m_gridRowSpan;
60
private:
62
private:
61
    StyleGridItemData();
63
    StyleGridItemData();
62
    StyleGridItemData(const StyleGridItemData&);
64
    StyleGridItemData(const StyleGridItemData&);
63
- 

Return to Bug 105548