OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2003 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 2003 Lars Knoll (knoll@kde.org) |
3 * Copyright (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) | 3 * Copyright (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) |
4 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc.
All rights reserved. | 4 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc.
All rights reserved. |
5 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> | 5 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> |
6 * Copyright (C) 2008 Eric Seidel <eric@webkit.org> | 6 * Copyright (C) 2008 Eric Seidel <eric@webkit.org> |
7 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) | 7 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) |
8 * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved. | 8 * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved. |
9 * Copyright (C) 2012 Intel Corporation. All rights reserved. | 9 * Copyright (C) 2012 Intel Corporation. All rights reserved. |
10 * | 10 * |
(...skipping 1676 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1687 { | 1687 { |
1688 return value && value->unit == CSSParserValue::Operator && value->iValue ==
','; | 1688 return value && value->unit == CSSParserValue::Operator && value->iValue ==
','; |
1689 } | 1689 } |
1690 | 1690 |
1691 static inline bool isForwardSlashOperator(CSSParserValue* value) | 1691 static inline bool isForwardSlashOperator(CSSParserValue* value) |
1692 { | 1692 { |
1693 ASSERT(value); | 1693 ASSERT(value); |
1694 return value->unit == CSSParserValue::Operator && value->iValue == '/'; | 1694 return value->unit == CSSParserValue::Operator && value->iValue == '/'; |
1695 } | 1695 } |
1696 | 1696 |
1697 bool CSSParser::validWidth(CSSParserValue* value) | 1697 bool CSSParser::validWidthOrHeight(CSSParserValue* value) |
1698 { | 1698 { |
1699 int id = value->id; | 1699 int id = value->id; |
1700 if (id == CSSValueIntrinsic || id == CSSValueMinIntrinsic || id == CSSValueW
ebkitMinContent || id == CSSValueWebkitMaxContent || id == CSSValueWebkitFillAva
ilable || id == CSSValueWebkitFitContent) | 1700 if (id == CSSValueIntrinsic || id == CSSValueMinIntrinsic || id == CSSValueW
ebkitMinContent || id == CSSValueWebkitMaxContent || id == CSSValueWebkitFillAva
ilable || id == CSSValueWebkitFitContent) |
1701 return true; | 1701 return true; |
1702 return !id && validUnit(value, FLength | FPercent | FNonNeg); | 1702 return !id && validUnit(value, FLength | FPercent | FNonNeg); |
1703 } | 1703 } |
1704 | 1704 |
1705 // FIXME: Combine this with validWidth when we support fit-content, et al, for h
eights. | |
1706 bool CSSParser::validHeight(CSSParserValue* value) | |
1707 { | |
1708 int id = value->id; | |
1709 if (id == CSSValueIntrinsic || id == CSSValueMinIntrinsic) | |
1710 return true; | |
1711 return !id && validUnit(value, FLength | FPercent | FNonNeg); | |
1712 } | |
1713 | |
1714 inline PassRefPtr<CSSPrimitiveValue> CSSParser::parseValidPrimitive(int identifi
er, CSSParserValue* value) | 1705 inline PassRefPtr<CSSPrimitiveValue> CSSParser::parseValidPrimitive(int identifi
er, CSSParserValue* value) |
1715 { | 1706 { |
1716 if (identifier) | 1707 if (identifier) |
1717 return cssValuePool().createIdentifierValue(identifier); | 1708 return cssValuePool().createIdentifierValue(identifier); |
1718 if (value->unit == CSSPrimitiveValue::CSS_STRING) | 1709 if (value->unit == CSSPrimitiveValue::CSS_STRING) |
1719 return createPrimitiveStringValue(value); | 1710 return createPrimitiveStringValue(value); |
1720 if (value->unit >= CSSPrimitiveValue::CSS_NUMBER && value->unit <= CSSPrimit
iveValue::CSS_KHZ) | 1711 if (value->unit >= CSSPrimitiveValue::CSS_NUMBER && value->unit <= CSSPrimit
iveValue::CSS_KHZ) |
1721 return createPrimitiveNumericValue(value); | 1712 return createPrimitiveNumericValue(value); |
1722 if (value->unit >= CSSPrimitiveValue::CSS_TURN && value->unit <= CSSPrimitiv
eValue::CSS_CHS) | 1713 if (value->unit >= CSSPrimitiveValue::CSS_TURN && value->unit <= CSSPrimitiv
eValue::CSS_CHS) |
1723 return createPrimitiveNumericValue(value); | 1714 return createPrimitiveNumericValue(value); |
(...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2130 case CSSPropertyPaddingLeft: //// | 2121 case CSSPropertyPaddingLeft: //// |
2131 case CSSPropertyWebkitPaddingStart: | 2122 case CSSPropertyWebkitPaddingStart: |
2132 case CSSPropertyWebkitPaddingEnd: | 2123 case CSSPropertyWebkitPaddingEnd: |
2133 case CSSPropertyWebkitPaddingBefore: | 2124 case CSSPropertyWebkitPaddingBefore: |
2134 case CSSPropertyWebkitPaddingAfter: | 2125 case CSSPropertyWebkitPaddingAfter: |
2135 validPrimitive = (!id && validUnit(value, FLength | FPercent | FNonNeg))
; | 2126 validPrimitive = (!id && validUnit(value, FLength | FPercent | FNonNeg))
; |
2136 break; | 2127 break; |
2137 | 2128 |
2138 case CSSPropertyMaxWidth: | 2129 case CSSPropertyMaxWidth: |
2139 case CSSPropertyWebkitMaxLogicalWidth: | 2130 case CSSPropertyWebkitMaxLogicalWidth: |
2140 validPrimitive = (id == CSSValueNone || validWidth(value)); | 2131 case CSSPropertyMaxHeight: |
| 2132 case CSSPropertyWebkitMaxLogicalHeight: |
| 2133 validPrimitive = (id == CSSValueNone || validWidthOrHeight(value)); |
2141 break; | 2134 break; |
2142 | 2135 |
2143 case CSSPropertyMinWidth: | 2136 case CSSPropertyMinWidth: |
2144 case CSSPropertyWebkitMinLogicalWidth: | 2137 case CSSPropertyWebkitMinLogicalWidth: |
2145 validPrimitive = validWidth(value); | 2138 case CSSPropertyMinHeight: |
| 2139 case CSSPropertyWebkitMinLogicalHeight: |
| 2140 validPrimitive = validWidthOrHeight(value); |
2146 break; | 2141 break; |
2147 | 2142 |
2148 case CSSPropertyWidth: | 2143 case CSSPropertyWidth: |
2149 case CSSPropertyWebkitLogicalWidth: | 2144 case CSSPropertyWebkitLogicalWidth: |
2150 validPrimitive = (id == CSSValueAuto || validWidth(value)); | |
2151 break; | |
2152 | |
2153 case CSSPropertyMaxHeight: | |
2154 case CSSPropertyWebkitMaxLogicalHeight: | |
2155 validPrimitive = (id == CSSValueNone || validHeight(value)); | |
2156 break; | |
2157 | |
2158 case CSSPropertyMinHeight: | |
2159 case CSSPropertyWebkitMinLogicalHeight: | |
2160 validPrimitive = validHeight(value); | |
2161 break; | |
2162 | |
2163 case CSSPropertyHeight: | 2145 case CSSPropertyHeight: |
2164 case CSSPropertyWebkitLogicalHeight: | 2146 case CSSPropertyWebkitLogicalHeight: |
2165 validPrimitive = (id == CSSValueAuto || validHeight(value)); | 2147 validPrimitive = (id == CSSValueAuto || validWidthOrHeight(value)); |
2166 break; | 2148 break; |
2167 | 2149 |
2168 case CSSPropertyFontSize: | 2150 case CSSPropertyFontSize: |
2169 return parseFontSize(important); | 2151 return parseFontSize(important); |
2170 | 2152 |
2171 case CSSPropertyFontVariant: // normal | small-caps | inherit | 2153 case CSSPropertyFontVariant: // normal | small-caps | inherit |
2172 return parseFontVariant(important); | 2154 return parseFontVariant(important); |
2173 | 2155 |
2174 case CSSPropertyVerticalAlign: | 2156 case CSSPropertyVerticalAlign: |
2175 // baseline | sub | super | top | text-top | middle | bottom | text-bott
om | | 2157 // baseline | sub | super | top | text-top | middle | bottom | text-bott
om | |
(...skipping 9565 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11741 { | 11723 { |
11742 // The tokenizer checks for the construct of an+b. | 11724 // The tokenizer checks for the construct of an+b. |
11743 // However, since the {ident} rule precedes the {nth} rule, some of those | 11725 // However, since the {ident} rule precedes the {nth} rule, some of those |
11744 // tokens are identified as string literal. Furthermore we need to accept | 11726 // tokens are identified as string literal. Furthermore we need to accept |
11745 // "odd" and "even" which does not match to an+b. | 11727 // "odd" and "even" which does not match to an+b. |
11746 return equalIgnoringCase(token, "odd") || equalIgnoringCase(token, "even") | 11728 return equalIgnoringCase(token, "odd") || equalIgnoringCase(token, "even") |
11747 || equalIgnoringCase(token, "n") || equalIgnoringCase(token, "-n"); | 11729 || equalIgnoringCase(token, "n") || equalIgnoringCase(token, "-n"); |
11748 } | 11730 } |
11749 | 11731 |
11750 } | 11732 } |
OLD | NEW |