| Index: Source/core/css/CSSParser.h
|
| diff --git a/Source/core/css/CSSParser.h b/Source/core/css/CSSParser.h
|
| deleted file mode 100644
|
| index f38a21c64e3b55c1e7df799d3d990287e2ffcc13..0000000000000000000000000000000000000000
|
| --- a/Source/core/css/CSSParser.h
|
| +++ /dev/null
|
| @@ -1,644 +0,0 @@
|
| -/*
|
| - * Copyright (C) 2003 Lars Knoll (knoll@kde.org)
|
| - * Copyright (C) 2004, 2005, 2006, 2008, 2009, 2010 Apple Inc. All rights reserved.
|
| - * Copyright (C) 2008 Eric Seidel <eric@webkit.org>
|
| - * Copyright (C) 2009 - 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved.
|
| - *
|
| - * This library is free software; you can redistribute it and/or
|
| - * modify it under the terms of the GNU Library General Public
|
| - * License as published by the Free Software Foundation; either
|
| - * version 2 of the License, or (at your option) any later version.
|
| - *
|
| - * This library is distributed in the hope that it will be useful,
|
| - * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
| - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
| - * Library General Public License for more details.
|
| - *
|
| - * You should have received a copy of the GNU Library General Public License
|
| - * along with this library; see the file COPYING.LIB. If not, write to
|
| - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
| - * Boston, MA 02110-1301, USA.
|
| - */
|
| -
|
| -#ifndef CSSParser_h
|
| -#define CSSParser_h
|
| -
|
| -#include "CSSPropertyNames.h"
|
| -#include "CSSValueKeywords.h"
|
| -#include "core/css/CSSCalculationValue.h"
|
| -#include "core/css/CSSFilterValue.h"
|
| -#include "core/css/CSSGradientValue.h"
|
| -#include "core/css/CSSParserMode.h"
|
| -#include "core/css/CSSParserValues.h"
|
| -#include "core/css/CSSProperty.h"
|
| -#include "core/css/CSSPropertySourceData.h"
|
| -#include "core/css/CSSSelector.h"
|
| -#include "core/css/CSSTokenizer.h"
|
| -#include "core/css/MediaQuery.h"
|
| -#include "core/css/StylePropertySet.h"
|
| -#include "core/css/parser/CSSParserObserver.h"
|
| -#include "platform/graphics/Color.h"
|
| -#include "wtf/HashSet.h"
|
| -#include "wtf/OwnPtr.h"
|
| -#include "wtf/Vector.h"
|
| -#include "wtf/text/AtomicString.h"
|
| -#include "wtf/text/TextPosition.h"
|
| -
|
| -namespace WebCore {
|
| -
|
| -class AnimationParseContext;
|
| -class CSSArrayFunctionValue;
|
| -class CSSBorderImageSliceValue;
|
| -class CSSMixFunctionValue;
|
| -class CSSPrimitiveValue;
|
| -class CSSSelectorList;
|
| -class CSSShaderValue;
|
| -class CSSValue;
|
| -class CSSValueList;
|
| -class CSSBasicShape;
|
| -class Document;
|
| -class Element;
|
| -class ImmutableStylePropertySet;
|
| -class MediaQueryExp;
|
| -class MediaQuerySet;
|
| -class MutableStylePropertySet;
|
| -class StyleKeyframe;
|
| -class StylePropertyShorthand;
|
| -class StyleRuleBase;
|
| -class StyleRuleKeyframes;
|
| -class StyleKeyframe;
|
| -class StyleSheetContents;
|
| -class UseCounter;
|
| -
|
| -// FIXME: This class is shared with CSSTokenizer so should we rename it to CSSSourceLocation?
|
| -struct CSSParserLocation {
|
| - unsigned offset;
|
| - unsigned lineNumber;
|
| - CSSParserString token;
|
| -};
|
| -
|
| -class CSSParser {
|
| - friend inline int cssyylex(void*, CSSParser*);
|
| -
|
| -public:
|
| - CSSParser(const CSSParserContext&, UseCounter* = 0);
|
| -
|
| - ~CSSParser();
|
| -
|
| - void parseSheet(StyleSheetContents*, const String&, const TextPosition& startPosition = TextPosition::minimumPosition(), CSSParserObserver* = 0, bool = false);
|
| - PassRefPtr<StyleRuleBase> parseRule(StyleSheetContents*, const String&);
|
| - PassRefPtr<StyleKeyframe> parseKeyframeRule(StyleSheetContents*, const String&);
|
| - bool parseSupportsCondition(const String&);
|
| - 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*);
|
| - bool parseDeclaration(MutableStylePropertySet*, const String&, CSSParserObserver*, StyleSheetContents* contextStyleSheet);
|
| - static PassRefPtr<ImmutableStylePropertySet> parseInlineStyleDeclaration(const String&, Element*);
|
| - PassRefPtr<MediaQuerySet> parseMediaQueryList(const String&);
|
| - PassOwnPtr<Vector<double> > parseKeyframeKeyList(const String&);
|
| -
|
| - void addPropertyWithPrefixingVariant(CSSPropertyID, PassRefPtr<CSSValue>, bool important, bool implicit = false);
|
| - void addProperty(CSSPropertyID, PassRefPtr<CSSValue>, bool important, bool implicit = false);
|
| - void rollbackLastProperties(int num);
|
| - bool hasProperties() const { return !m_parsedProperties.isEmpty(); }
|
| - void addExpandedPropertyForValue(CSSPropertyID propId, PassRefPtr<CSSValue>, bool);
|
| - void setCurrentProperty(CSSPropertyID);
|
| -
|
| - bool parseValue(CSSPropertyID, bool important);
|
| - bool parseShorthand(CSSPropertyID, const StylePropertyShorthand&, bool important);
|
| - bool parse4Values(CSSPropertyID, const CSSPropertyID* properties, bool important);
|
| - bool parseContent(CSSPropertyID, bool important);
|
| - 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);
|
| -
|
| - PassRefPtr<CSSValue> parseBackgroundColor();
|
| -
|
| - bool parseFillImage(CSSParserValueList*, RefPtr<CSSValue>&);
|
| -
|
| - 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);
|
| - 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 parseFillRepeat(RefPtr<CSSValue>&, RefPtr<CSSValue>&);
|
| - PassRefPtr<CSSValue> parseFillSize(CSSPropertyID, bool &allowComma);
|
| -
|
| - bool parseFillProperty(CSSPropertyID propId, CSSPropertyID& propId1, CSSPropertyID& propId2, RefPtr<CSSValue>&, RefPtr<CSSValue>&);
|
| - bool parseFillShorthand(CSSPropertyID, const CSSPropertyID* properties, int numProperties, bool important);
|
| -
|
| - void addFillValue(RefPtr<CSSValue>& lval, PassRefPtr<CSSValue> rval);
|
| -
|
| - void addAnimationValue(RefPtr<CSSValue>& lval, PassRefPtr<CSSValue> rval);
|
| -
|
| - PassRefPtr<CSSValue> parseAnimationDelay();
|
| - PassRefPtr<CSSValue> parseAnimationDirection();
|
| - PassRefPtr<CSSValue> parseAnimationDuration();
|
| - PassRefPtr<CSSValue> parseAnimationFillMode();
|
| - PassRefPtr<CSSValue> parseAnimationIterationCount();
|
| - PassRefPtr<CSSValue> parseAnimationName();
|
| - PassRefPtr<CSSValue> parseAnimationPlayState();
|
| - PassRefPtr<CSSValue> parseAnimationProperty(AnimationParseContext&);
|
| - PassRefPtr<CSSValue> parseAnimationTimingFunction();
|
| -
|
| - bool parseTransformOriginShorthand(RefPtr<CSSValue>&, RefPtr<CSSValue>&, RefPtr<CSSValue>&);
|
| - bool parseCubicBezierTimingFunctionValue(CSSParserValueList*& args, double& result);
|
| - bool parseAnimationProperty(CSSPropertyID, RefPtr<CSSValue>&, AnimationParseContext&);
|
| - bool parseTransitionShorthand(CSSPropertyID, bool important);
|
| - bool parseAnimationShorthand(CSSPropertyID, bool important);
|
| -
|
| - PassRefPtr<CSSValue> parseColumnWidth();
|
| - PassRefPtr<CSSValue> parseColumnCount();
|
| - bool parseColumnsShorthand(bool important);
|
| -
|
| - PassRefPtr<CSSValue> parseGridPosition();
|
| - bool parseIntegerOrStringFromGridPosition(RefPtr<CSSPrimitiveValue>& numericValue, RefPtr<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();
|
| - void parseGridLineNames(CSSParserValueList* inputList, CSSValueList&);
|
| -
|
| - bool parseClipShape(CSSPropertyID, bool important);
|
| -
|
| - PassRefPtr<CSSValue> parseShapeProperty(CSSPropertyID propId);
|
| - PassRefPtr<CSSPrimitiveValue> parseBasicShape();
|
| - PassRefPtr<CSSPrimitiveValue> parseShapeRadius(CSSParserValue*);
|
| - PassRefPtr<CSSBasicShape> parseBasicShapeRectangle(CSSParserValueList* args);
|
| - PassRefPtr<CSSBasicShape> parseBasicShapeCircle(CSSParserValueList* args);
|
| - PassRefPtr<CSSBasicShape> parseDeprecatedBasicShapeCircle(CSSParserValueList* args);
|
| - PassRefPtr<CSSBasicShape> parseBasicShapeEllipse(CSSParserValueList* args);
|
| - PassRefPtr<CSSBasicShape> parseBasicShapePolygon(CSSParserValueList* args);
|
| - PassRefPtr<CSSBasicShape> parseBasicShapeInsetRectangle(CSSParserValueList* args);
|
| -
|
| - bool parseFont(bool important);
|
| - PassRefPtr<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);
|
| - bool parseColorFromValue(CSSParserValue*, RGBA32&);
|
| - void parseSelector(const String&, CSSSelectorList&);
|
| -
|
| - template<typename StringType>
|
| - static bool fastParseColor(RGBA32&, const StringType&, bool strict);
|
| -
|
| - bool parseLineHeight(bool important);
|
| - bool parseFontSize(bool important);
|
| - bool parseFontVariant(bool important);
|
| - bool parseFontWeight(bool important);
|
| - bool parseFontFaceSrc();
|
| - bool parseFontFaceUnicodeRange();
|
| -
|
| - bool parseSVGValue(CSSPropertyID propId, bool important);
|
| - PassRefPtr<CSSValue> parseSVGPaint();
|
| - PassRefPtr<CSSValue> parseSVGColor();
|
| - PassRefPtr<CSSValue> parseSVGStrokeDasharray();
|
| -
|
| - PassRefPtr<CSSValue> parsePaintOrder() const;
|
| -
|
| - // CSS3 Parsing Routines (for properties specific to CSS3)
|
| - PassRefPtr<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 parseBorderRadius(CSSPropertyID, bool important);
|
| -
|
| - bool parseAspectRatio(bool important);
|
| -
|
| - bool parseReflect(CSSPropertyID, bool important);
|
| -
|
| - bool parseFlex(CSSParserValueList* args, bool important);
|
| -
|
| - bool parseObjectPosition(bool important);
|
| -
|
| - // Image generators
|
| - bool parseCanvas(CSSParserValueList*, RefPtr<CSSValue>&);
|
| -
|
| - bool parseDeprecatedGradient(CSSParserValueList*, RefPtr<CSSValue>&);
|
| - bool parseDeprecatedLinearGradient(CSSParserValueList*, RefPtr<CSSValue>&, CSSGradientRepeat repeating);
|
| - bool parseDeprecatedRadialGradient(CSSParserValueList*, RefPtr<CSSValue>&, CSSGradientRepeat repeating);
|
| - bool parseLinearGradient(CSSParserValueList*, RefPtr<CSSValue>&, CSSGradientRepeat repeating);
|
| - bool parseRadialGradient(CSSParserValueList*, RefPtr<CSSValue>&, CSSGradientRepeat repeating);
|
| - bool parseGradientColorStops(CSSParserValueList*, CSSGradientValue*, bool expectComma);
|
| -
|
| - bool parseCrossfade(CSSParserValueList*, RefPtr<CSSValue>&);
|
| -
|
| - PassRefPtr<CSSValue> parseImageSet(CSSParserValueList*);
|
| -
|
| - PassRefPtr<CSSValueList> parseFilter();
|
| - PassRefPtr<CSSFilterValue> parseBuiltinFilterArguments(CSSParserValueList*, CSSFilterValue::FilterOperationType);
|
| - PassRefPtr<CSSMixFunctionValue> parseMixFunction(CSSParserValue*);
|
| - PassRefPtr<CSSArrayFunctionValue> parseCustomFilterArrayFunction(CSSParserValue*);
|
| - PassRefPtr<CSSValueList> parseCustomFilterTransform(CSSParserValueList*);
|
| - PassRefPtr<CSSValueList> parseCustomFilterParameters(CSSParserValueList*);
|
| - PassRefPtr<CSSFilterValue> parseCustomFilterFunctionWithAtRuleReferenceSyntax(CSSParserValue*);
|
| - PassRefPtr<CSSFilterValue> parseCustomFilterFunctionWithInlineSyntax(CSSParserValue*);
|
| - PassRefPtr<CSSFilterValue> parseCustomFilterFunction(CSSParserValue*);
|
| - bool parseFilterRuleSrc();
|
| - PassRefPtr<CSSShaderValue> parseFilterRuleSrcUriAndFormat(CSSParserValueList*);
|
| -
|
| - static bool isBlendMode(CSSValueID);
|
| - static bool isCompositeOperator(CSSValueID);
|
| -
|
| - PassRefPtr<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 parseTextEmphasisStyle(bool important);
|
| -
|
| - bool parseTouchAction(bool important);
|
| -
|
| - void addTextDecorationProperty(CSSPropertyID, PassRefPtr<CSSValue>, bool important);
|
| - bool parseTextDecoration(CSSPropertyID propId, bool important);
|
| - bool parseTextUnderlinePosition(bool important);
|
| -
|
| - PassRefPtr<CSSValue> parseTextIndent();
|
| -
|
| - bool parseLineBoxContain(bool important);
|
| - bool parseCalculation(CSSParserValue*, ValueRange);
|
| -
|
| - bool parseFontFeatureTag(CSSValueList*);
|
| - bool parseFontFeatureSettings(bool important);
|
| -
|
| - bool parseFlowThread(const String& flowName);
|
| - bool parseFlowThread(CSSPropertyID, bool important);
|
| - bool parseRegionThread(CSSPropertyID, bool important);
|
| -
|
| - bool parseFontVariantLigatures(bool important);
|
| -
|
| - bool parseGeneratedImage(CSSParserValueList*, RefPtr<CSSValue>&);
|
| -
|
| - CSSParserSelector* createFloatingSelector();
|
| - CSSParserSelector* createFloatingSelectorWithTagName(const QualifiedName&);
|
| - PassOwnPtr<CSSParserSelector> sinkFloatingSelector(CSSParserSelector*);
|
| -
|
| - Vector<OwnPtr<CSSParserSelector> >* createFloatingSelectorVector();
|
| - PassOwnPtr<Vector<OwnPtr<CSSParserSelector> > > sinkFloatingSelectorVector(Vector<OwnPtr<CSSParserSelector> >*);
|
| -
|
| - CSSParserValueList* createFloatingValueList();
|
| - PassOwnPtr<CSSParserValueList> sinkFloatingValueList(CSSParserValueList*);
|
| -
|
| - CSSParserFunction* createFloatingFunction();
|
| - CSSParserFunction* createFloatingFunction(const CSSParserString& name, PassOwnPtr<CSSParserValueList> args);
|
| - PassOwnPtr<CSSParserFunction> sinkFloatingFunction(CSSParserFunction*);
|
| -
|
| - CSSParserValue& sinkFloatingValue(CSSParserValue&);
|
| -
|
| - MediaQuerySet* createMediaQuerySet();
|
| - StyleRuleBase* createImportRule(const CSSParserString&, MediaQuerySet*);
|
| - StyleKeyframe* createKeyframe(CSSParserValueList*);
|
| - StyleRuleKeyframes* createKeyframesRule(const String&, PassOwnPtr<Vector<RefPtr<StyleKeyframe> > >, bool isPrefixed);
|
| -
|
| - typedef Vector<RefPtr<StyleRuleBase> > RuleList;
|
| - StyleRuleBase* createMediaRule(MediaQuerySet*, RuleList*);
|
| - RuleList* createRuleList();
|
| - RuleList* appendRule(RuleList*, StyleRuleBase*);
|
| - 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();
|
| - void markSupportsRuleHeaderEnd();
|
| - PassRefPtr<CSSRuleSourceData> popSupportsRuleData();
|
| - StyleRuleBase* createHostRule(RuleList* rules);
|
| - StyleRuleBase* createFilterRule(const CSSParserString&);
|
| -
|
| - void startDeclarationsForMarginBox();
|
| - void endDeclarationsForMarginBox();
|
| -
|
| - MediaQueryExp* createFloatingMediaQueryExp(const AtomicString&, CSSParserValueList*);
|
| - PassOwnPtr<MediaQueryExp> sinkFloatingMediaQueryExp(MediaQueryExp*);
|
| - Vector<OwnPtr<MediaQueryExp> >* createFloatingMediaQueryExpList();
|
| - PassOwnPtr<Vector<OwnPtr<MediaQueryExp> > > sinkFloatingMediaQueryExpList(Vector<OwnPtr<MediaQueryExp> >*);
|
| - MediaQuery* createFloatingMediaQuery(MediaQuery::Restrictor, const AtomicString&, PassOwnPtr<Vector<OwnPtr<MediaQueryExp> > >);
|
| - MediaQuery* createFloatingMediaQuery(PassOwnPtr<Vector<OwnPtr<MediaQueryExp> > >);
|
| - MediaQuery* createFloatingNotAllQuery();
|
| - PassOwnPtr<MediaQuery> sinkFloatingMediaQuery(MediaQuery*);
|
| -
|
| - Vector<RefPtr<StyleKeyframe> >* createFloatingKeyframeVector();
|
| - PassOwnPtr<Vector<RefPtr<StyleKeyframe> > > sinkFloatingKeyframeVector(Vector<RefPtr<StyleKeyframe> >*);
|
| -
|
| - void addNamespace(const AtomicString& prefix, const AtomicString& uri);
|
| - QualifiedName determineNameInNamespace(const AtomicString& prefix, const AtomicString& localName);
|
| -
|
| - CSSParserSelector* rewriteSpecifiersWithElementName(const AtomicString& namespacePrefix, const AtomicString& elementName, CSSParserSelector*, bool isNamespacePlaceholder = false);
|
| - CSSParserSelector* rewriteSpecifiersWithElementNameForCustomPseudoElement(const QualifiedName& tag, const AtomicString& elementName, CSSParserSelector* specifiers, bool tagIsForNamespaceRule);
|
| - CSSParserSelector* rewriteSpecifiersWithElementNameForContentPseudoElement(const QualifiedName& tag, const AtomicString& elementName, CSSParserSelector* specifiers, bool tagIsForNamespaceRule);
|
| - CSSParserSelector* rewriteSpecifiersWithNamespaceIfNeeded(CSSParserSelector*);
|
| - CSSParserSelector* rewriteSpecifiers(CSSParserSelector*, CSSParserSelector*);
|
| - CSSParserSelector* rewriteSpecifiersForShadowDistributed(CSSParserSelector* specifiers, CSSParserSelector* distributedPseudoElementSelector);
|
| -
|
| - void invalidBlockHit();
|
| -
|
| - 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();
|
| -
|
| - CSSParserContext m_context;
|
| -
|
| - bool m_important;
|
| - CSSPropertyID m_id;
|
| - StyleSheetContents* m_styleSheet;
|
| - RefPtr<StyleRuleBase> m_rule;
|
| - RefPtr<StyleKeyframe> m_keyframe;
|
| - RefPtr<MediaQuerySet> m_mediaList;
|
| - OwnPtr<CSSParserValueList> m_valueList;
|
| - bool m_supportsCondition;
|
| -
|
| - typedef Vector<CSSProperty, 256> ParsedPropertyVector;
|
| - ParsedPropertyVector m_parsedProperties;
|
| - CSSSelectorList* m_selectorListForParseSelector;
|
| -
|
| - unsigned m_numParsedPropertiesBeforeMarginBox;
|
| -
|
| - int m_inParseShorthand;
|
| - CSSPropertyID m_currentShorthand;
|
| - bool m_implicitShorthand;
|
| -
|
| - bool m_hasFontFaceOnlyValues;
|
| - bool m_hadSyntacticallyValidCSSRule;
|
| - bool m_logErrors;
|
| - bool m_ignoreErrors;
|
| -
|
| - bool m_inFilterRule;
|
| -
|
| - AtomicString m_defaultNamespace;
|
| -
|
| - // tokenizer methods and data
|
| - CSSParserObserver* m_observer;
|
| -
|
| - // Local functions which just call into CSSParserObserver if non-null.
|
| - void startRule();
|
| - void endRule(bool valid);
|
| - void startRuleHeader(CSSRuleSourceData::Type);
|
| - void endRuleHeader();
|
| - void startSelector();
|
| - void endSelector();
|
| - void startRuleBody();
|
| - void startProperty();
|
| - void endProperty(bool isImportantFound, bool isPropertyParsed, CSSParserError = NoCSSError);
|
| - void startEndUnknownRule();
|
| -
|
| - void endInvalidRuleHeader();
|
| - void reportError(const CSSParserLocation&, CSSParserError = GeneralCSSError);
|
| - void resumeErrorLogging() { m_ignoreErrors = false; }
|
| - void setLocationLabel(const CSSParserLocation& location) { m_locationLabel = location; }
|
| - const CSSParserLocation& lastLocationLabel() const { return m_locationLabel; }
|
| -
|
| - void tokenToLowerCase(const CSSParserString& token);
|
| -
|
| - void markViewportRuleBodyStart() { m_inViewport = true; }
|
| - void markViewportRuleBodyEnd() { m_inViewport = false; }
|
| - StyleRuleBase* createViewportRule();
|
| -
|
| - PassRefPtr<CSSPrimitiveValue> createPrimitiveNumericValue(CSSParserValue*);
|
| - PassRefPtr<CSSPrimitiveValue> createPrimitiveStringValue(CSSParserValue*);
|
| - PassRefPtr<CSSPrimitiveValue> createPrimitiveVariableNameValue(CSSParserValue*);
|
| -
|
| - CSSParserLocation currentLocation() { return m_tokenizer.currentLocation(); }
|
| -
|
| -private:
|
| - enum PropertyType {
|
| - PropertyExplicit,
|
| - PropertyImplicit
|
| - };
|
| -
|
| - class ImplicitScope {
|
| - WTF_MAKE_NONCOPYABLE(ImplicitScope);
|
| - public:
|
| - ImplicitScope(WebCore::CSSParser* parser, PropertyType propertyType)
|
| - : m_parser(parser)
|
| - {
|
| - m_parser->m_implicitShorthand = propertyType == CSSParser::PropertyImplicit;
|
| - }
|
| -
|
| - ~ImplicitScope()
|
| - {
|
| - m_parser->m_implicitShorthand = false;
|
| - }
|
| -
|
| - private:
|
| - WebCore::CSSParser* m_parser;
|
| - };
|
| -
|
| - class StyleDeclarationScope {
|
| - WTF_MAKE_NONCOPYABLE(StyleDeclarationScope);
|
| - public:
|
| - StyleDeclarationScope(CSSParser* parser, const StylePropertySet* declaration)
|
| - : m_parser(parser)
|
| - , m_mode(declaration->cssParserMode())
|
| - {
|
| - if (isCSSViewportParsingEnabledForMode(m_mode)) {
|
| - ASSERT(!m_parser->inViewport());
|
| - m_parser->markViewportRuleBodyStart();
|
| - }
|
| - }
|
| -
|
| - ~StyleDeclarationScope()
|
| - {
|
| - if (isCSSViewportParsingEnabledForMode(m_mode))
|
| - m_parser->markViewportRuleBodyEnd();
|
| - }
|
| -
|
| - private:
|
| - CSSParser* m_parser;
|
| - CSSParserMode m_mode;
|
| - };
|
| -
|
| - inline void ensureLineEndings();
|
| -
|
| - void setStyleSheet(StyleSheetContents* styleSheet) { m_styleSheet = styleSheet; }
|
| -
|
| - bool inQuirksMode() const { return isQuirksModeBehavior(m_context.mode()); }
|
| - bool inViewport() const { return m_inViewport; }
|
| -
|
| - KURL completeURL(const String& url) const;
|
| -
|
| - void recheckAtKeyword(const UChar* str, int len);
|
| -
|
| - template<unsigned prefixLength, unsigned suffixLength>
|
| - inline void setupParser(const char (&prefix)[prefixLength], const String& string, const char (&suffix)[suffixLength])
|
| - {
|
| - setupParser(prefix, prefixLength - 1, string, suffix, suffixLength - 1);
|
| - }
|
| - void setupParser(const char* prefix, unsigned prefixLength, const String&, const char* suffix, unsigned suffixLength);
|
| - bool inShorthand() const { return m_inParseShorthand; }
|
| -
|
| - bool validWidthOrHeight(CSSParserValue*);
|
| -
|
| - void deleteFontFaceOnlyValues();
|
| -
|
| - bool parseValue(MutableStylePropertySet*, CSSPropertyID, const String&, bool important, StyleSheetContents* contextStyleSheet);
|
| - PassRefPtr<ImmutableStylePropertySet> parseDeclaration(const String&, StyleSheetContents* contextStyleSheet);
|
| -
|
| - enum SizeParameterType {
|
| - None,
|
| - Auto,
|
| - Length,
|
| - PageSize,
|
| - Orientation,
|
| - };
|
| -
|
| - bool parsePage(CSSPropertyID propId, bool important);
|
| - bool parseSize(CSSPropertyID propId, bool important);
|
| - SizeParameterType parseSizeParameter(CSSValueList* parsedValues, CSSParserValue* value, SizeParameterType prevParamType);
|
| -
|
| - bool parseFontFaceSrcURI(CSSValueList*);
|
| - bool parseFontFaceSrcLocal(CSSValueList*);
|
| -
|
| - bool parseColor(const String&);
|
| -
|
| - const String* m_source;
|
| - TextPosition m_startPosition;
|
| - CSSRuleSourceData::Type m_ruleHeaderType;
|
| - unsigned m_ruleHeaderStartOffset;
|
| - int m_ruleHeaderStartLineNumber;
|
| - OwnPtr<Vector<unsigned> > m_lineEndings;
|
| -
|
| - bool m_ruleHasHeader;
|
| -
|
| - bool m_allowImportRules;
|
| - bool m_allowNamespaceDeclarations;
|
| -
|
| - bool parseViewportProperty(CSSPropertyID propId, bool important);
|
| - bool parseViewportShorthand(CSSPropertyID propId, CSSPropertyID first, CSSPropertyID second, bool important);
|
| -
|
| - bool m_inViewport;
|
| -
|
| - CSSParserLocation m_locationLabel;
|
| -
|
| - bool useLegacyBackgroundSizeShorthandBehavior() const;
|
| -
|
| - Vector<RefPtr<StyleRuleBase> > m_parsedRules;
|
| - Vector<RefPtr<StyleKeyframe> > m_parsedKeyframes;
|
| - Vector<RefPtr<MediaQuerySet> > m_parsedMediaQuerySets;
|
| - Vector<OwnPtr<RuleList> > m_parsedRuleLists;
|
| - Vector<CSSParserSelector*> m_floatingSelectors;
|
| - Vector<Vector<OwnPtr<CSSParserSelector> >*> m_floatingSelectorVectors;
|
| - Vector<CSSParserValueList*> m_floatingValueLists;
|
| - Vector<CSSParserFunction*> m_floatingFunctions;
|
| -
|
| - OwnPtr<MediaQuery> m_floatingMediaQuery;
|
| - OwnPtr<MediaQueryExp> m_floatingMediaQueryExp;
|
| - OwnPtr<Vector<OwnPtr<MediaQueryExp> > > m_floatingMediaQueryExpList;
|
| -
|
| - OwnPtr<Vector<RefPtr<StyleKeyframe> > > m_floatingKeyframeVector;
|
| -
|
| - Vector<OwnPtr<CSSParserSelector> > m_reusableSelectorVector;
|
| - Vector<OwnPtr<CSSParserSelector> > m_reusableRegionSelectorVector;
|
| -
|
| - RefPtr<CSSCalcValue> m_parsedCalculation;
|
| -
|
| - OwnPtr<RuleSourceDataList> m_supportsRuleDataStack;
|
| -
|
| - // defines units allowed for a certain property, used in parseUnit
|
| - enum Units {
|
| - FUnknown = 0x0000,
|
| - FInteger = 0x0001,
|
| - FNumber = 0x0002, // Real Numbers
|
| - FPercent = 0x0004,
|
| - FLength = 0x0008,
|
| - FAngle = 0x0010,
|
| - FTime = 0x0020,
|
| - FFrequency = 0x0040,
|
| - FPositiveInteger = 0x0080,
|
| - FRelative = 0x0100,
|
| - FResolution = 0x0200,
|
| - FNonNeg = 0x0400
|
| - };
|
| -
|
| - friend inline Units operator|(Units a, Units b)
|
| - {
|
| - return static_cast<Units>(static_cast<unsigned>(a) | static_cast<unsigned>(b));
|
| - }
|
| -
|
| - enum ReleaseParsedCalcValueCondition {
|
| - ReleaseParsedCalcValue,
|
| - DoNotReleaseParsedCalcValue
|
| - };
|
| -
|
| - bool isLoggingErrors();
|
| - void logError(const String& message, const CSSParserLocation&);
|
| -
|
| - bool validCalculationUnit(CSSParserValue*, Units, ReleaseParsedCalcValueCondition releaseCalc = DoNotReleaseParsedCalcValue);
|
| -
|
| - bool shouldAcceptUnitLessValues(CSSParserValue*, Units, CSSParserMode);
|
| -
|
| - 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>&);
|
| - int colorIntFromValue(CSSParserValue*);
|
| - double parsedDouble(CSSParserValue*, ReleaseParsedCalcValueCondition releaseCalc = DoNotReleaseParsedCalcValue);
|
| - bool isCalculation(CSSParserValue*);
|
| -
|
| - UseCounter* m_useCounter;
|
| -
|
| - CSSTokenizer m_tokenizer;
|
| -
|
| - friend class TransformOperationInfo;
|
| - friend class FilterOperationInfo;
|
| -};
|
| -
|
| -CSSPropertyID cssPropertyID(const CSSParserString&);
|
| -CSSPropertyID cssPropertyID(const String&);
|
| -CSSValueID cssValueKeywordID(const CSSParserString&);
|
| -
|
| -class ShorthandScope {
|
| - WTF_MAKE_FAST_ALLOCATED;
|
| -public:
|
| - ShorthandScope(CSSParser* parser, CSSPropertyID propId) : m_parser(parser)
|
| - {
|
| - if (!(m_parser->m_inParseShorthand++))
|
| - m_parser->m_currentShorthand = propId;
|
| - }
|
| - ~ShorthandScope()
|
| - {
|
| - if (!(--m_parser->m_inParseShorthand))
|
| - m_parser->m_currentShorthand = CSSPropertyInvalid;
|
| - }
|
| -
|
| -private:
|
| - CSSParser* m_parser;
|
| -};
|
| -
|
| -bool isValidNthToken(const CSSParserString&);
|
| -
|
| -inline int cssyylex(void* yylval, CSSParser* parser)
|
| -{
|
| - return parser->m_tokenizer.lex(yylval);
|
| -}
|
| -
|
| -} // namespace WebCore
|
| -
|
| -#endif // CSSParser_h
|
|
|