Chromium Code Reviews| 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 1031 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1042 return; \ | 1042 return; \ |
| 1043 } | 1043 } |
| 1044 | 1044 |
| 1045 #define HANDLE_SVG_INHERIT_AND_INITIAL(prop, Prop) \ | 1045 #define HANDLE_SVG_INHERIT_AND_INITIAL(prop, Prop) \ |
| 1046 HANDLE_SVG_INHERIT(prop, Prop) \ | 1046 HANDLE_SVG_INHERIT(prop, Prop) \ |
| 1047 if (isInitial) { \ | 1047 if (isInitial) { \ |
| 1048 state.style()->accessSVGStyle()->set##Prop(SVGRenderStyle::initial##Prop()); \ | 1048 state.style()->accessSVGStyle()->set##Prop(SVGRenderStyle::initial##Prop()); \ |
| 1049 return; \ | 1049 return; \ |
| 1050 } | 1050 } |
| 1051 | 1051 |
| 1052 static void createImplicitNamedGridLinesFromGridArea(const NamedGridAreaMap& nam edGridAreas, NamedGridLinesMap& namedGridLines, GridTrackSizingDirection directi on) | |
| 1053 { | |
| 1054 NamedGridAreaMap::const_iterator end = namedGridAreas.end(); | |
| 1055 for (NamedGridAreaMap::const_iterator it = namedGridAreas.begin(); it != end ; ++it) { | |
| 1056 GridSpan areaSpan = direction == ForRows ? it->value.rows : it->value.co lumns; | |
| 1057 | |
| 1058 NamedGridLinesMap::AddResult startResult = namedGridLines.add(it->key + "-start", Vector<size_t>()); | |
| 1059 startResult.storedValue->value.append(areaSpan.resolvedInitialPosition.t oInt()); | |
| 1060 std::sort(startResult.storedValue->value.begin(), startResult.storedValu e->value.end()); | |
| 1061 | |
| 1062 NamedGridLinesMap::AddResult endResult = namedGridLines.add(it->key + "- end", Vector<size_t>()); | |
| 1063 endResult.storedValue->value.append(areaSpan.resolvedFinalPosition.toInt () + 1); | |
| 1064 std::sort(endResult.storedValue->value.begin(), endResult.storedValue->v alue.end()); | |
| 1065 } | |
| 1066 } | |
| 1067 | |
| 1052 static GridLength createGridTrackBreadth(CSSPrimitiveValue* primitiveValue, cons t StyleResolverState& state) | 1068 static GridLength createGridTrackBreadth(CSSPrimitiveValue* primitiveValue, cons t StyleResolverState& state) |
| 1053 { | 1069 { |
| 1054 if (primitiveValue->getValueID() == CSSValueMinContent) | 1070 if (primitiveValue->getValueID() == CSSValueMinContent) |
| 1055 return Length(MinContent); | 1071 return Length(MinContent); |
| 1056 | 1072 |
| 1057 if (primitiveValue->getValueID() == CSSValueMaxContent) | 1073 if (primitiveValue->getValueID() == CSSValueMaxContent) |
| 1058 return Length(MaxContent); | 1074 return Length(MaxContent); |
| 1059 | 1075 |
| 1060 // Fractional unit. | 1076 // Fractional unit. |
| 1061 if (primitiveValue->isFlex()) | 1077 if (primitiveValue->isFlex()) |
| (...skipping 669 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1731 state.style()->setNamedGridColumnLines(RenderStyle::initialNamedGrid ColumnLines()); | 1747 state.style()->setNamedGridColumnLines(RenderStyle::initialNamedGrid ColumnLines()); |
| 1732 state.style()->setOrderedNamedGridColumnLines(RenderStyle::initialOr deredNamedGridColumnLines()); | 1748 state.style()->setOrderedNamedGridColumnLines(RenderStyle::initialOr deredNamedGridColumnLines()); |
| 1733 return; | 1749 return; |
| 1734 } | 1750 } |
| 1735 | 1751 |
| 1736 Vector<GridTrackSize> trackSizes; | 1752 Vector<GridTrackSize> trackSizes; |
| 1737 NamedGridLinesMap namedGridLines; | 1753 NamedGridLinesMap namedGridLines; |
| 1738 OrderedNamedGridLines orderedNamedGridLines; | 1754 OrderedNamedGridLines orderedNamedGridLines; |
| 1739 if (!createGridTrackList(value, trackSizes, namedGridLines, orderedNamed GridLines, state)) | 1755 if (!createGridTrackList(value, trackSizes, namedGridLines, orderedNamed GridLines, state)) |
| 1740 return; | 1756 return; |
| 1757 | |
| 1758 const NamedGridAreaMap& namedGridAreas = state.style()->namedGridArea(); | |
| 1759 if (!namedGridAreas.isEmpty()) | |
| 1760 createImplicitNamedGridLinesFromGridArea(namedGridAreas, namedGridLi nes, ForColumns); | |
| 1761 | |
| 1741 state.style()->setGridTemplateColumns(trackSizes); | 1762 state.style()->setGridTemplateColumns(trackSizes); |
| 1742 state.style()->setNamedGridColumnLines(namedGridLines); | 1763 state.style()->setNamedGridColumnLines(namedGridLines); |
| 1743 state.style()->setOrderedNamedGridColumnLines(orderedNamedGridLines); | 1764 state.style()->setOrderedNamedGridColumnLines(orderedNamedGridLines); |
| 1744 return; | 1765 return; |
| 1745 } | 1766 } |
| 1746 case CSSPropertyGridTemplateRows: { | 1767 case CSSPropertyGridTemplateRows: { |
| 1747 if (isInherit) { | 1768 if (isInherit) { |
| 1748 state.style()->setGridTemplateRows(state.parentStyle()->gridTemplate Rows()); | 1769 state.style()->setGridTemplateRows(state.parentStyle()->gridTemplate Rows()); |
| 1749 state.style()->setNamedGridRowLines(state.parentStyle()->namedGridRo wLines()); | 1770 state.style()->setNamedGridRowLines(state.parentStyle()->namedGridRo wLines()); |
| 1750 state.style()->setOrderedNamedGridRowLines(state.parentStyle()->orde redNamedGridRowLines()); | 1771 state.style()->setOrderedNamedGridRowLines(state.parentStyle()->orde redNamedGridRowLines()); |
| 1751 return; | 1772 return; |
| 1752 } | 1773 } |
| 1753 if (isInitial) { | 1774 if (isInitial) { |
| 1754 state.style()->setGridTemplateRows(RenderStyle::initialGridTemplateR ows()); | 1775 state.style()->setGridTemplateRows(RenderStyle::initialGridTemplateR ows()); |
| 1755 state.style()->setNamedGridRowLines(RenderStyle::initialNamedGridRow Lines()); | 1776 state.style()->setNamedGridRowLines(RenderStyle::initialNamedGridRow Lines()); |
| 1756 state.style()->setOrderedNamedGridRowLines(RenderStyle::initialOrder edNamedGridRowLines()); | 1777 state.style()->setOrderedNamedGridRowLines(RenderStyle::initialOrder edNamedGridRowLines()); |
| 1757 return; | 1778 return; |
| 1758 } | 1779 } |
| 1759 | 1780 |
| 1760 Vector<GridTrackSize> trackSizes; | 1781 Vector<GridTrackSize> trackSizes; |
| 1761 NamedGridLinesMap namedGridLines; | 1782 NamedGridLinesMap namedGridLines; |
| 1762 OrderedNamedGridLines orderedNamedGridLines; | 1783 OrderedNamedGridLines orderedNamedGridLines; |
| 1763 if (!createGridTrackList(value, trackSizes, namedGridLines, orderedNamed GridLines, state)) | 1784 if (!createGridTrackList(value, trackSizes, namedGridLines, orderedNamed GridLines, state)) |
| 1764 return; | 1785 return; |
| 1786 | |
| 1787 const NamedGridAreaMap& namedGridAreas = state.style()->namedGridArea(); | |
| 1788 if (!namedGridAreas.isEmpty()) | |
| 1789 createImplicitNamedGridLinesFromGridArea(namedGridAreas, namedGridLi nes, ForRows); | |
| 1790 | |
| 1765 state.style()->setGridTemplateRows(trackSizes); | 1791 state.style()->setGridTemplateRows(trackSizes); |
| 1766 state.style()->setNamedGridRowLines(namedGridLines); | 1792 state.style()->setNamedGridRowLines(namedGridLines); |
| 1767 state.style()->setOrderedNamedGridRowLines(orderedNamedGridLines); | 1793 state.style()->setOrderedNamedGridRowLines(orderedNamedGridLines); |
| 1768 return; | 1794 return; |
| 1769 } | 1795 } |
| 1770 | 1796 |
| 1771 case CSSPropertyGridColumnStart: { | 1797 case CSSPropertyGridColumnStart: { |
| 1772 HANDLE_INHERIT_AND_INITIAL(gridColumnStart, GridColumnStart); | 1798 HANDLE_INHERIT_AND_INITIAL(gridColumnStart, GridColumnStart); |
| 1773 GridPosition startPosition; | 1799 GridPosition startPosition; |
| 1774 if (!createGridPosition(value, startPosition)) | 1800 if (!createGridPosition(value, startPosition)) |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1815 state.style()->setNamedGridAreaColumnCount(RenderStyle::initialNamed GridAreaCount()); | 1841 state.style()->setNamedGridAreaColumnCount(RenderStyle::initialNamed GridAreaCount()); |
| 1816 return; | 1842 return; |
| 1817 } | 1843 } |
| 1818 | 1844 |
| 1819 if (value->isPrimitiveValue()) { | 1845 if (value->isPrimitiveValue()) { |
| 1820 ASSERT(toCSSPrimitiveValue(value)->getValueID() == CSSValueNone); | 1846 ASSERT(toCSSPrimitiveValue(value)->getValueID() == CSSValueNone); |
| 1821 return; | 1847 return; |
| 1822 } | 1848 } |
| 1823 | 1849 |
| 1824 CSSGridTemplateAreasValue* gridTemplateAreasValue = toCSSGridTemplateAre asValue(value); | 1850 CSSGridTemplateAreasValue* gridTemplateAreasValue = toCSSGridTemplateAre asValue(value); |
| 1825 state.style()->setNamedGridArea(gridTemplateAreasValue->gridAreaMap()); | 1851 const NamedGridAreaMap& newNamedGridAreas = gridTemplateAreasValue->grid AreaMap(); |
| 1852 | |
| 1853 NamedGridLinesMap namedGridColumnLines = state.style()->namedGridColumnL ines(); | |
| 1854 NamedGridLinesMap namedGridRowLines = state.style()->namedGridRowLines() ; | |
|
Julien - ping for review
2014/05/12 11:42:12
You're right about RenderStyle returning a constan
| |
| 1855 createImplicitNamedGridLinesFromGridArea(newNamedGridAreas, namedGridCol umnLines, ForColumns); | |
| 1856 createImplicitNamedGridLinesFromGridArea(newNamedGridAreas, namedGridRow Lines, ForRows); | |
| 1857 state.style()->setNamedGridColumnLines(namedGridColumnLines); | |
| 1858 state.style()->setNamedGridRowLines(namedGridRowLines); | |
| 1859 | |
| 1860 state.style()->setNamedGridArea(newNamedGridAreas); | |
| 1826 state.style()->setNamedGridAreaRowCount(gridTemplateAreasValue->rowCount ()); | 1861 state.style()->setNamedGridAreaRowCount(gridTemplateAreasValue->rowCount ()); |
| 1827 state.style()->setNamedGridAreaColumnCount(gridTemplateAreasValue->colum nCount()); | 1862 state.style()->setNamedGridAreaColumnCount(gridTemplateAreasValue->colum nCount()); |
| 1828 return; | 1863 return; |
| 1829 } | 1864 } |
| 1830 | 1865 |
| 1831 case CSSPropertyJustifySelf: { | 1866 case CSSPropertyJustifySelf: { |
| 1832 HANDLE_INHERIT_AND_INITIAL(justifySelf, JustifySelf); | 1867 HANDLE_INHERIT_AND_INITIAL(justifySelf, JustifySelf); |
| 1833 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); | 1868 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
| 1834 if (Pair* pairValue = primitiveValue->getPairValue()) { | 1869 if (Pair* pairValue = primitiveValue->getPairValue()) { |
| 1835 state.style()->setJustifySelf(*pairValue->first()); | 1870 state.style()->setJustifySelf(*pairValue->first()); |
| (...skipping 459 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2295 break; | 2330 break; |
| 2296 } | 2331 } |
| 2297 case CSSPropertyEnableBackground: | 2332 case CSSPropertyEnableBackground: |
| 2298 // Silently ignoring this property for now | 2333 // Silently ignoring this property for now |
| 2299 // http://bugs.webkit.org/show_bug.cgi?id=6022 | 2334 // http://bugs.webkit.org/show_bug.cgi?id=6022 |
| 2300 break; | 2335 break; |
| 2301 } | 2336 } |
| 2302 } | 2337 } |
| 2303 | 2338 |
| 2304 } // namespace WebCore | 2339 } // namespace WebCore |
| OLD | NEW |