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 1594 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1605 case CSSPrimitiveValue::CSS_MS: | 1605 case CSSPrimitiveValue::CSS_MS: |
| 1606 case CSSPrimitiveValue::CSS_S: | 1606 case CSSPrimitiveValue::CSS_S: |
| 1607 b = (unitflags & FTime); | 1607 b = (unitflags & FTime); |
| 1608 break; | 1608 break; |
| 1609 case CSSPrimitiveValue::CSS_DEG: | 1609 case CSSPrimitiveValue::CSS_DEG: |
| 1610 case CSSPrimitiveValue::CSS_RAD: | 1610 case CSSPrimitiveValue::CSS_RAD: |
| 1611 case CSSPrimitiveValue::CSS_GRAD: | 1611 case CSSPrimitiveValue::CSS_GRAD: |
| 1612 case CSSPrimitiveValue::CSS_TURN: | 1612 case CSSPrimitiveValue::CSS_TURN: |
| 1613 b = (unitflags & FAngle); | 1613 b = (unitflags & FAngle); |
| 1614 break; | 1614 break; |
| 1615 #if ENABLE(RESOLUTION_MEDIA_QUERY) | |
| 1616 case CSSPrimitiveValue::CSS_DPPX: | 1615 case CSSPrimitiveValue::CSS_DPPX: |
| 1617 case CSSPrimitiveValue::CSS_DPI: | 1616 case CSSPrimitiveValue::CSS_DPI: |
| 1618 case CSSPrimitiveValue::CSS_DPCM: | 1617 case CSSPrimitiveValue::CSS_DPCM: |
| 1619 b = (unitflags & FResolution); | 1618 b = (unitflags & FResolution); |
| 1620 break; | 1619 break; |
| 1621 #endif | |
| 1622 case CSSPrimitiveValue::CSS_HZ: | 1620 case CSSPrimitiveValue::CSS_HZ: |
| 1623 case CSSPrimitiveValue::CSS_KHZ: | 1621 case CSSPrimitiveValue::CSS_KHZ: |
| 1624 case CSSPrimitiveValue::CSS_DIMENSION: | 1622 case CSSPrimitiveValue::CSS_DIMENSION: |
| 1625 default: | 1623 default: |
| 1626 break; | 1624 break; |
| 1627 } | 1625 } |
| 1628 if (b && unitflags & FNonNeg && value->fValue < 0) | 1626 if (b && unitflags & FNonNeg && value->fValue < 0) |
| 1629 b = false; | 1627 b = false; |
| 1630 return b; | 1628 return b; |
| 1631 } | 1629 } |
| 1632 | 1630 |
| 1633 inline PassRefPtr<CSSPrimitiveValue> CSSParser::createPrimitiveNumericValue(CSSP arserValue* value) | 1631 inline PassRefPtr<CSSPrimitiveValue> CSSParser::createPrimitiveNumericValue(CSSP arserValue* value) |
| 1634 { | 1632 { |
| 1635 if (value->unit == CSSPrimitiveValue::CSS_VARIABLE_NAME) | 1633 if (value->unit == CSSPrimitiveValue::CSS_VARIABLE_NAME) |
| 1636 return createPrimitiveVariableNameValue(value); | 1634 return createPrimitiveVariableNameValue(value); |
| 1637 | 1635 |
| 1638 if (m_parsedCalculation) { | 1636 if (m_parsedCalculation) { |
| 1639 ASSERT(isCalculation(value)); | 1637 ASSERT(isCalculation(value)); |
| 1640 return CSSPrimitiveValue::create(m_parsedCalculation.release()); | 1638 return CSSPrimitiveValue::create(m_parsedCalculation.release()); |
| 1641 } | 1639 } |
| 1642 | 1640 |
| 1643 #if ENABLE(RESOLUTION_MEDIA_QUERY) | |
| 1644 ASSERT((value->unit >= CSSPrimitiveValue::CSS_NUMBER && value->unit <= CSSPr imitiveValue::CSS_KHZ) | 1641 ASSERT((value->unit >= CSSPrimitiveValue::CSS_NUMBER && value->unit <= CSSPr imitiveValue::CSS_KHZ) |
| 1645 || (value->unit >= CSSPrimitiveValue::CSS_TURN && value->unit <= CSSPrim itiveValue::CSS_CHS) | 1642 || (value->unit >= CSSPrimitiveValue::CSS_TURN && value->unit <= CSSPrim itiveValue::CSS_CHS) |
| 1646 || (value->unit >= CSSPrimitiveValue::CSS_VW && value->unit <= CSSPrimit iveValue::CSS_VMAX) | 1643 || (value->unit >= CSSPrimitiveValue::CSS_VW && value->unit <= CSSPrimit iveValue::CSS_VMAX) |
| 1647 || (value->unit >= CSSPrimitiveValue::CSS_DPPX && value->unit <= CSSPrim itiveValue::CSS_DPCM)); | 1644 || (value->unit >= CSSPrimitiveValue::CSS_DPPX && value->unit <= CSSPrim itiveValue::CSS_DPCM)); |
| 1648 #else | |
| 1649 ASSERT((value->unit >= CSSPrimitiveValue::CSS_NUMBER && value->unit <= CSSPr imitiveValue::CSS_KHZ) | |
| 1650 || (value->unit >= CSSPrimitiveValue::CSS_TURN && value->unit <= CSSPrim itiveValue::CSS_CHS) | |
| 1651 || (value->unit >= CSSPrimitiveValue::CSS_VW && value->unit <= CSSPrimit iveValue::CSS_VMAX)); | |
| 1652 #endif | |
| 1653 return cssValuePool().createValue(value->fValue, static_cast<CSSPrimitiveVal ue::UnitTypes>(value->unit)); | 1645 return cssValuePool().createValue(value->fValue, static_cast<CSSPrimitiveVal ue::UnitTypes>(value->unit)); |
| 1654 } | 1646 } |
| 1655 | 1647 |
| 1656 inline PassRefPtr<CSSPrimitiveValue> CSSParser::createPrimitiveStringValue(CSSPa rserValue* value) | 1648 inline PassRefPtr<CSSPrimitiveValue> CSSParser::createPrimitiveStringValue(CSSPa rserValue* value) |
| 1657 { | 1649 { |
| 1658 ASSERT(value->unit == CSSPrimitiveValue::CSS_STRING || value->unit == CSSPri mitiveValue::CSS_IDENT); | 1650 ASSERT(value->unit == CSSPrimitiveValue::CSS_STRING || value->unit == CSSPri mitiveValue::CSS_IDENT); |
| 1659 return cssValuePool().createValue(value->string, CSSPrimitiveValue::CSS_STRI NG); | 1651 return cssValuePool().createValue(value->string, CSSPrimitiveValue::CSS_STRI NG); |
| 1660 } | 1652 } |
| 1661 | 1653 |
| 1662 inline PassRefPtr<CSSPrimitiveValue> CSSParser::createPrimitiveVariableNameValue (CSSParserValue* value) | 1654 inline PassRefPtr<CSSPrimitiveValue> CSSParser::createPrimitiveVariableNameValue (CSSParserValue* value) |
| (...skipping 27 matching lines...) Expand all Loading... | |
| 1690 if (identifier) | 1682 if (identifier) |
| 1691 return cssValuePool().createIdentifierValue(identifier); | 1683 return cssValuePool().createIdentifierValue(identifier); |
| 1692 if (value->unit == CSSPrimitiveValue::CSS_STRING) | 1684 if (value->unit == CSSPrimitiveValue::CSS_STRING) |
| 1693 return createPrimitiveStringValue(value); | 1685 return createPrimitiveStringValue(value); |
| 1694 if (value->unit >= CSSPrimitiveValue::CSS_NUMBER && value->unit <= CSSPrimit iveValue::CSS_KHZ) | 1686 if (value->unit >= CSSPrimitiveValue::CSS_NUMBER && value->unit <= CSSPrimit iveValue::CSS_KHZ) |
| 1695 return createPrimitiveNumericValue(value); | 1687 return createPrimitiveNumericValue(value); |
| 1696 if (value->unit >= CSSPrimitiveValue::CSS_TURN && value->unit <= CSSPrimitiv eValue::CSS_CHS) | 1688 if (value->unit >= CSSPrimitiveValue::CSS_TURN && value->unit <= CSSPrimitiv eValue::CSS_CHS) |
| 1697 return createPrimitiveNumericValue(value); | 1689 return createPrimitiveNumericValue(value); |
| 1698 if (value->unit >= CSSPrimitiveValue::CSS_VW && value->unit <= CSSPrimitiveV alue::CSS_VMAX) | 1690 if (value->unit >= CSSPrimitiveValue::CSS_VW && value->unit <= CSSPrimitiveV alue::CSS_VMAX) |
| 1699 return createPrimitiveNumericValue(value); | 1691 return createPrimitiveNumericValue(value); |
| 1700 #if ENABLE(RESOLUTION_MEDIA_QUERY) | |
| 1701 if (value->unit >= CSSPrimitiveValue::CSS_DPPX && value->unit <= CSSPrimitiv eValue::CSS_DPCM) | 1692 if (value->unit >= CSSPrimitiveValue::CSS_DPPX && value->unit <= CSSPrimitiv eValue::CSS_DPCM) |
| 1702 return createPrimitiveNumericValue(value); | 1693 return createPrimitiveNumericValue(value); |
| 1703 #endif | |
| 1704 if (value->unit == CSSPrimitiveValue::CSS_VARIABLE_NAME) | 1694 if (value->unit == CSSPrimitiveValue::CSS_VARIABLE_NAME) |
| 1705 return createPrimitiveVariableNameValue(value); | 1695 return createPrimitiveVariableNameValue(value); |
| 1706 if (value->unit >= CSSParserValue::Q_EMS) | 1696 if (value->unit >= CSSParserValue::Q_EMS) |
| 1707 return CSSPrimitiveValue::createAllowingMarginQuirk(value->fValue, CSSPr imitiveValue::CSS_EMS); | 1697 return CSSPrimitiveValue::createAllowingMarginQuirk(value->fValue, CSSPr imitiveValue::CSS_EMS); |
| 1708 if (isCalculation(value)) | 1698 if (isCalculation(value)) |
| 1709 return CSSPrimitiveValue::create(m_parsedCalculation.release()); | 1699 return CSSPrimitiveValue::create(m_parsedCalculation.release()); |
| 1710 | 1700 |
| 1711 return 0; | 1701 return 0; |
| 1712 } | 1702 } |
| 1713 | 1703 |
| (...skipping 8193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 9907 case 'c': | 9897 case 'c': |
| 9908 if (length == 2 && isASCIIAlphaCaselessEqual(type[1], 'm')) | 9898 if (length == 2 && isASCIIAlphaCaselessEqual(type[1], 'm')) |
| 9909 m_token = CMS; | 9899 m_token = CMS; |
| 9910 else if (length == 2 && isASCIIAlphaCaselessEqual(type[1], 'h')) | 9900 else if (length == 2 && isASCIIAlphaCaselessEqual(type[1], 'h')) |
| 9911 m_token = CHS; | 9901 m_token = CHS; |
| 9912 return; | 9902 return; |
| 9913 | 9903 |
| 9914 case 'd': | 9904 case 'd': |
| 9915 if (length == 3 && isASCIIAlphaCaselessEqual(type[1], 'e') && isASCIIAlp haCaselessEqual(type[2], 'g')) | 9905 if (length == 3 && isASCIIAlphaCaselessEqual(type[1], 'e') && isASCIIAlp haCaselessEqual(type[2], 'g')) |
| 9916 m_token = DEGS; | 9906 m_token = DEGS; |
| 9917 #if ENABLE(RESOLUTION_MEDIA_QUERY) | |
| 9918 else if (length > 2 && isASCIIAlphaCaselessEqual(type[1], 'p')) { | 9907 else if (length > 2 && isASCIIAlphaCaselessEqual(type[1], 'p')) { |
| 9919 if (length == 4) { | 9908 if (length == 4) { |
| 9920 // There is a discussion about the name of this unit on www-styl e. | 9909 // There is a discussion about the name of this unit on www-styl e. |
| 9921 // Keep this compile time guard in place until that is resolved. | 9910 // Keep this compile time guard in place until that is resolved. |
|
johnme
2013/05/07 15:46:29
Hmm. Tab, can you comment on the current status of
| |
| 9922 // http://lists.w3.org/Archives/Public/www-style/2012May/0915.ht ml | 9911 // http://lists.w3.org/Archives/Public/www-style/2012May/0915.ht ml |
| 9923 if (isASCIIAlphaCaselessEqual(type[2], 'p') && isASCIIAlphaCasel essEqual(type[3], 'x')) | 9912 if (isASCIIAlphaCaselessEqual(type[2], 'p') && isASCIIAlphaCasel essEqual(type[3], 'x')) |
| 9924 m_token = DPPX; | 9913 m_token = DPPX; |
| 9925 else if (isASCIIAlphaCaselessEqual(type[2], 'c') && isASCIIAlpha CaselessEqual(type[3], 'm')) | 9914 else if (isASCIIAlphaCaselessEqual(type[2], 'c') && isASCIIAlpha CaselessEqual(type[3], 'm')) |
| 9926 m_token = DPCM; | 9915 m_token = DPCM; |
| 9927 } else if (length == 3 && isASCIIAlphaCaselessEqual(type[2], 'i')) | 9916 } else if (length == 3 && isASCIIAlphaCaselessEqual(type[2], 'i')) |
| 9928 m_token = DPI; | 9917 m_token = DPI; |
| 9929 } | 9918 } |
| 9930 #endif | |
| 9931 return; | 9919 return; |
| 9932 | 9920 |
| 9933 case 'e': | 9921 case 'e': |
| 9934 if (length == 2) { | 9922 if (length == 2) { |
| 9935 if (isASCIIAlphaCaselessEqual(type[1], 'm')) | 9923 if (isASCIIAlphaCaselessEqual(type[1], 'm')) |
| 9936 m_token = EMS; | 9924 m_token = EMS; |
| 9937 else if (isASCIIAlphaCaselessEqual(type[1], 'x')) | 9925 else if (isASCIIAlphaCaselessEqual(type[1], 'x')) |
| 9938 m_token = EXS; | 9926 m_token = EXS; |
| 9939 } | 9927 } |
| 9940 return; | 9928 return; |
| (...skipping 1746 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 11687 { | 11675 { |
| 11688 // The tokenizer checks for the construct of an+b. | 11676 // The tokenizer checks for the construct of an+b. |
| 11689 // However, since the {ident} rule precedes the {nth} rule, some of those | 11677 // However, since the {ident} rule precedes the {nth} rule, some of those |
| 11690 // tokens are identified as string literal. Furthermore we need to accept | 11678 // tokens are identified as string literal. Furthermore we need to accept |
| 11691 // "odd" and "even" which does not match to an+b. | 11679 // "odd" and "even" which does not match to an+b. |
| 11692 return equalIgnoringCase(token, "odd") || equalIgnoringCase(token, "even") | 11680 return equalIgnoringCase(token, "odd") || equalIgnoringCase(token, "even") |
| 11693 || equalIgnoringCase(token, "n") || equalIgnoringCase(token, "-n"); | 11681 || equalIgnoringCase(token, "n") || equalIgnoringCase(token, "-n"); |
| 11694 } | 11682 } |
| 11695 | 11683 |
| 11696 } | 11684 } |
| OLD | NEW |