OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2004 Zack Rusin <zack@kde.org> | 2 * Copyright (C) 2004 Zack Rusin <zack@kde.org> |
3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc.
All rights reserved. | 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc.
All rights reserved. |
4 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> | 4 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> |
5 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> | 5 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> |
6 * Copyright (C) 2011 Sencha, Inc. All rights reserved. | 6 * Copyright (C) 2011 Sencha, Inc. All rights reserved. |
7 * | 7 * |
8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
9 * modify it under the terms of the GNU Lesser General Public | 9 * modify it under the terms of the GNU Lesser General Public |
10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
186 CSSPropertyVerticalAlign, | 186 CSSPropertyVerticalAlign, |
187 CSSPropertyWhiteSpace, | 187 CSSPropertyWhiteSpace, |
188 CSSPropertyWidows, | 188 CSSPropertyWidows, |
189 CSSPropertyWidth, | 189 CSSPropertyWidth, |
190 CSSPropertyWillChange, | 190 CSSPropertyWillChange, |
191 CSSPropertyWordBreak, | 191 CSSPropertyWordBreak, |
192 CSSPropertyWordSpacing, | 192 CSSPropertyWordSpacing, |
193 CSSPropertyWordWrap, | 193 CSSPropertyWordWrap, |
194 CSSPropertyZIndex, | 194 CSSPropertyZIndex, |
195 | 195 |
196 CSSPropertyWebkitAnimationDelay, | |
197 CSSPropertyWebkitAnimationDirection, | |
198 CSSPropertyWebkitAnimationDuration, | |
199 CSSPropertyWebkitAnimationFillMode, | |
200 CSSPropertyWebkitAnimationIterationCount, | |
201 CSSPropertyWebkitAnimationName, | |
202 CSSPropertyWebkitAnimationPlayState, | |
203 CSSPropertyWebkitAnimationTimingFunction, | |
204 CSSPropertyBackfaceVisibility, | 196 CSSPropertyBackfaceVisibility, |
205 CSSPropertyWebkitBackfaceVisibility, | 197 CSSPropertyWebkitBackfaceVisibility, |
206 CSSPropertyWebkitBackgroundClip, | 198 CSSPropertyWebkitBackgroundClip, |
207 CSSPropertyWebkitBackgroundComposite, | 199 CSSPropertyWebkitBackgroundComposite, |
208 CSSPropertyWebkitBackgroundOrigin, | 200 CSSPropertyWebkitBackgroundOrigin, |
209 CSSPropertyWebkitBackgroundSize, | 201 CSSPropertyWebkitBackgroundSize, |
210 CSSPropertyWebkitBorderHorizontalSpacing, | 202 CSSPropertyWebkitBorderHorizontalSpacing, |
211 CSSPropertyWebkitBorderImage, | 203 CSSPropertyWebkitBorderImage, |
212 CSSPropertyWebkitBorderVerticalSpacing, | 204 CSSPropertyWebkitBorderVerticalSpacing, |
213 CSSPropertyWebkitBoxDecorationBreak, | 205 CSSPropertyWebkitBoxDecorationBreak, |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
256 CSSPropertyWebkitTextFillColor, | 248 CSSPropertyWebkitTextFillColor, |
257 CSSPropertyWebkitTextOrientation, | 249 CSSPropertyWebkitTextOrientation, |
258 CSSPropertyWebkitTextStrokeColor, | 250 CSSPropertyWebkitTextStrokeColor, |
259 CSSPropertyWebkitTextStrokeWidth, | 251 CSSPropertyWebkitTextStrokeWidth, |
260 CSSPropertyTransform, | 252 CSSPropertyTransform, |
261 CSSPropertyWebkitTransform, | 253 CSSPropertyWebkitTransform, |
262 CSSPropertyTransformOrigin, | 254 CSSPropertyTransformOrigin, |
263 CSSPropertyWebkitTransformOrigin, | 255 CSSPropertyWebkitTransformOrigin, |
264 CSSPropertyTransformStyle, | 256 CSSPropertyTransformStyle, |
265 CSSPropertyWebkitTransformStyle, | 257 CSSPropertyWebkitTransformStyle, |
266 CSSPropertyWebkitTransitionDelay, | |
267 CSSPropertyWebkitTransitionDuration, | |
268 CSSPropertyWebkitTransitionProperty, | |
269 CSSPropertyWebkitTransitionTimingFunction, | |
270 CSSPropertyWebkitUserDrag, | 258 CSSPropertyWebkitUserDrag, |
271 CSSPropertyWebkitUserModify, | 259 CSSPropertyWebkitUserModify, |
272 CSSPropertyWebkitUserSelect, | 260 CSSPropertyWebkitUserSelect, |
273 CSSPropertyMaskSourceType, | 261 CSSPropertyMaskSourceType, |
274 }; | 262 }; |
275 | 263 |
276 static const Vector<CSSPropertyID>& computableProperties() | 264 static const Vector<CSSPropertyID>& computableProperties() |
277 { | 265 { |
278 DEFINE_STATIC_LOCAL(Vector<CSSPropertyID>, properties, ()); | 266 DEFINE_STATIC_LOCAL(Vector<CSSPropertyID>, properties, ()); |
279 if (properties.isEmpty()) | 267 if (properties.isEmpty()) |
(...skipping 1585 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1865 } | 1853 } |
1866 case CSSPropertyZIndex: | 1854 case CSSPropertyZIndex: |
1867 if (style->hasAutoZIndex()) | 1855 if (style->hasAutoZIndex()) |
1868 return cssValuePool().createIdentifierValue(CSSValueAuto); | 1856 return cssValuePool().createIdentifierValue(CSSValueAuto); |
1869 return cssValuePool().createValue(style->zIndex(), CSSPrimitiveValue
::CSS_NUMBER); | 1857 return cssValuePool().createValue(style->zIndex(), CSSPrimitiveValue
::CSS_NUMBER); |
1870 case CSSPropertyBoxSizing: | 1858 case CSSPropertyBoxSizing: |
1871 if (style->boxSizing() == CONTENT_BOX) | 1859 if (style->boxSizing() == CONTENT_BOX) |
1872 return cssValuePool().createIdentifierValue(CSSValueContentBox); | 1860 return cssValuePool().createIdentifierValue(CSSValueContentBox); |
1873 return cssValuePool().createIdentifierValue(CSSValueBorderBox); | 1861 return cssValuePool().createIdentifierValue(CSSValueBorderBox); |
1874 case CSSPropertyAnimationDelay: | 1862 case CSSPropertyAnimationDelay: |
1875 ASSERT(RuntimeEnabledFeatures::cssAnimationUnprefixedEnabled()); | |
1876 case CSSPropertyWebkitAnimationDelay: | |
1877 return valueForAnimationDelay(style->animations()); | 1863 return valueForAnimationDelay(style->animations()); |
1878 case CSSPropertyAnimationDirection: | 1864 case CSSPropertyAnimationDirection: { |
1879 ASSERT(RuntimeEnabledFeatures::cssAnimationUnprefixedEnabled()); | |
1880 case CSSPropertyWebkitAnimationDirection: { | |
1881 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); | 1865 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); |
1882 const CSSAnimationData* animationData = style->animations(); | 1866 const CSSAnimationData* animationData = style->animations(); |
1883 if (animationData) { | 1867 if (animationData) { |
1884 for (size_t i = 0; i < animationData->directionList().size(); ++
i) | 1868 for (size_t i = 0; i < animationData->directionList().size(); ++
i) |
1885 list->append(valueForAnimationDirection(animationData->direc
tionList()[i])); | 1869 list->append(valueForAnimationDirection(animationData->direc
tionList()[i])); |
1886 } else { | 1870 } else { |
1887 list->append(cssValuePool().createIdentifierValue(CSSValueNormal
)); | 1871 list->append(cssValuePool().createIdentifierValue(CSSValueNormal
)); |
1888 } | 1872 } |
1889 return list.release(); | 1873 return list.release(); |
1890 } | 1874 } |
1891 case CSSPropertyAnimationDuration: | 1875 case CSSPropertyAnimationDuration: |
1892 ASSERT(RuntimeEnabledFeatures::cssAnimationUnprefixedEnabled()); | |
1893 case CSSPropertyWebkitAnimationDuration: | |
1894 return valueForAnimationDuration(style->animations()); | 1876 return valueForAnimationDuration(style->animations()); |
1895 case CSSPropertyAnimationFillMode: | 1877 case CSSPropertyAnimationFillMode: { |
1896 ASSERT(RuntimeEnabledFeatures::cssAnimationUnprefixedEnabled()); | |
1897 case CSSPropertyWebkitAnimationFillMode: { | |
1898 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); | 1878 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); |
1899 const CSSAnimationData* animationData = style->animations(); | 1879 const CSSAnimationData* animationData = style->animations(); |
1900 if (animationData) { | 1880 if (animationData) { |
1901 for (size_t i = 0; i < animationData->fillModeList().size(); ++i
) | 1881 for (size_t i = 0; i < animationData->fillModeList().size(); ++i
) |
1902 list->append(valueForAnimationFillMode(animationData->fillMo
deList()[i])); | 1882 list->append(valueForAnimationFillMode(animationData->fillMo
deList()[i])); |
1903 } else { | 1883 } else { |
1904 list->append(cssValuePool().createIdentifierValue(CSSValueNone))
; | 1884 list->append(cssValuePool().createIdentifierValue(CSSValueNone))
; |
1905 } | 1885 } |
1906 return list.release(); | 1886 return list.release(); |
1907 } | 1887 } |
1908 case CSSPropertyAnimationIterationCount: | 1888 case CSSPropertyAnimationIterationCount: { |
1909 ASSERT(RuntimeEnabledFeatures::cssAnimationUnprefixedEnabled()); | |
1910 case CSSPropertyWebkitAnimationIterationCount: { | |
1911 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); | 1889 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); |
1912 const CSSAnimationData* animationData = style->animations(); | 1890 const CSSAnimationData* animationData = style->animations(); |
1913 if (animationData) { | 1891 if (animationData) { |
1914 for (size_t i = 0; i < animationData->iterationCountList().size(
); ++i) | 1892 for (size_t i = 0; i < animationData->iterationCountList().size(
); ++i) |
1915 list->append(valueForAnimationIterationCount(animationData->
iterationCountList()[i])); | 1893 list->append(valueForAnimationIterationCount(animationData->
iterationCountList()[i])); |
1916 } else { | 1894 } else { |
1917 list->append(cssValuePool().createValue(CSSAnimationData::initia
lIterationCount(), CSSPrimitiveValue::CSS_NUMBER)); | 1895 list->append(cssValuePool().createValue(CSSAnimationData::initia
lIterationCount(), CSSPrimitiveValue::CSS_NUMBER)); |
1918 } | 1896 } |
1919 return list.release(); | 1897 return list.release(); |
1920 } | 1898 } |
1921 case CSSPropertyAnimationName: | 1899 case CSSPropertyAnimationName: { |
1922 ASSERT(RuntimeEnabledFeatures::cssAnimationUnprefixedEnabled()); | |
1923 case CSSPropertyWebkitAnimationName: { | |
1924 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); | 1900 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); |
1925 const CSSAnimationData* animationData = style->animations(); | 1901 const CSSAnimationData* animationData = style->animations(); |
1926 if (animationData) { | 1902 if (animationData) { |
1927 for (size_t i = 0; i < animationData->nameList().size(); ++i) | 1903 for (size_t i = 0; i < animationData->nameList().size(); ++i) |
1928 list->append(cssValuePool().createValue(animationData->nameL
ist()[i], CSSPrimitiveValue::CSS_STRING)); | 1904 list->append(cssValuePool().createValue(animationData->nameL
ist()[i], CSSPrimitiveValue::CSS_STRING)); |
1929 } else { | 1905 } else { |
1930 list->append(cssValuePool().createIdentifierValue(CSSValueNone))
; | 1906 list->append(cssValuePool().createIdentifierValue(CSSValueNone))
; |
1931 } | 1907 } |
1932 return list.release(); | 1908 return list.release(); |
1933 } | 1909 } |
1934 case CSSPropertyAnimationPlayState: | 1910 case CSSPropertyAnimationPlayState: { |
1935 ASSERT(RuntimeEnabledFeatures::cssAnimationUnprefixedEnabled()); | |
1936 case CSSPropertyWebkitAnimationPlayState: { | |
1937 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); | 1911 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); |
1938 const CSSAnimationData* animationData = style->animations(); | 1912 const CSSAnimationData* animationData = style->animations(); |
1939 if (animationData) { | 1913 if (animationData) { |
1940 for (size_t i = 0; i < animationData->playStateList().size(); ++
i) | 1914 for (size_t i = 0; i < animationData->playStateList().size(); ++
i) |
1941 list->append(valueForAnimationPlayState(animationData->playS
tateList()[i])); | 1915 list->append(valueForAnimationPlayState(animationData->playS
tateList()[i])); |
1942 } else { | 1916 } else { |
1943 list->append(cssValuePool().createIdentifierValue(CSSValueRunnin
g)); | 1917 list->append(cssValuePool().createIdentifierValue(CSSValueRunnin
g)); |
1944 } | 1918 } |
1945 return list.release(); | 1919 return list.release(); |
1946 } | 1920 } |
1947 case CSSPropertyAnimationTimingFunction: | 1921 case CSSPropertyAnimationTimingFunction: |
1948 ASSERT(RuntimeEnabledFeatures::cssAnimationUnprefixedEnabled()); | |
1949 case CSSPropertyWebkitAnimationTimingFunction: | |
1950 return valueForAnimationTimingFunction(style->animations()); | 1922 return valueForAnimationTimingFunction(style->animations()); |
1951 case CSSPropertyAnimation: | 1923 case CSSPropertyAnimation: { |
1952 case CSSPropertyWebkitAnimation: { | |
1953 const CSSAnimationData* animationData = style->animations(); | 1924 const CSSAnimationData* animationData = style->animations(); |
1954 if (animationData) { | 1925 if (animationData) { |
1955 RefPtr<CSSValueList> animationsList = CSSValueList::createCommaS
eparated(); | 1926 RefPtr<CSSValueList> animationsList = CSSValueList::createCommaS
eparated(); |
1956 for (size_t i = 0; i < animationData->nameList().size(); ++i) { | 1927 for (size_t i = 0; i < animationData->nameList().size(); ++i) { |
1957 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparat
ed(); | 1928 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparat
ed(); |
1958 list->append(cssValuePool().createValue(animationData->nameL
ist()[i], CSSPrimitiveValue::CSS_STRING)); | 1929 list->append(cssValuePool().createValue(animationData->nameL
ist()[i], CSSPrimitiveValue::CSS_STRING)); |
1959 list->append(cssValuePool().createValue(CSSTimingData::getRe
peated(animationData->durationList(), i), CSSPrimitiveValue::CSS_S)); | 1930 list->append(cssValuePool().createValue(CSSTimingData::getRe
peated(animationData->durationList(), i), CSSPrimitiveValue::CSS_S)); |
1960 list->append(createTimingFunctionValue(CSSTimingData::getRep
eated(animationData->timingFunctionList(), i).get())); | 1931 list->append(createTimingFunctionValue(CSSTimingData::getRep
eated(animationData->timingFunctionList(), i).get())); |
1961 list->append(cssValuePool().createValue(CSSTimingData::getRe
peated(animationData->delayList(), i), CSSPrimitiveValue::CSS_S)); | 1932 list->append(cssValuePool().createValue(CSSTimingData::getRe
peated(animationData->delayList(), i), CSSPrimitiveValue::CSS_S)); |
1962 list->append(valueForAnimationIterationCount(CSSTimingData::
getRepeated(animationData->iterationCountList(), i))); | 1933 list->append(valueForAnimationIterationCount(CSSTimingData::
getRepeated(animationData->iterationCountList(), i))); |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2086 list->append(pixelValueForLength(style->transformOriginY(), *sty
le)); | 2057 list->append(pixelValueForLength(style->transformOriginY(), *sty
le)); |
2087 if (style->transformOriginZ() != 0) | 2058 if (style->transformOriginZ() != 0) |
2088 list->append(pixelValue(style->transformOriginZ(), *style)); | 2059 list->append(pixelValue(style->transformOriginZ(), *style)); |
2089 } | 2060 } |
2090 return list.release(); | 2061 return list.release(); |
2091 } | 2062 } |
2092 case CSSPropertyTransformStyle: | 2063 case CSSPropertyTransformStyle: |
2093 case CSSPropertyWebkitTransformStyle: | 2064 case CSSPropertyWebkitTransformStyle: |
2094 return cssValuePool().createIdentifierValue((style->transformStyle3D
() == TransformStyle3DPreserve3D) ? CSSValuePreserve3d : CSSValueFlat); | 2065 return cssValuePool().createIdentifierValue((style->transformStyle3D
() == TransformStyle3DPreserve3D) ? CSSValuePreserve3d : CSSValueFlat); |
2095 case CSSPropertyTransitionDelay: | 2066 case CSSPropertyTransitionDelay: |
2096 case CSSPropertyWebkitTransitionDelay: | |
2097 return valueForAnimationDelay(style->transitions()); | 2067 return valueForAnimationDelay(style->transitions()); |
2098 case CSSPropertyTransitionDuration: | 2068 case CSSPropertyTransitionDuration: |
2099 case CSSPropertyWebkitTransitionDuration: | |
2100 return valueForAnimationDuration(style->transitions()); | 2069 return valueForAnimationDuration(style->transitions()); |
2101 case CSSPropertyTransitionProperty: | 2070 case CSSPropertyTransitionProperty: |
2102 case CSSPropertyWebkitTransitionProperty: | |
2103 return valueForTransitionProperty(style->transitions()); | 2071 return valueForTransitionProperty(style->transitions()); |
2104 case CSSPropertyTransitionTimingFunction: | 2072 case CSSPropertyTransitionTimingFunction: |
2105 case CSSPropertyWebkitTransitionTimingFunction: | |
2106 return valueForAnimationTimingFunction(style->transitions()); | 2073 return valueForAnimationTimingFunction(style->transitions()); |
2107 case CSSPropertyTransition: | 2074 case CSSPropertyTransition: { |
2108 case CSSPropertyWebkitTransition: { | |
2109 const CSSTransitionData* transitionData = style->transitions(); | 2075 const CSSTransitionData* transitionData = style->transitions(); |
2110 if (transitionData) { | 2076 if (transitionData) { |
2111 RefPtr<CSSValueList> transitionsList = CSSValueList::createComma
Separated(); | 2077 RefPtr<CSSValueList> transitionsList = CSSValueList::createComma
Separated(); |
2112 for (size_t i = 0; i < transitionData->propertyList().size(); ++
i) { | 2078 for (size_t i = 0; i < transitionData->propertyList().size(); ++
i) { |
2113 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparat
ed(); | 2079 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparat
ed(); |
2114 list->append(createTransitionPropertyValue(transitionData->p
ropertyList()[i])); | 2080 list->append(createTransitionPropertyValue(transitionData->p
ropertyList()[i])); |
2115 list->append(cssValuePool().createValue(CSSTimingData::getRe
peated(transitionData->durationList(), i), CSSPrimitiveValue::CSS_S)); | 2081 list->append(cssValuePool().createValue(CSSTimingData::getRe
peated(transitionData->durationList(), i), CSSPrimitiveValue::CSS_S)); |
2116 list->append(createTimingFunctionValue(CSSTimingData::getRep
eated(transitionData->timingFunctionList(), i).get())); | 2082 list->append(createTimingFunctionValue(CSSTimingData::getRep
eated(transitionData->timingFunctionList(), i).get())); |
2117 list->append(cssValuePool().createValue(CSSTimingData::getRe
peated(transitionData->delayList(), i), CSSPrimitiveValue::CSS_S)); | 2083 list->append(cssValuePool().createValue(CSSTimingData::getRe
peated(transitionData->delayList(), i), CSSPrimitiveValue::CSS_S)); |
2118 transitionsList->append(list); | 2084 transitionsList->append(list); |
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2429 static const CSSPropertyID propertiesAfterSlashSeperator[3] = { CSSPropertyB
ackgroundSize, CSSPropertyBackgroundOrigin, | 2395 static const CSSPropertyID propertiesAfterSlashSeperator[3] = { CSSPropertyB
ackgroundSize, CSSPropertyBackgroundOrigin, |
2430 CSSPropertyB
ackgroundClip }; | 2396 CSSPropertyB
ackgroundClip }; |
2431 | 2397 |
2432 RefPtr<CSSValueList> list = CSSValueList::createSlashSeparated(); | 2398 RefPtr<CSSValueList> list = CSSValueList::createSlashSeparated(); |
2433 list->append(valuesForShorthandProperty(StylePropertyShorthand(CSSPropertyBa
ckground, propertiesBeforeSlashSeperator, WTF_ARRAY_LENGTH(propertiesBeforeSlash
Seperator)))); | 2399 list->append(valuesForShorthandProperty(StylePropertyShorthand(CSSPropertyBa
ckground, propertiesBeforeSlashSeperator, WTF_ARRAY_LENGTH(propertiesBeforeSlash
Seperator)))); |
2434 list->append(valuesForShorthandProperty(StylePropertyShorthand(CSSPropertyBa
ckground, propertiesAfterSlashSeperator, WTF_ARRAY_LENGTH(propertiesAfterSlashSe
perator)))); | 2400 list->append(valuesForShorthandProperty(StylePropertyShorthand(CSSPropertyBa
ckground, propertiesAfterSlashSeperator, WTF_ARRAY_LENGTH(propertiesAfterSlashSe
perator)))); |
2435 return list.release(); | 2401 return list.release(); |
2436 } | 2402 } |
2437 | 2403 |
2438 } // namespace blink | 2404 } // namespace blink |
OLD | NEW |