OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
3 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 3 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
4 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) | 4 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) |
5 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) | 5 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) |
6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc.
All rights reserved. | 6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc.
All rights reserved. |
7 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> | 7 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> |
8 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> | 8 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> |
9 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) | 9 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) |
10 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. | 10 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. |
(...skipping 939 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
950 return GridTrackSize(createGridTrackBreadth(toCSSPrimitiveValue(value),
state)); | 950 return GridTrackSize(createGridTrackBreadth(toCSSPrimitiveValue(value),
state)); |
951 | 951 |
952 CSSFunctionValue* minmaxFunction = toCSSFunctionValue(value); | 952 CSSFunctionValue* minmaxFunction = toCSSFunctionValue(value); |
953 CSSValueList* arguments = minmaxFunction->arguments(); | 953 CSSValueList* arguments = minmaxFunction->arguments(); |
954 ASSERT_WITH_SECURITY_IMPLICATION(arguments->length() == 2); | 954 ASSERT_WITH_SECURITY_IMPLICATION(arguments->length() == 2); |
955 GridLength minTrackBreadth(createGridTrackBreadth(toCSSPrimitiveValue(argume
nts->itemWithoutBoundsCheck(0)), state)); | 955 GridLength minTrackBreadth(createGridTrackBreadth(toCSSPrimitiveValue(argume
nts->itemWithoutBoundsCheck(0)), state)); |
956 GridLength maxTrackBreadth(createGridTrackBreadth(toCSSPrimitiveValue(argume
nts->itemWithoutBoundsCheck(1)), state)); | 956 GridLength maxTrackBreadth(createGridTrackBreadth(toCSSPrimitiveValue(argume
nts->itemWithoutBoundsCheck(1)), state)); |
957 return GridTrackSize(minTrackBreadth, maxTrackBreadth); | 957 return GridTrackSize(minTrackBreadth, maxTrackBreadth); |
958 } | 958 } |
959 | 959 |
960 static bool createGridTrackList(CSSValue* value, Vector<GridTrackSize>& trackSiz
es, NamedGridLinesMap& namedGridLines, OrderedNamedGridLines& orderedNamedGridLi
nes, const StyleResolverState& state) | 960 static bool createGridTrackList(CSSValue* value, Vector<GridTrackSize>& trackSiz
es, OrderedNamedGridLines& orderedNamedGridLines, const StyleResolverState& stat
e) |
961 { | 961 { |
962 // Handle 'none'. | 962 // Handle 'none'. |
963 if (value->isPrimitiveValue()) { | 963 if (value->isPrimitiveValue()) { |
964 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); | 964 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
965 return primitiveValue->getValueID() == CSSValueNone; | 965 return primitiveValue->getValueID() == CSSValueNone; |
966 } | 966 } |
967 | 967 |
968 if (!value->isValueList()) | 968 if (!value->isValueList()) |
969 return false; | 969 return false; |
970 | 970 |
971 size_t currentNamedGridLine = 0; | 971 size_t currentNamedGridLine = 0; |
972 for (CSSValueListIterator i = value; i.hasMore(); i.advance()) { | 972 for (CSSValueListIterator i = value; i.hasMore(); i.advance()) { |
973 CSSValue* currValue = i.value(); | 973 CSSValue* currValue = i.value(); |
974 if (currValue->isGridLineNamesValue()) { | 974 if (currValue->isGridLineNamesValue()) { |
975 CSSGridLineNamesValue* lineNamesValue = toCSSGridLineNamesValue(curr
Value); | 975 CSSGridLineNamesValue* lineNamesValue = toCSSGridLineNamesValue(curr
Value); |
976 for (CSSValueListIterator j = lineNamesValue; j.hasMore(); j.advance
()) { | 976 for (CSSValueListIterator j = lineNamesValue; j.hasMore(); j.advance
()) { |
977 String namedGridLine = toCSSPrimitiveValue(j.value())->getString
Value(); | |
978 NamedGridLinesMap::AddResult result = namedGridLines.add(namedGr
idLine, Vector<size_t>()); | |
979 result.storedValue->value.append(currentNamedGridLine); | |
980 OrderedNamedGridLines::AddResult orderedInsertionResult = ordere
dNamedGridLines.add(currentNamedGridLine, Vector<String>()); | 977 OrderedNamedGridLines::AddResult orderedInsertionResult = ordere
dNamedGridLines.add(currentNamedGridLine, Vector<String>()); |
981 orderedInsertionResult.storedValue->value.append(namedGridLine); | 978 orderedInsertionResult.storedValue->value.append(toCSSPrimitiveV
alue(j.value())->getStringValue()); |
982 } | 979 } |
983 continue; | 980 continue; |
984 } | 981 } |
985 | 982 |
986 ++currentNamedGridLine; | 983 ++currentNamedGridLine; |
987 trackSizes.append(createGridTrackSize(currValue, state)); | 984 trackSizes.append(createGridTrackSize(currValue, state)); |
988 } | 985 } |
989 | 986 |
990 // The parser should have rejected any <track-list> without any <track-size>
as | 987 // The parser should have rejected any <track-list> without any <track-size>
as |
991 // this is not conformant to the syntax. | 988 // this is not conformant to the syntax. |
(...skipping 599 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1591 return; | 1588 return; |
1592 } | 1589 } |
1593 case CSSPropertyGridAutoRows: { | 1590 case CSSPropertyGridAutoRows: { |
1594 HANDLE_INHERIT_AND_INITIAL(gridAutoRows, GridAutoRows); | 1591 HANDLE_INHERIT_AND_INITIAL(gridAutoRows, GridAutoRows); |
1595 state.style()->setGridAutoRows(createGridTrackSize(value, state)); | 1592 state.style()->setGridAutoRows(createGridTrackSize(value, state)); |
1596 return; | 1593 return; |
1597 } | 1594 } |
1598 case CSSPropertyGridTemplateColumns: { | 1595 case CSSPropertyGridTemplateColumns: { |
1599 if (isInherit) { | 1596 if (isInherit) { |
1600 state.style()->setGridTemplateColumns(state.parentStyle()->gridTempl
ateColumns()); | 1597 state.style()->setGridTemplateColumns(state.parentStyle()->gridTempl
ateColumns()); |
1601 state.style()->setNamedGridColumnLines(state.parentStyle()->namedGri
dColumnLines()); | |
1602 state.style()->setOrderedNamedGridColumnLines(state.parentStyle()->o
rderedNamedGridColumnLines()); | 1598 state.style()->setOrderedNamedGridColumnLines(state.parentStyle()->o
rderedNamedGridColumnLines()); |
1603 return; | 1599 return; |
1604 } | 1600 } |
1605 if (isInitial) { | 1601 if (isInitial) { |
1606 state.style()->setGridTemplateColumns(RenderStyle::initialGridTempla
teColumns()); | 1602 state.style()->setGridTemplateColumns(RenderStyle::initialGridTempla
teColumns()); |
1607 state.style()->setNamedGridColumnLines(RenderStyle::initialNamedGrid
ColumnLines()); | |
1608 state.style()->setOrderedNamedGridColumnLines(RenderStyle::initialOr
deredNamedGridColumnLines()); | 1603 state.style()->setOrderedNamedGridColumnLines(RenderStyle::initialOr
deredNamedGridColumnLines()); |
1609 return; | 1604 return; |
1610 } | 1605 } |
1611 | 1606 |
1612 Vector<GridTrackSize> trackSizes; | 1607 Vector<GridTrackSize> trackSizes; |
1613 NamedGridLinesMap namedGridLines; | |
1614 OrderedNamedGridLines orderedNamedGridLines; | 1608 OrderedNamedGridLines orderedNamedGridLines; |
1615 if (!createGridTrackList(value, trackSizes, namedGridLines, orderedNamed
GridLines, state)) | 1609 if (!createGridTrackList(value, trackSizes, orderedNamedGridLines, state
)) |
1616 return; | 1610 return; |
| 1611 |
1617 state.style()->setGridTemplateColumns(trackSizes); | 1612 state.style()->setGridTemplateColumns(trackSizes); |
1618 state.style()->setNamedGridColumnLines(namedGridLines); | |
1619 state.style()->setOrderedNamedGridColumnLines(orderedNamedGridLines); | 1613 state.style()->setOrderedNamedGridColumnLines(orderedNamedGridLines); |
1620 return; | 1614 return; |
1621 } | 1615 } |
1622 case CSSPropertyGridTemplateRows: { | 1616 case CSSPropertyGridTemplateRows: { |
1623 if (isInherit) { | 1617 if (isInherit) { |
1624 state.style()->setGridTemplateRows(state.parentStyle()->gridTemplate
Rows()); | 1618 state.style()->setGridTemplateRows(state.parentStyle()->gridTemplate
Rows()); |
1625 state.style()->setNamedGridRowLines(state.parentStyle()->namedGridRo
wLines()); | |
1626 state.style()->setOrderedNamedGridRowLines(state.parentStyle()->orde
redNamedGridRowLines()); | 1619 state.style()->setOrderedNamedGridRowLines(state.parentStyle()->orde
redNamedGridRowLines()); |
1627 return; | 1620 return; |
1628 } | 1621 } |
1629 if (isInitial) { | 1622 if (isInitial) { |
1630 state.style()->setGridTemplateRows(RenderStyle::initialGridTemplateR
ows()); | 1623 state.style()->setGridTemplateRows(RenderStyle::initialGridTemplateR
ows()); |
1631 state.style()->setNamedGridRowLines(RenderStyle::initialNamedGridRow
Lines()); | |
1632 state.style()->setOrderedNamedGridRowLines(RenderStyle::initialOrder
edNamedGridRowLines()); | 1624 state.style()->setOrderedNamedGridRowLines(RenderStyle::initialOrder
edNamedGridRowLines()); |
1633 return; | 1625 return; |
1634 } | 1626 } |
1635 | 1627 |
1636 Vector<GridTrackSize> trackSizes; | 1628 Vector<GridTrackSize> trackSizes; |
1637 NamedGridLinesMap namedGridLines; | |
1638 OrderedNamedGridLines orderedNamedGridLines; | 1629 OrderedNamedGridLines orderedNamedGridLines; |
1639 if (!createGridTrackList(value, trackSizes, namedGridLines, orderedNamed
GridLines, state)) | 1630 if (!createGridTrackList(value, trackSizes, orderedNamedGridLines, state
)) |
1640 return; | 1631 return; |
| 1632 |
1641 state.style()->setGridTemplateRows(trackSizes); | 1633 state.style()->setGridTemplateRows(trackSizes); |
1642 state.style()->setNamedGridRowLines(namedGridLines); | |
1643 state.style()->setOrderedNamedGridRowLines(orderedNamedGridLines); | 1634 state.style()->setOrderedNamedGridRowLines(orderedNamedGridLines); |
1644 return; | 1635 return; |
1645 } | 1636 } |
1646 | 1637 |
1647 case CSSPropertyGridColumnStart: { | 1638 case CSSPropertyGridColumnStart: { |
1648 HANDLE_INHERIT_AND_INITIAL(gridColumnStart, GridColumnStart); | 1639 HANDLE_INHERIT_AND_INITIAL(gridColumnStart, GridColumnStart); |
1649 GridPosition startPosition; | 1640 GridPosition startPosition; |
1650 if (!createGridPosition(value, startPosition)) | 1641 if (!createGridPosition(value, startPosition)) |
1651 return; | 1642 return; |
1652 state.style()->setGridColumnStart(startPosition); | 1643 state.style()->setGridColumnStart(startPosition); |
(...skipping 524 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2177 break; | 2168 break; |
2178 } | 2169 } |
2179 case CSSPropertyEnableBackground: | 2170 case CSSPropertyEnableBackground: |
2180 // Silently ignoring this property for now | 2171 // Silently ignoring this property for now |
2181 // http://bugs.webkit.org/show_bug.cgi?id=6022 | 2172 // http://bugs.webkit.org/show_bug.cgi?id=6022 |
2182 break; | 2173 break; |
2183 } | 2174 } |
2184 } | 2175 } |
2185 | 2176 |
2186 } // namespace WebCore | 2177 } // namespace WebCore |
OLD | NEW |