Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(451)

Unified Diff: Source/core/css/parser/CSSParserFastPaths.cpp

Issue 1213613013: Move parsing of "keyword only" SVG properties to CSSParserFastPaths (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Drop redundant comments. Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | Source/core/css/parser/CSSPropertyParser.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/css/parser/CSSParserFastPaths.cpp
diff --git a/Source/core/css/parser/CSSParserFastPaths.cpp b/Source/core/css/parser/CSSParserFastPaths.cpp
index 83d290a3eaf83ff7eb2fbea7ac560ed83a94e22d..00e6fc516bc285d9d8fea4f2222bb3fc9723d678 100644
--- a/Source/core/css/parser/CSSParserFastPaths.cpp
+++ b/Source/core/css/parser/CSSParserFastPaths.cpp
@@ -462,6 +462,12 @@ bool CSSParserFastPaths::isValidKeywordPropertyAndValue(CSSPropertyID propertyId
return false;
switch (propertyId) {
+ case CSSPropertyAlignmentBaseline:
+ // auto | baseline | before-edge | text-before-edge | middle |
+ // central | after-edge | text-after-edge | ideographic | alphabetic |
+ // hanging | mathematical
+ return valueID == CSSValueAuto || valueID == CSSValueBaseline || valueID == CSSValueMiddle
+ || (valueID >= CSSValueBeforeEdge && valueID <= CSSValueMathematical);
case CSSPropertyAll:
return false; // Only accepts css-wide keywords
case CSSPropertyBackgroundRepeatX: // repeat | no-repeat
@@ -481,10 +487,20 @@ bool CSSParserFastPaths::isValidKeywordPropertyAndValue(CSSPropertyID propertyId
return valueID >= CSSValueNone && valueID <= CSSValueDouble;
case CSSPropertyBoxSizing:
return valueID == CSSValueBorderBox || valueID == CSSValueContentBox;
+ case CSSPropertyBufferedRendering:
+ return valueID == CSSValueAuto || valueID == CSSValueDynamic || valueID == CSSValueStatic;
case CSSPropertyCaptionSide: // top | bottom | left | right
return valueID == CSSValueLeft || valueID == CSSValueRight || valueID == CSSValueTop || valueID == CSSValueBottom;
case CSSPropertyClear: // none | left | right | both
return valueID == CSSValueNone || valueID == CSSValueLeft || valueID == CSSValueRight || valueID == CSSValueBoth;
+ case CSSPropertyClipRule:
+ case CSSPropertyFillRule:
+ return valueID == CSSValueNonzero || valueID == CSSValueEvenodd;
+ case CSSPropertyColorInterpolation:
+ case CSSPropertyColorInterpolationFilters:
+ return valueID == CSSValueAuto || valueID == CSSValueSRGB || valueID == CSSValueLinearRGB;
+ case CSSPropertyColorRendering:
+ return valueID == CSSValueAuto || valueID == CSSValueOptimizeSpeed || valueID == CSSValueOptimizeQuality;
case CSSPropertyDirection: // ltr | rtl
return valueID == CSSValueLtr || valueID == CSSValueRtl;
case CSSPropertyDisplay:
@@ -494,6 +510,13 @@ bool CSSParserFastPaths::isValidKeywordPropertyAndValue(CSSPropertyID propertyId
// flex | inline-flex | -webkit-flex | -webkit-inline-flex | grid | inline-grid
return (valueID >= CSSValueInline && valueID <= CSSValueInlineFlex) || valueID == CSSValueWebkitFlex || valueID == CSSValueWebkitInlineFlex || valueID == CSSValueNone
|| (RuntimeEnabledFeatures::cssGridLayoutEnabled() && (valueID == CSSValueGrid || valueID == CSSValueInlineGrid));
+ case CSSPropertyDominantBaseline:
+ // auto | use-script | no-change | reset-size | ideographic |
+ // alphabetic | hanging | mathematical | central | middle |
+ // text-after-edge | text-before-edge
+ return valueID == CSSValueAuto || valueID == CSSValueMiddle
+ || (valueID >= CSSValueUseScript && valueID <= CSSValueResetSize)
+ || (valueID >= CSSValueCentral && valueID <= CSSValueMathematical);
case CSSPropertyEmptyCells: // show | hide
return valueID == CSSValueShow || valueID == CSSValueHide;
case CSSPropertyFloat: // left | right | none
@@ -513,6 +536,8 @@ bool CSSParserFastPaths::isValidKeywordPropertyAndValue(CSSPropertyID propertyId
// See section CSS_PROP_LIST_STYLE_TYPE of file CSSValueKeywords.in
// for the list of supported list-style-types.
return (valueID >= CSSValueDisc && valueID <= CSSValueKatakanaIroha) || valueID == CSSValueNone;
+ case CSSPropertyMaskType:
+ return valueID == CSSValueLuminance || valueID == CSSValueAlpha;
case CSSPropertyObjectFit:
return valueID == CSSValueFill || valueID == CSSValueContain || valueID == CSSValueCover || valueID == CSSValueNone || valueID == CSSValueScaleDown;
case CSSPropertyOutlineStyle: // (<border-style> except hidden) | auto
@@ -543,14 +568,22 @@ bool CSSParserFastPaths::isValidKeywordPropertyAndValue(CSSPropertyID propertyId
case CSSPropertyScrollBehavior: // auto | smooth
ASSERT(RuntimeEnabledFeatures::cssomSmoothScrollEnabled());
return valueID == CSSValueAuto || valueID == CSSValueSmooth;
+ case CSSPropertyShapeRendering:
+ return valueID == CSSValueAuto || valueID == CSSValueOptimizeSpeed || valueID == CSSValueCrispEdges || valueID == CSSValueGeometricPrecision;
case CSSPropertySpeak: // none | normal | spell-out | digits | literal-punctuation | no-punctuation
return valueID == CSSValueNone || valueID == CSSValueNormal || valueID == CSSValueSpellOut || valueID == CSSValueDigits || valueID == CSSValueLiteralPunctuation || valueID == CSSValueNoPunctuation;
+ case CSSPropertyStrokeLinejoin:
+ return valueID == CSSValueMiter || valueID == CSSValueRound || valueID == CSSValueBevel;
+ case CSSPropertyStrokeLinecap:
+ return valueID == CSSValueButt || valueID == CSSValueRound || valueID == CSSValueSquare;
case CSSPropertyTableLayout: // auto | fixed
return valueID == CSSValueAuto || valueID == CSSValueFixed;
case CSSPropertyTextAlignLast:
// auto | start | end | left | right | center | justify
ASSERT(RuntimeEnabledFeatures::css3TextEnabled());
return (valueID >= CSSValueLeft && valueID <= CSSValueJustify) || valueID == CSSValueStart || valueID == CSSValueEnd || valueID == CSSValueAuto;
+ case CSSPropertyTextAnchor:
+ return valueID == CSSValueStart || valueID == CSSValueMiddle || valueID == CSSValueEnd;
case CSSPropertyTextDecorationStyle:
// solid | double | dotted | dashed | wavy
ASSERT(RuntimeEnabledFeatures::css3TextDecorationsEnabled());
@@ -569,6 +602,8 @@ bool CSSParserFastPaths::isValidKeywordPropertyAndValue(CSSPropertyID propertyId
return valueID == CSSValueNormal || valueID == CSSValueEmbed
|| valueID == CSSValueBidiOverride || valueID == CSSValueWebkitIsolate
|| valueID == CSSValueWebkitIsolateOverride || valueID == CSSValueWebkitPlaintext;
+ case CSSPropertyVectorEffect:
+ return valueID == CSSValueNone || valueID == CSSValueNonScalingStroke;
case CSSPropertyVisibility: // visible | hidden | collapse
return valueID == CSSValueVisible || valueID == CSSValueHidden || valueID == CSSValueCollapse;
case CSSPropertyWebkitAppearance:
@@ -639,6 +674,9 @@ bool CSSParserFastPaths::isValidKeywordPropertyAndValue(CSSPropertyID propertyId
return valueID == CSSValueAuto || valueID == CSSValueNone || valueID == CSSValueText || valueID == CSSValueAll;
case CSSPropertyWebkitWritingMode:
return valueID >= CSSValueHorizontalTb && valueID <= CSSValueHorizontalBt;
+ case CSSPropertyWritingMode:
+ return valueID == CSSValueLrTb || valueID == CSSValueRlTb || valueID == CSSValueTbRl
+ || valueID == CSSValueLr || valueID == CSSValueRl || valueID == CSSValueTb;
case CSSPropertyWhiteSpace: // normal | pre | nowrap
return valueID == CSSValueNormal || valueID == CSSValuePre || valueID == CSSValuePreWrap || valueID == CSSValuePreLine || valueID == CSSValueNowrap;
case CSSPropertyWordBreak: // normal | break-all | keep-all | break-word (this is a custom extension)
@@ -655,6 +693,7 @@ bool CSSParserFastPaths::isValidKeywordPropertyAndValue(CSSPropertyID propertyId
bool CSSParserFastPaths::isKeywordPropertyID(CSSPropertyID propertyId)
{
switch (propertyId) {
+ case CSSPropertyAlignmentBaseline:
case CSSPropertyAll:
case CSSPropertyMixBlendMode:
case CSSPropertyIsolation:
@@ -666,17 +705,25 @@ bool CSSParserFastPaths::isKeywordPropertyID(CSSPropertyID propertyId)
case CSSPropertyBorderRightStyle:
case CSSPropertyBorderTopStyle:
case CSSPropertyBoxSizing:
+ case CSSPropertyBufferedRendering:
case CSSPropertyCaptionSide:
case CSSPropertyClear:
+ case CSSPropertyClipRule:
+ case CSSPropertyColorInterpolation:
+ case CSSPropertyColorInterpolationFilters:
+ case CSSPropertyColorRendering:
case CSSPropertyDirection:
case CSSPropertyDisplay:
+ case CSSPropertyDominantBaseline:
case CSSPropertyEmptyCells:
+ case CSSPropertyFillRule:
case CSSPropertyFloat:
case CSSPropertyFontStyle:
case CSSPropertyFontStretch:
case CSSPropertyImageRendering:
case CSSPropertyListStylePosition:
case CSSPropertyListStyleType:
+ case CSSPropertyMaskType:
case CSSPropertyObjectFit:
case CSSPropertyOutlineStyle:
case CSSPropertyOverflowWrap:
@@ -689,15 +736,20 @@ bool CSSParserFastPaths::isKeywordPropertyID(CSSPropertyID propertyId)
case CSSPropertyPosition:
case CSSPropertyResize:
case CSSPropertyScrollBehavior:
+ case CSSPropertyShapeRendering:
case CSSPropertySpeak:
+ case CSSPropertyStrokeLinecap:
+ case CSSPropertyStrokeLinejoin:
case CSSPropertyTableLayout:
case CSSPropertyTextAlignLast:
+ case CSSPropertyTextAnchor:
case CSSPropertyTextDecorationStyle:
case CSSPropertyTextJustify:
case CSSPropertyTextOverflow:
case CSSPropertyTextRendering:
case CSSPropertyTextTransform:
case CSSPropertyUnicodeBidi:
+ case CSSPropertyVectorEffect:
case CSSPropertyVisibility:
case CSSPropertyWebkitAppearance:
case CSSPropertyBackfaceVisibility:
@@ -739,6 +791,7 @@ bool CSSParserFastPaths::isKeywordPropertyID(CSSPropertyID propertyId)
case CSSPropertyWhiteSpace:
case CSSPropertyWordBreak:
case CSSPropertyWordWrap:
+ case CSSPropertyWritingMode:
case CSSPropertyScrollSnapType:
return true;
case CSSPropertyAlignItems:
« no previous file with comments | « no previous file | Source/core/css/parser/CSSPropertyParser.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698