Chromium Code Reviews| 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 1744 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1755 { | 1755 { |
| 1756 return value && value->unit == CSSParserValue::Operator && value->iValue == ','; | 1756 return value && value->unit == CSSParserValue::Operator && value->iValue == ','; |
| 1757 } | 1757 } |
| 1758 | 1758 |
| 1759 static inline bool isForwardSlashOperator(CSSParserValue* value) | 1759 static inline bool isForwardSlashOperator(CSSParserValue* value) |
| 1760 { | 1760 { |
| 1761 ASSERT(value); | 1761 ASSERT(value); |
| 1762 return value->unit == CSSParserValue::Operator && value->iValue == '/'; | 1762 return value->unit == CSSParserValue::Operator && value->iValue == '/'; |
| 1763 } | 1763 } |
| 1764 | 1764 |
| 1765 bool CSSParser::validWidth(CSSParserValue* value) | 1765 bool CSSParser::validWidthOrHeight(CSSParserValue* value) |
| 1766 { | 1766 { |
| 1767 int id = value->id; | 1767 int id = value->id; |
| 1768 if (id == CSSValueIntrinsic || id == CSSValueMinIntrinsic || id == CSSValueW ebkitMinContent || id == CSSValueWebkitMaxContent || id == CSSValueWebkitFillAva ilable || id == CSSValueWebkitFitContent) | 1768 if (id == CSSValueIntrinsic || id == CSSValueMinIntrinsic || id == CSSValueW ebkitMinContent || id == CSSValueWebkitMaxContent || id == CSSValueWebkitFillAva ilable || id == CSSValueWebkitFitContent) |
| 1769 return true; | 1769 return true; |
| 1770 return !id && validUnit(value, FLength | FPercent | FNonNeg); | 1770 return !id && validUnit(value, FLength | FPercent | FNonNeg); |
| 1771 } | 1771 } |
| 1772 | 1772 |
| 1773 // FIXME: Combine this with validWidth when we support fit-content, et al, for h eights. | |
| 1774 bool CSSParser::validHeight(CSSParserValue* value) | |
| 1775 { | |
| 1776 int id = value->id; | |
| 1777 if (id == CSSValueIntrinsic || id == CSSValueMinIntrinsic) | |
| 1778 return true; | |
| 1779 return !id && validUnit(value, FLength | FPercent | FNonNeg); | |
| 1780 } | |
| 1781 | |
| 1782 inline PassRefPtr<CSSPrimitiveValue> CSSParser::parseValidPrimitive(int identifi er, CSSParserValue* value) | 1773 inline PassRefPtr<CSSPrimitiveValue> CSSParser::parseValidPrimitive(int identifi er, CSSParserValue* value) |
| 1783 { | 1774 { |
| 1784 if (identifier) | 1775 if (identifier) |
| 1785 return cssValuePool().createIdentifierValue(identifier); | 1776 return cssValuePool().createIdentifierValue(identifier); |
| 1786 if (value->unit == CSSPrimitiveValue::CSS_STRING) | 1777 if (value->unit == CSSPrimitiveValue::CSS_STRING) |
| 1787 return createPrimitiveStringValue(value); | 1778 return createPrimitiveStringValue(value); |
| 1788 if (value->unit >= CSSPrimitiveValue::CSS_NUMBER && value->unit <= CSSPrimit iveValue::CSS_KHZ) | 1779 if (value->unit >= CSSPrimitiveValue::CSS_NUMBER && value->unit <= CSSPrimit iveValue::CSS_KHZ) |
| 1789 return createPrimitiveNumericValue(value); | 1780 return createPrimitiveNumericValue(value); |
| 1790 if (value->unit >= CSSPrimitiveValue::CSS_TURN && value->unit <= CSSPrimitiv eValue::CSS_CHS) | 1781 if (value->unit >= CSSPrimitiveValue::CSS_TURN && value->unit <= CSSPrimitiv eValue::CSS_CHS) |
| 1791 return createPrimitiveNumericValue(value); | 1782 return createPrimitiveNumericValue(value); |
| (...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2202 case CSSPropertyPaddingLeft: //// | 2193 case CSSPropertyPaddingLeft: //// |
| 2203 case CSSPropertyWebkitPaddingStart: | 2194 case CSSPropertyWebkitPaddingStart: |
| 2204 case CSSPropertyWebkitPaddingEnd: | 2195 case CSSPropertyWebkitPaddingEnd: |
| 2205 case CSSPropertyWebkitPaddingBefore: | 2196 case CSSPropertyWebkitPaddingBefore: |
| 2206 case CSSPropertyWebkitPaddingAfter: | 2197 case CSSPropertyWebkitPaddingAfter: |
| 2207 validPrimitive = (!id && validUnit(value, FLength | FPercent | FNonNeg)) ; | 2198 validPrimitive = (!id && validUnit(value, FLength | FPercent | FNonNeg)) ; |
| 2208 break; | 2199 break; |
| 2209 | 2200 |
| 2210 case CSSPropertyMaxWidth: | 2201 case CSSPropertyMaxWidth: |
| 2211 case CSSPropertyWebkitMaxLogicalWidth: | 2202 case CSSPropertyWebkitMaxLogicalWidth: |
| 2212 validPrimitive = (id == CSSValueNone || validWidth(value)); | 2203 validPrimitive = (id == CSSValueNone || validWidthOrHeight(value)); |
| 2213 break; | 2204 break; |
| 2214 | 2205 |
| 2215 case CSSPropertyMinWidth: | 2206 case CSSPropertyMinWidth: |
| 2216 case CSSPropertyWebkitMinLogicalWidth: | 2207 case CSSPropertyWebkitMinLogicalWidth: |
| 2217 validPrimitive = validWidth(value); | 2208 validPrimitive = validWidthOrHeight(value); |
| 2218 break; | 2209 break; |
| 2219 | 2210 |
| 2220 case CSSPropertyWidth: | 2211 case CSSPropertyWidth: |
| 2221 case CSSPropertyWebkitLogicalWidth: | 2212 case CSSPropertyWebkitLogicalWidth: |
| 2222 validPrimitive = (id == CSSValueAuto || validWidth(value)); | 2213 validPrimitive = (id == CSSValueAuto || validWidthOrHeight(value)); |
| 2223 break; | 2214 break; |
| 2224 | 2215 |
| 2225 case CSSPropertyMaxHeight: | 2216 case CSSPropertyMaxHeight: |
| 2226 case CSSPropertyWebkitMaxLogicalHeight: | 2217 case CSSPropertyWebkitMaxLogicalHeight: |
| 2227 validPrimitive = (id == CSSValueNone || validHeight(value)); | 2218 validPrimitive = (id == CSSValueNone || validWidthOrHeight(value)); |
|
ojan
2013/04/11 03:21:46
You can merge this with the Width equivalent case.
cbiesinger
2013/04/12 01:17:52
Done.
| |
| 2228 break; | 2219 break; |
| 2229 | 2220 |
| 2230 case CSSPropertyMinHeight: | 2221 case CSSPropertyMinHeight: |
| 2231 case CSSPropertyWebkitMinLogicalHeight: | 2222 case CSSPropertyWebkitMinLogicalHeight: |
| 2232 validPrimitive = validHeight(value); | 2223 validPrimitive = validWidthOrHeight(value); |
| 2233 break; | 2224 break; |
| 2234 | 2225 |
| 2235 case CSSPropertyHeight: | 2226 case CSSPropertyHeight: |
| 2236 case CSSPropertyWebkitLogicalHeight: | 2227 case CSSPropertyWebkitLogicalHeight: |
| 2237 validPrimitive = (id == CSSValueAuto || validHeight(value)); | 2228 validPrimitive = (id == CSSValueAuto || validWidthOrHeight(value)); |
| 2238 break; | 2229 break; |
| 2239 | 2230 |
| 2240 case CSSPropertyFontSize: | 2231 case CSSPropertyFontSize: |
| 2241 return parseFontSize(important); | 2232 return parseFontSize(important); |
| 2242 | 2233 |
| 2243 case CSSPropertyFontVariant: // normal | small-caps | inherit | 2234 case CSSPropertyFontVariant: // normal | small-caps | inherit |
| 2244 return parseFontVariant(important); | 2235 return parseFontVariant(important); |
| 2245 | 2236 |
| 2246 case CSSPropertyVerticalAlign: | 2237 case CSSPropertyVerticalAlign: |
| 2247 // baseline | sub | super | top | text-top | middle | bottom | text-bott om | | 2238 // baseline | sub | super | top | text-top | middle | bottom | text-bott om | |
| (...skipping 9946 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 12194 { | 12185 { |
| 12195 // The tokenizer checks for the construct of an+b. | 12186 // The tokenizer checks for the construct of an+b. |
| 12196 // However, since the {ident} rule precedes the {nth} rule, some of those | 12187 // However, since the {ident} rule precedes the {nth} rule, some of those |
| 12197 // tokens are identified as string literal. Furthermore we need to accept | 12188 // tokens are identified as string literal. Furthermore we need to accept |
| 12198 // "odd" and "even" which does not match to an+b. | 12189 // "odd" and "even" which does not match to an+b. |
| 12199 return equalIgnoringCase(token, "odd") || equalIgnoringCase(token, "even") | 12190 return equalIgnoringCase(token, "odd") || equalIgnoringCase(token, "even") |
| 12200 || equalIgnoringCase(token, "n") || equalIgnoringCase(token, "-n"); | 12191 || equalIgnoringCase(token, "n") || equalIgnoringCase(token, "-n"); |
| 12201 } | 12192 } |
| 12202 | 12193 |
| 12203 } | 12194 } |
| OLD | NEW |