| 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 |