* Boston, MA 02110-1301, USA.
*/
-#ifndef CSSParser_h
-#define CSSParser_h
+#ifndef BisonCSSParser_h
+#define BisonCSSParser_h
#include "CSSPropertyNames.h"
#include "CSSValueKeywords.h"
class CSSValue;
class CSSValueList;
class CSSBasicShape;
+class CSSBasicShapeInset;
class Document;
class Element;
class ImmutableStylePropertySet;
friend inline int cssyylex(void*, BisonCSSParser*);
public:
- BisonCSSParser(const CSSParserContext&, UseCounter* = 0);
+ BisonCSSParser(const CSSParserContext&);
~BisonCSSParser();
static bool parseValue(MutableStylePropertySet*, CSSPropertyID, const String&, bool important, CSSParserMode, StyleSheetContents*);
static bool parseColor(RGBA32& color, const String&, bool strict = false);
static bool parseSystemColor(RGBA32& color, const String&, Document*);
- static PassRefPtr<CSSValueList> parseFontFaceValue(const AtomicString&);
- PassRefPtr<CSSPrimitiveValue> parseValidPrimitive(CSSValueID ident, CSSParserValue*);
+ static PassRefPtrWillBeRawPtr<CSSValueList> parseFontFaceValue(const AtomicString&);
+ static PassRefPtr<CSSValue> parseAnimationTimingFunctionValue(const String&);
+ PassRefPtrWillBeRawPtr<CSSPrimitiveValue> parseValidPrimitive(CSSValueID ident, CSSParserValue*);
bool parseDeclaration(MutableStylePropertySet*, const String&, CSSParserObserver*, StyleSheetContents* contextStyleSheet);
static PassRefPtr<ImmutableStylePropertySet> parseInlineStyleDeclaration(const String&, Element*);
PassRefPtr<MediaQuerySet> parseMediaQueryList(const String&);
bool parseQuotes(CSSPropertyID, bool important);
static bool parseValue(MutableStylePropertySet*, CSSPropertyID, const String&, bool important, const Document&);
- void storeVariableDeclaration(const CSSParserString&, PassOwnPtr<CSSParserValueList>, bool important);
PassRefPtr<CSSValue> parseAttr(CSSParserValueList* args);
enum FillPositionFlag { InvalidFillPosition = 0, AmbiguousFillPosition = 1, XFillPosition = 2, YFillPosition = 4 };
enum FillPositionParsingMode { ResolveValuesAsPercent = 0, ResolveValuesAsKeyword = 1 };
- PassRefPtr<CSSPrimitiveValue> parseFillPositionComponent(CSSParserValueList*, unsigned& cumulativeFlags, FillPositionFlag& individualFlag, FillPositionParsingMode = ResolveValuesAsPercent);
+ PassRefPtrWillBeRawPtr<CSSPrimitiveValue> parseFillPositionComponent(CSSParserValueList*, unsigned& cumulativeFlags, FillPositionFlag& individualFlag, FillPositionParsingMode = ResolveValuesAsPercent);
PassRefPtr<CSSValue> parseFillPositionX(CSSParserValueList*);
PassRefPtr<CSSValue> parseFillPositionY(CSSParserValueList*);
void parse2ValuesFillPosition(CSSParserValueList*, RefPtr<CSSValue>&, RefPtr<CSSValue>&);
bool isPotentialPositionValue(CSSParserValue*);
void parseFillPosition(CSSParserValueList*, RefPtr<CSSValue>&, RefPtr<CSSValue>&);
- void parse3ValuesFillPosition(CSSParserValueList*, RefPtr<CSSValue>&, RefPtr<CSSValue>&, PassRefPtr<CSSPrimitiveValue>, PassRefPtr<CSSPrimitiveValue>);
- void parse4ValuesFillPosition(CSSParserValueList*, RefPtr<CSSValue>&, RefPtr<CSSValue>&, PassRefPtr<CSSPrimitiveValue>, PassRefPtr<CSSPrimitiveValue>);
+ void parse3ValuesFillPosition(CSSParserValueList*, RefPtr<CSSValue>&, RefPtr<CSSValue>&, PassRefPtrWillBeRawPtr<CSSPrimitiveValue>, PassRefPtrWillBeRawPtr<CSSPrimitiveValue>);
+ void parse4ValuesFillPosition(CSSParserValueList*, RefPtr<CSSValue>&, RefPtr<CSSValue>&, PassRefPtrWillBeRawPtr<CSSPrimitiveValue>, PassRefPtrWillBeRawPtr<CSSPrimitiveValue>);
void parseFillRepeat(RefPtr<CSSValue>&, RefPtr<CSSValue>&);
PassRefPtr<CSSValue> parseFillSize(CSSPropertyID, bool &allowComma);
bool parseColumnsShorthand(bool important);
PassRefPtr<CSSValue> parseGridPosition();
- bool parseIntegerOrStringFromGridPosition(RefPtr<CSSPrimitiveValue>& numericValue, RefPtr<CSSPrimitiveValue>& gridLineName);
+ bool parseIntegerOrStringFromGridPosition(RefPtrWillBeRawPtr<CSSPrimitiveValue>& numericValue, RefPtrWillBeRawPtr<CSSPrimitiveValue>& gridLineName);
bool parseGridItemPositionShorthand(CSSPropertyID, bool important);
bool parseGridAreaShorthand(bool important);
bool parseSingleGridAreaLonghand(RefPtr<CSSValue>&);
bool parseGridTrackList(CSSPropertyID, bool important);
bool parseGridTrackRepeatFunction(CSSValueList&);
PassRefPtr<CSSValue> parseGridTrackSize(CSSParserValueList& inputList);
- PassRefPtr<CSSPrimitiveValue> parseGridBreadth(CSSParserValue*);
- PassRefPtr<CSSValue> parseGridTemplate();
+ PassRefPtrWillBeRawPtr<CSSPrimitiveValue> parseGridBreadth(CSSParserValue*);
+ PassRefPtr<CSSValue> parseGridTemplateAreas();
void parseGridLineNames(CSSParserValueList* inputList, CSSValueList&);
bool parseClipShape(CSSPropertyID, bool important);
bool parseItemPositionOverflowPosition(CSSPropertyID, bool important);
PassRefPtr<CSSValue> parseShapeProperty(CSSPropertyID propId);
- PassRefPtr<CSSPrimitiveValue> parseBasicShape();
- PassRefPtr<CSSPrimitiveValue> parseShapeRadius(CSSParserValue*);
+ PassRefPtrWillBeRawPtr<CSSPrimitiveValue> parseBasicShape();
+ PassRefPtrWillBeRawPtr<CSSPrimitiveValue> parseShapeRadius(CSSParserValue*);
PassRefPtr<CSSBasicShape> parseBasicShapeRectangle(CSSParserValueList* args);
PassRefPtr<CSSBasicShape> parseBasicShapeCircle(CSSParserValueList* args);
PassRefPtr<CSSBasicShape> parseDeprecatedBasicShapeEllipse(CSSParserValueList*);
PassRefPtr<CSSBasicShape> parseBasicShapePolygon(CSSParserValueList* args);
PassRefPtr<CSSBasicShape> parseBasicShapeInsetRectangle(CSSParserValueList* args);
+ PassRefPtr<CSSBasicShape> parseBasicShapeInset(CSSParserValueList* args);
bool parseFont(bool important);
- PassRefPtr<CSSValueList> parseFontFamily();
+ PassRefPtrWillBeRawPtr<CSSValueList> parseFontFamily();
bool parseCounter(CSSPropertyID, int defaultValue, bool important);
PassRefPtr<CSSValue> parseCounterContent(CSSParserValueList* args, bool counters);
bool parseColorParameters(CSSParserValue*, int* colorValues, bool parseAlpha);
bool parseHSLParameters(CSSParserValue*, double* colorValues, bool parseAlpha);
- PassRefPtr<CSSPrimitiveValue> parseColor(CSSParserValue* = 0);
+ PassRefPtrWillBeRawPtr<CSSPrimitiveValue> parseColor(CSSParserValue* = 0);
bool parseColorFromValue(CSSParserValue*, RGBA32&);
void parseSelector(const String&, CSSSelectorList&);
PassRefPtr<CSSValue> parsePaintOrder() const;
// CSS3 Parsing Routines (for properties specific to CSS3)
- PassRefPtr<CSSValueList> parseShadow(CSSParserValueList*, CSSPropertyID);
+ PassRefPtrWillBeRawPtr<CSSValueList> parseShadow(CSSParserValueList*, CSSPropertyID);
bool parseBorderImageShorthand(CSSPropertyID, bool important);
PassRefPtr<CSSValue> parseBorderImage(CSSPropertyID);
bool parseBorderImageRepeat(RefPtr<CSSValue>&);
- bool parseBorderImageSlice(CSSPropertyID, RefPtr<CSSBorderImageSliceValue>&);
- bool parseBorderImageWidth(RefPtr<CSSPrimitiveValue>&);
- bool parseBorderImageOutset(RefPtr<CSSPrimitiveValue>&);
+ bool parseBorderImageSlice(CSSPropertyID, RefPtrWillBeRawPtr<CSSBorderImageSliceValue>&);
+ bool parseBorderImageWidth(RefPtrWillBeRawPtr<CSSPrimitiveValue>&);
+ bool parseBorderImageOutset(RefPtrWillBeRawPtr<CSSPrimitiveValue>&);
bool parseBorderRadius(CSSPropertyID, bool important);
bool parseAspectRatio(bool important);
PassRefPtr<CSSValue> parseImageSet(CSSParserValueList*);
- PassRefPtr<CSSValueList> parseFilter();
- PassRefPtr<CSSFilterValue> parseBuiltinFilterArguments(CSSParserValueList*, CSSFilterValue::FilterOperationType);
+ PassRefPtrWillBeRawPtr<CSSValueList> parseFilter();
+ PassRefPtrWillBeRawPtr<CSSFilterValue> parseBuiltinFilterArguments(CSSParserValueList*, CSSFilterValue::FilterOperationType);
static bool isBlendMode(CSSValueID);
static bool isCompositeOperator(CSSValueID);
- PassRefPtr<CSSValueList> parseTransform();
+ PassRefPtrWillBeRawPtr<CSSValueList> parseTransform();
PassRefPtr<CSSValue> parseTransformValue(CSSParserValue*);
bool parseTransformOrigin(CSSPropertyID propId, CSSPropertyID& propId1, CSSPropertyID& propId2, CSSPropertyID& propId3, RefPtr<CSSValue>&, RefPtr<CSSValue>&, RefPtr<CSSValue>&);
bool parsePerspectiveOrigin(CSSPropertyID propId, CSSPropertyID& propId1, CSSPropertyID& propId2, RefPtr<CSSValue>&, RefPtr<CSSValue>&);
bool parseFontFeatureTag(CSSValueList*);
bool parseFontFeatureSettings(bool important);
- bool parseFlowThread(CSSPropertyID, bool important);
- bool parseRegionThread(CSSPropertyID, bool important);
-
bool parseFontVariantLigatures(bool important);
bool parseGeneratedImage(CSSParserValueList*, RefPtr<CSSValue>&);
StyleRuleBase* createStyleRule(Vector<OwnPtr<CSSParserSelector> >* selectors);
StyleRuleBase* createFontFaceRule();
StyleRuleBase* createPageRule(PassOwnPtr<CSSParserSelector> pageSelector);
- StyleRuleBase* createRegionRule(Vector<OwnPtr<CSSParserSelector> >* regionSelector, RuleList* rules);
StyleRuleBase* createMarginAtRule(CSSSelector::MarginBoxType);
StyleRuleBase* createSupportsRule(bool conditionIsSupported, RuleList*);
void markSupportsRuleHeaderStart();
Vector<OwnPtr<CSSParserSelector> >* reusableSelectorVector() { return &m_reusableSelectorVector; }
- void setReusableRegionSelectorVector(Vector<OwnPtr<CSSParserSelector> >* selectors);
- Vector<OwnPtr<CSSParserSelector> >* reusableRegionSelectorVector() { return &m_reusableRegionSelectorVector; }
-
void clearProperties();
PassRefPtr<ImmutableStylePropertySet> createStylePropertySet();
void markViewportRuleBodyEnd() { m_inViewport = false; }
StyleRuleBase* createViewportRule();
- PassRefPtr<CSSPrimitiveValue> createPrimitiveNumericValue(CSSParserValue*);
- PassRefPtr<CSSPrimitiveValue> createPrimitiveStringValue(CSSParserValue*);
- PassRefPtr<CSSPrimitiveValue> createPrimitiveVariableReferenceValue(CSSParserValue*);
+ PassRefPtrWillBeRawPtr<CSSPrimitiveValue> createPrimitiveNumericValue(CSSParserValue*);
+ PassRefPtrWillBeRawPtr<CSSPrimitiveValue> createPrimitiveStringValue(CSSParserValue*);
CSSParserLocation currentLocation() { return m_tokenizer.currentLocation(); }
bool parseValue(MutableStylePropertySet*, CSSPropertyID, const String&, bool important, StyleSheetContents* contextStyleSheet);
PassRefPtr<ImmutableStylePropertySet> parseDeclaration(const String&, StyleSheetContents* contextStyleSheet);
+ PassRefPtr<CSSBasicShape> parseInsetRoundedCorners(PassRefPtr<CSSBasicShapeInset>, CSSParserValueList*);
+
enum SizeParameterType {
None,
Auto,
OwnPtr<Vector<RefPtr<StyleKeyframe> > > m_floatingKeyframeVector;
Vector<OwnPtr<CSSParserSelector> > m_reusableSelectorVector;
- Vector<OwnPtr<CSSParserSelector> > m_reusableRegionSelectorVector;
- RefPtr<CSSCalcValue> m_parsedCalculation;
+ RefPtrWillBePersistent<CSSCalcValue> m_parsedCalculation;
OwnPtr<RuleSourceDataList> m_supportsRuleDataStack;
inline bool validUnit(CSSParserValue* value, Units unitflags, ReleaseParsedCalcValueCondition releaseCalc = DoNotReleaseParsedCalcValue) { return validUnit(value, unitflags, m_context.mode(), releaseCalc); }
bool validUnit(CSSParserValue*, Units, CSSParserMode, ReleaseParsedCalcValueCondition releaseCalc = DoNotReleaseParsedCalcValue);
- bool parseBorderImageQuad(Units, RefPtr<CSSPrimitiveValue>&);
+ bool parseBorderImageQuad(Units, RefPtrWillBeRawPtr<CSSPrimitiveValue>&);
int colorIntFromValue(CSSParserValue*);
double parsedDouble(CSSParserValue*, ReleaseParsedCalcValueCondition releaseCalc = DoNotReleaseParsedCalcValue);
bool isCalculation(CSSParserValue*);
- UseCounter* m_useCounter;
-
CSSTokenizer m_tokenizer;
friend class TransformOperationInfo;
} // namespace WebCore
-#endif // CSSParser_h
+#endif // BisonCSSParser_h