CSSParser.h revision 2daae5fd11344eaa88a0d92b0f6d65f8d2255c00
18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2003 Lars Knoll (knoll@kde.org) 35ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen * Copyright (C) 2004, 2005, 2006, 2008, 2009, 2010 Apple Inc. All rights reserved. 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2008 Eric Seidel <eric@webkit.org> 521939df44de1705786c545cd1bf519d47250322dBen Murdoch * Copyright (C) 2009 - 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved. 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This library is free software; you can redistribute it and/or 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modify it under the terms of the GNU Library General Public 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * License as published by the Free Software Foundation; either 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * version 2 of the License, or (at your option) any later version. 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This library is distributed in the hope that it will be useful, 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * but WITHOUT ANY WARRANTY; without even the implied warranty of 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Library General Public License for more details. 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * You should have received a copy of the GNU Library General Public License 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * along with this library; see the file COPYING.LIB. If not, write to 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Boston, MA 02110-1301, USA. 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef CSSParser_h 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define CSSParser_h 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 26cad810f21b803229eb11403f9209855525a25d57Steve Block#include "CSSGradientValue.h" 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "CSSParserValues.h" 2868513a70bcd92384395513322f1b801e7bf9c729Steve Block#include "CSSPropertySourceData.h" 29635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include "CSSSelectorList.h" 30cad810f21b803229eb11403f9209855525a25d57Steve Block#include "Color.h" 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "MediaQuery.h" 325af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke#include <wtf/HashMap.h> 338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <wtf/HashSet.h> 348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <wtf/Vector.h> 35f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick#include <wtf/text/AtomicString.h> 368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore { 388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project class CSSMutableStyleDeclaration; 408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project class CSSPrimitiveValue; 4181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch class CSSPrimitiveValueCache; 428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project class CSSProperty; 438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project class CSSRule; 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project class CSSRuleList; 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project class CSSSelector; 465af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke class CSSStyleRule; 478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project class CSSStyleSheet; 488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project class CSSValue; 498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project class CSSValueList; 508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project class Document; 518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project class MediaList; 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project class MediaQueryExp; 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project class StyleBase; 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project class StyleList; 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project class WebKitCSSKeyframeRule; 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project class WebKitCSSKeyframesRule; 578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project class CSSParser { 598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project public: 608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSParser(bool strictParsing = true); 618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ~CSSParser(); 628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6368513a70bcd92384395513322f1b801e7bf9c729Steve Block void parseSheet(CSSStyleSheet*, const String&, int startLineNumber = 0, StyleRuleRangeMap* ruleRangeMap = 0); 648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PassRefPtr<CSSRule> parseRule(CSSStyleSheet*, const String&); 658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PassRefPtr<CSSRule> parseKeyframeRule(CSSStyleSheet*, const String&); 662daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch static bool parseValue(CSSMutableStyleDeclaration*, int propId, const String&, bool important, bool strict); 678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static bool parseColor(RGBA32& color, const String&, bool strict = false); 682fc2651226baac27029e38c9d6ef883fa32084dbSteve Block static bool parseSystemColor(RGBA32& color, const String&, Document*); 698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool parseColor(CSSMutableStyleDeclaration*, const String&); 70a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch bool parseDeclaration(CSSMutableStyleDeclaration*, const String&, RefPtr<CSSStyleSourceData>* styleSourceData = 0); 718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool parseMediaQuery(MediaList*, const String&); 728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Document* document() const; 7481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch 7581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch CSSPrimitiveValueCache* primitiveValueCache() const { return m_primitiveValueCache.get(); } 768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void addProperty(int propId, PassRefPtr<CSSValue>, bool important); 788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void rollbackLastProperties(int num); 798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool hasProperties() const { return m_numParsedProperties > 0; } 808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool parseValue(int propId, bool important); 828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool parseShorthand(int propId, const int* properties, int numProperties, bool important); 838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool parse4Values(int propId, const int* properties, bool important); 848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool parseContent(int propId, bool important); 8581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch bool parseQuotes(int propId, bool important); 868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 875f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian PassRefPtr<CSSValue> parseAttr(CSSParserValueList* args); 885f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PassRefPtr<CSSValue> parseBackgroundColor(); 908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool parseFillImage(RefPtr<CSSValue>&); 922bde8e466a4451c7319e3a072d118917957d6554Steve Block 932bde8e466a4451c7319e3a072d118917957d6554Steve Block enum FillPositionFlag { InvalidFillPosition = 0, AmbiguousFillPosition = 1, XFillPosition = 2, YFillPosition = 4 }; 942bde8e466a4451c7319e3a072d118917957d6554Steve Block PassRefPtr<CSSValue> parseFillPositionComponent(CSSParserValueList*, unsigned& cumulativeFlags, FillPositionFlag& individualFlag); 952bde8e466a4451c7319e3a072d118917957d6554Steve Block PassRefPtr<CSSValue> parseFillPositionX(CSSParserValueList*); 962bde8e466a4451c7319e3a072d118917957d6554Steve Block PassRefPtr<CSSValue> parseFillPositionY(CSSParserValueList*); 97cad810f21b803229eb11403f9209855525a25d57Steve Block void parseFillPosition(CSSParserValueList*, RefPtr<CSSValue>&, RefPtr<CSSValue>&); 982bde8e466a4451c7319e3a072d118917957d6554Steve Block 99231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block void parseFillRepeat(RefPtr<CSSValue>&, RefPtr<CSSValue>&); 100cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block PassRefPtr<CSSValue> parseFillSize(int propId, bool &allowComma); 101e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block 1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool parseFillProperty(int propId, int& propId1, int& propId2, RefPtr<CSSValue>&, RefPtr<CSSValue>&); 1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool parseFillShorthand(int propId, const int* properties, int numProperties, bool important); 1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void addFillValue(RefPtr<CSSValue>& lval, PassRefPtr<CSSValue> rval); 1068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void addAnimationValue(RefPtr<CSSValue>& lval, PassRefPtr<CSSValue> rval); 1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PassRefPtr<CSSValue> parseAnimationDelay(); 1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PassRefPtr<CSSValue> parseAnimationDirection(); 1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PassRefPtr<CSSValue> parseAnimationDuration(); 112dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block PassRefPtr<CSSValue> parseAnimationFillMode(); 1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PassRefPtr<CSSValue> parseAnimationIterationCount(); 1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PassRefPtr<CSSValue> parseAnimationName(); 1150bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch PassRefPtr<CSSValue> parseAnimationPlayState(); 1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PassRefPtr<CSSValue> parseAnimationProperty(); 1178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PassRefPtr<CSSValue> parseAnimationTimingFunction(); 1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1194576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang bool parseTransformOriginShorthand(RefPtr<CSSValue>&, RefPtr<CSSValue>&, RefPtr<CSSValue>&); 1205abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick bool parseCubicBezierTimingFunctionValue(CSSParserValueList*& args, double& result); 1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool parseAnimationProperty(int propId, RefPtr<CSSValue>&); 1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool parseTransitionShorthand(bool important); 1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool parseAnimationShorthand(bool important); 124e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block 1258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool parseDashboardRegions(int propId, bool important); 1268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool parseShape(int propId, bool important); 1288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool parseFont(bool important); 1308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PassRefPtr<CSSValueList> parseFontFamily(); 1318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool parseCounter(int propId, int defaultValue, bool important); 1338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PassRefPtr<CSSValue> parseCounterContent(CSSParserValueList* args, bool counters); 1348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool parseColorParameters(CSSParserValue*, int* colorValues, bool parseAlpha); 1368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool parseHSLParameters(CSSParserValue*, double* colorValues, bool parseAlpha); 1378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PassRefPtr<CSSPrimitiveValue> parseColor(CSSParserValue* = 0); 138545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch bool parseColorFromValue(CSSParserValue*, RGBA32&); 139635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project void parseSelector(const String&, Document* doc, CSSSelectorList&); 1408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static bool parseColor(const String&, RGBA32& rgb, bool strict); 1428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool parseFontStyle(bool important); 1448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool parseFontVariant(bool important); 1458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool parseFontWeight(bool important); 1468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool parseFontFaceSrc(); 1478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool parseFontFaceUnicodeRange(); 1488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if ENABLE(SVG) 1508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool parseSVGValue(int propId, bool important); 1518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PassRefPtr<CSSValue> parseSVGPaint(); 1528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PassRefPtr<CSSValue> parseSVGColor(); 1538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PassRefPtr<CSSValue> parseSVGStrokeDasharray(); 1548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 1558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 15621939df44de1705786c545cd1bf519d47250322dBen Murdoch#if ENABLE(WCSS) 15721939df44de1705786c545cd1bf519d47250322dBen Murdoch PassRefPtr<CSSValue> parseWCSSInputProperty(); 15821939df44de1705786c545cd1bf519d47250322dBen Murdoch#endif 15921939df44de1705786c545cd1bf519d47250322dBen Murdoch 1608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // CSS3 Parsing Routines (for properties specific to CSS3) 1618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool parseShadow(int propId, bool important); 1628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool parseBorderImage(int propId, bool important, RefPtr<CSSValue>&); 1630bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch bool parseBorderRadius(int propId, bool important); 164e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block 1658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool parseReflect(int propId, bool important); 1668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // Image generators 1688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool parseCanvas(RefPtr<CSSValue>&); 169cad810f21b803229eb11403f9209855525a25d57Steve Block 170cad810f21b803229eb11403f9209855525a25d57Steve Block bool parseDeprecatedGradient(RefPtr<CSSValue>&); 171cad810f21b803229eb11403f9209855525a25d57Steve Block bool parseLinearGradient(RefPtr<CSSValue>&, CSSGradientRepeat repeating); 172cad810f21b803229eb11403f9209855525a25d57Steve Block bool parseRadialGradient(RefPtr<CSSValue>&, CSSGradientRepeat repeating); 17365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch bool parseGradientColorStops(CSSParserValueList*, CSSGradientValue*, bool expectComma); 1748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PassRefPtr<CSSValueList> parseTransform(); 1768f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian bool parseTransformOrigin(int propId, int& propId1, int& propId2, int& propId3, RefPtr<CSSValue>&, RefPtr<CSSValue>&, RefPtr<CSSValue>&); 1778f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian bool parsePerspectiveOrigin(int propId, int& propId1, int& propId2, RefPtr<CSSValue>&, RefPtr<CSSValue>&); 1788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 179f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch bool parseTextEmphasisStyle(bool important); 180f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch 1812bde8e466a4451c7319e3a072d118917957d6554Steve Block bool parseLineBoxContain(bool important); 1822bde8e466a4451c7319e3a072d118917957d6554Steve Block 1838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int yyparse(); 1848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1852fc2651226baac27029e38c9d6ef883fa32084dbSteve Block CSSParserSelector* createFloatingSelector(); 1862fc2651226baac27029e38c9d6ef883fa32084dbSteve Block PassOwnPtr<CSSParserSelector> sinkFloatingSelector(CSSParserSelector*); 1878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1882bde8e466a4451c7319e3a072d118917957d6554Steve Block Vector<OwnPtr<CSSParserSelector> >* createFloatingSelectorVector(); 1892daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch PassOwnPtr<Vector<OwnPtr<CSSParserSelector> > > sinkFloatingSelectorVector(Vector<OwnPtr<CSSParserSelector> >*); 1902bde8e466a4451c7319e3a072d118917957d6554Steve Block 1918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSParserValueList* createFloatingValueList(); 1928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSParserValueList* sinkFloatingValueList(CSSParserValueList*); 1938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSParserFunction* createFloatingFunction(); 1958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSParserFunction* sinkFloatingFunction(CSSParserFunction*); 1968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSParserValue& sinkFloatingValue(CSSParserValue&); 1988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project MediaList* createMediaList(); 2008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSRule* createCharsetRule(const CSSParserString&); 2018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSRule* createImportRule(const CSSParserString&, MediaList*); 2028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project WebKitCSSKeyframeRule* createKeyframeRule(CSSParserValueList*); 2038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project WebKitCSSKeyframesRule* createKeyframesRule(); 2048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSRule* createMediaRule(MediaList*, CSSRuleList*); 2058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSRuleList* createRuleList(); 2062fc2651226baac27029e38c9d6ef883fa32084dbSteve Block CSSRule* createStyleRule(Vector<OwnPtr<CSSParserSelector> >* selectors); 2078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSRule* createFontFaceRule(); 2082fc2651226baac27029e38c9d6ef883fa32084dbSteve Block CSSRule* createPageRule(PassOwnPtr<CSSParserSelector> pageSelector); 20921939df44de1705786c545cd1bf519d47250322dBen Murdoch CSSRule* createMarginAtRule(CSSSelector::MarginBoxType marginBox); 21021939df44de1705786c545cd1bf519d47250322dBen Murdoch void startDeclarationsForMarginBox(); 21121939df44de1705786c545cd1bf519d47250322dBen Murdoch void endDeclarationsForMarginBox(); 2128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project MediaQueryExp* createFloatingMediaQueryExp(const AtomicString&, CSSParserValueList*); 2145ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen PassOwnPtr<MediaQueryExp> sinkFloatingMediaQueryExp(MediaQueryExp*); 2155abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick Vector<OwnPtr<MediaQueryExp> >* createFloatingMediaQueryExpList(); 2165abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick PassOwnPtr<Vector<OwnPtr<MediaQueryExp> > > sinkFloatingMediaQueryExpList(Vector<OwnPtr<MediaQueryExp> >*); 2175abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick MediaQuery* createFloatingMediaQuery(MediaQuery::Restrictor, const String&, PassOwnPtr<Vector<OwnPtr<MediaQueryExp> > >); 2185abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick MediaQuery* createFloatingMediaQuery(PassOwnPtr<Vector<OwnPtr<MediaQueryExp> > >); 2195ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen PassOwnPtr<MediaQuery> sinkFloatingMediaQuery(MediaQuery*); 2208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 221643ca7872b450ea4efacab6188849e5aac2ba161Steve Block void addNamespace(const AtomicString& prefix, const AtomicString& uri); 2222fc2651226baac27029e38c9d6ef883fa32084dbSteve Block void updateSpecifiersWithElementName(const AtomicString& namespacePrefix, const AtomicString& elementName, CSSParserSelector*); 223643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 224d0825bca7fe65beaee391d30da42e937db621564Steve Block void invalidBlockHit(); 225dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 2262fc2651226baac27029e38c9d6ef883fa32084dbSteve Block Vector<OwnPtr<CSSParserSelector> >* reusableSelectorVector() { return &m_reusableSelectorVector; } 227643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 2285af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke void updateLastSelectorLineAndPosition(); 229dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 230e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block void clearProperties(); 231e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block 2328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool m_strict; 2338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool m_important; 2348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int m_id; 2358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSStyleSheet* m_styleSheet; 2368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RefPtr<CSSRule> m_rule; 2378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RefPtr<CSSRule> m_keyframe; 2385ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen OwnPtr<MediaQuery> m_mediaQuery; 2398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSParserValueList* m_valueList; 2408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSProperty** m_parsedProperties; 241635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project CSSSelectorList* m_selectorListForParseSelector; 24281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch RefPtr<CSSPrimitiveValueCache> m_primitiveValueCache; 2438f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian unsigned m_numParsedProperties; 2448f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian unsigned m_maxParsedProperties; 24521939df44de1705786c545cd1bf519d47250322dBen Murdoch unsigned m_numParsedPropertiesBeforeMarginBox; 2468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int m_inParseShorthand; 2488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int m_currentShorthand; 2498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool m_implicitShorthand; 2508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool m_hasFontFaceOnlyValues; 252d0825bca7fe65beaee391d30da42e937db621564Steve Block bool m_hadSyntacticallyValidCSSRule; 2538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AtomicString m_defaultNamespace; 2558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // tokenizer methods and data 2574576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang bool m_inStyleRuleOrDeclaration; 258a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch SourceRange m_selectorListRange; 259a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch SourceRange m_ruleBodyRange; 260a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch SourceRange m_propertyRange; 26168513a70bcd92384395513322f1b801e7bf9c729Steve Block StyleRuleRangeMap* m_ruleRangeMap; 262a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch RefPtr<CSSRuleSourceData> m_currentRuleData; 263a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch void markSelectorListStart(); 264a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch void markSelectorListEnd(); 2655af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke void markRuleBodyStart(); 2665af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke void markRuleBodyEnd(); 26768513a70bcd92384395513322f1b801e7bf9c729Steve Block void markPropertyStart(); 26868513a70bcd92384395513322f1b801e7bf9c729Steve Block void markPropertyEnd(bool isImportantFound, bool isPropertyParsed); 269a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch void resetSelectorListMarks() { m_selectorListRange.start = m_selectorListRange.end = 0; } 270a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch void resetRuleBodyMarks() { m_ruleBodyRange.start = m_ruleBodyRange.end = 0; } 271a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch void resetPropertyMarks() { m_propertyRange.start = m_propertyRange.end = UINT_MAX; } 2728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int lex(void* yylval); 2738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int token() { return yyTok; } 2748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project UChar* text(int* length); 275dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void countLines(); 2768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int lex(); 277e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block 2788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project private: 27981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch void setStyleSheet(CSSStyleSheet*); 28081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch 281643ca7872b450ea4efacab6188849e5aac2ba161Steve Block void recheckAtKeyword(const UChar* str, int len); 2828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setupParser(const char* prefix, const String&, const char* suffix); 2848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool inShorthand() const { return m_inParseShorthand; } 2868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void checkForOrphanedUnits(); 288e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block 2898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void deleteFontFaceOnlyValues(); 2908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 291cad810f21b803229eb11403f9209855525a25d57Steve Block bool isGeneratedImageValue(CSSParserValue*) const; 292cad810f21b803229eb11403f9209855525a25d57Steve Block bool parseGeneratedImage(RefPtr<CSSValue>&); 293cad810f21b803229eb11403f9209855525a25d57Steve Block 2942daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch bool parseValue(CSSMutableStyleDeclaration*, int propId, const String&, bool important); 2952daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 29621939df44de1705786c545cd1bf519d47250322dBen Murdoch enum SizeParameterType { 29721939df44de1705786c545cd1bf519d47250322dBen Murdoch None, 29821939df44de1705786c545cd1bf519d47250322dBen Murdoch Auto, 29921939df44de1705786c545cd1bf519d47250322dBen Murdoch Length, 30021939df44de1705786c545cd1bf519d47250322dBen Murdoch PageSize, 30121939df44de1705786c545cd1bf519d47250322dBen Murdoch Orientation, 30221939df44de1705786c545cd1bf519d47250322dBen Murdoch }; 30321939df44de1705786c545cd1bf519d47250322dBen Murdoch 30421939df44de1705786c545cd1bf519d47250322dBen Murdoch bool parsePage(int propId, bool important); 30521939df44de1705786c545cd1bf519d47250322dBen Murdoch bool parseSize(int propId, bool important); 30621939df44de1705786c545cd1bf519d47250322dBen Murdoch SizeParameterType parseSizeParameter(CSSValueList* parsedValues, CSSParserValue* value, SizeParameterType prevParamType); 30721939df44de1705786c545cd1bf519d47250322dBen Murdoch 3088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project UChar* m_data; 3098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project UChar* yytext; 3108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project UChar* yy_c_buf_p; 3118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project UChar yy_hold_char; 3128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int yy_last_accepting_state; 3138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project UChar* yy_last_accepting_cpos; 3148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int yyleng; 3158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int yyTok; 3168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int yy_start; 317e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke int m_lineNumber; 318e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke int m_lastSelectorLineNumber; 3198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 320643ca7872b450ea4efacab6188849e5aac2ba161Steve Block bool m_allowImportRules; 321643ca7872b450ea4efacab6188849e5aac2ba161Steve Block bool m_allowNamespaceDeclarations; 322643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 3238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Vector<RefPtr<StyleBase> > m_parsedStyleObjects; 3248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Vector<RefPtr<CSSRuleList> > m_parsedRuleLists; 3252fc2651226baac27029e38c9d6ef883fa32084dbSteve Block HashSet<CSSParserSelector*> m_floatingSelectors; 3262bde8e466a4451c7319e3a072d118917957d6554Steve Block HashSet<Vector<OwnPtr<CSSParserSelector> >*> m_floatingSelectorVectors; 3278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project HashSet<CSSParserValueList*> m_floatingValueLists; 3288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project HashSet<CSSParserFunction*> m_floatingFunctions; 3298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3305ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen OwnPtr<MediaQuery> m_floatingMediaQuery; 3315ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen OwnPtr<MediaQueryExp> m_floatingMediaQueryExp; 3325abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick OwnPtr<Vector<OwnPtr<MediaQueryExp> > > m_floatingMediaQueryExpList; 333e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block 3342fc2651226baac27029e38c9d6ef883fa32084dbSteve Block Vector<OwnPtr<CSSParserSelector> > m_reusableSelectorVector; 3358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // defines units allowed for a certain property, used in parseUnit 3378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project enum Units { 3388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project FUnknown = 0x0000, 3398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project FInteger = 0x0001, 3408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project FNumber = 0x0002, // Real Numbers 3418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project FPercent = 0x0004, 3428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project FLength = 0x0008, 3438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project FAngle = 0x0010, 3448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project FTime = 0x0020, 3458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project FFrequency = 0x0040, 3468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project FRelative = 0x0100, 3478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project FNonNeg = 0x0200 3488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project }; 3498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project friend inline Units operator|(Units a, Units b) 3518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 3528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return static_cast<Units>(static_cast<unsigned>(a) | static_cast<unsigned>(b)); 3538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 3548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static bool validUnit(CSSParserValue*, Units, bool strict); 356e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block 3578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project friend class TransformOperationInfo; 3588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project }; 3598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int cssPropertyID(const CSSParserString&); 3618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int cssPropertyID(const String&); 3628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int cssValueKeywordID(const CSSParserString&); 3638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 364ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch class ShorthandScope { 365ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch WTF_MAKE_FAST_ALLOCATED; 3668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project public: 3678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ShorthandScope(CSSParser* parser, int propId) : m_parser(parser) 3688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 3698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (!(m_parser->m_inParseShorthand++)) 3708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project m_parser->m_currentShorthand = propId; 3718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 3728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ~ShorthandScope() 3738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 3748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (!(--m_parser->m_inParseShorthand)) 3758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project m_parser->m_currentShorthand = 0; 3768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 3778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project private: 3798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSParser* m_parser; 3808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project }; 3818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 382dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block String quoteCSSString(const String&); 383dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block String quoteCSSStringIfNeeded(const String&); 384dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block String quoteCSSURLIfNeeded(const String&); 385dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 386cad810f21b803229eb11403f9209855525a25d57Steve Block bool isValidNthToken(const CSSParserString&); 3878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} // namespace WebCore 3888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif // CSSParser_h 390