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

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

Issue 2366243002: Remove all ordering requirements in CSSValueKeywords.in (WIP) (Closed)
Patch Set: Some mor efixes Created 4 years, 1 month 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
Index: third_party/WebKit/Source/core/css/parser/CSSParserFastPaths.cpp
diff --git a/third_party/WebKit/Source/core/css/parser/CSSParserFastPaths.cpp b/third_party/WebKit/Source/core/css/parser/CSSParserFastPaths.cpp
index ff06e316143a5d655d6e1cff09e992858bb9bddd..ff22d97159b9c393c58c5e15adafa3cc98d410ab 100644
--- a/third_party/WebKit/Source/core/css/parser/CSSParserFastPaths.cpp
+++ b/third_party/WebKit/Source/core/css/parser/CSSParserFastPaths.cpp
@@ -488,6 +488,7 @@ CSSValue* CSSParserFastPaths::parseColor(const String& string,
return CSSColorValue::create(color);
}
+// TODO(sashab): Generate this function from CSSProperties.in.
bool CSSParserFastPaths::isValidKeywordPropertyAndValue(
CSSPropertyID propertyId,
CSSValueID valueID,
@@ -495,12 +496,15 @@ bool CSSParserFastPaths::isValidKeywordPropertyAndValue(
if (valueID == CSSValueInvalid || !isValueAllowedInMode(valueID, parserMode))
return false;
- // For range checks, enum ordering is defined by CSSValueKeywords.in.
switch (propertyId) {
case CSSPropertyAlignmentBaseline:
return valueID == CSSValueAuto || valueID == CSSValueAlphabetic ||
valueID == CSSValueBaseline || valueID == CSSValueMiddle ||
- (valueID >= CSSValueBeforeEdge && valueID <= CSSValueMathematical);
+ valueID == CSSValueBeforeEdge || valueID == CSSValueAfterEdge ||
+ valueID == CSSValueCentral || valueID == CSSValueTextBeforeEdge ||
+ valueID == CSSValueTextAfterEdge ||
+ valueID == CSSValueIdeographic || valueID == CSSValueHanging ||
+ valueID == CSSValueMathematical;
case CSSPropertyAll:
return false; // Only accepts css-wide keywords
case CSSPropertyBackgroundRepeatX:
@@ -517,7 +521,11 @@ bool CSSParserFastPaths::isValidKeywordPropertyAndValue(
case CSSPropertyWebkitBorderEndStyle:
case CSSPropertyWebkitBorderStartStyle:
case CSSPropertyColumnRuleStyle:
- return valueID >= CSSValueNone && valueID <= CSSValueDouble;
+ return valueID == CSSValueNone || valueID == CSSValueHidden ||
+ valueID == CSSValueInset || valueID == CSSValueGroove ||
+ valueID == CSSValueOutset || valueID == CSSValueRidge ||
+ valueID == CSSValueDotted || valueID == CSSValueDashed ||
+ valueID == CSSValueSolid || valueID == CSSValueDouble;
case CSSPropertyBoxSizing:
return valueID == CSSValueBorderBox || valueID == CSSValueContentBox;
case CSSPropertyBufferedRendering:
@@ -542,8 +550,18 @@ bool CSSParserFastPaths::isValidKeywordPropertyAndValue(
case CSSPropertyDirection:
return valueID == CSSValueLtr || valueID == CSSValueRtl;
case CSSPropertyDisplay:
- return (valueID >= CSSValueInline && valueID <= CSSValueInlineFlex) ||
- valueID == CSSValueWebkitFlex ||
+ return valueID == CSSValueInline || valueID == CSSValueBlock ||
+ valueID == CSSValueListItem || valueID == CSSValueInlineBlock ||
+ valueID == CSSValueTable || valueID == CSSValueInlineTable ||
+ valueID == CSSValueTableRowGroup ||
+ valueID == CSSValueTableHeaderGroup ||
+ valueID == CSSValueTableFooterGroup ||
+ valueID == CSSValueTableRow ||
+ valueID == CSSValueTableColumnGroup ||
+ valueID == CSSValueTableColumn || valueID == CSSValueTableCell ||
+ valueID == CSSValueTableCaption || valueID == CSSValueWebkitBox ||
+ valueID == CSSValueWebkitInlineBox || valueID == CSSValueFlex ||
+ valueID == CSSValueInlineFlex || valueID == CSSValueWebkitFlex ||
valueID == CSSValueWebkitInlineFlex || valueID == CSSValueNone ||
(RuntimeEnabledFeatures::cssGridLayoutEnabled() &&
(valueID == CSSValueGrid || valueID == CSSValueInlineGrid)) ||
@@ -551,9 +569,12 @@ bool CSSParserFastPaths::isValidKeywordPropertyAndValue(
valueID == CSSValueContents);
case CSSPropertyDominantBaseline:
return valueID == CSSValueAuto || valueID == CSSValueAlphabetic ||
- valueID == CSSValueMiddle ||
- (valueID >= CSSValueUseScript && valueID <= CSSValueResetSize) ||
- (valueID >= CSSValueCentral && valueID <= CSSValueMathematical);
+ valueID == CSSValueMiddle || valueID == CSSValueUseScript ||
+ valueID == CSSValueNoChange || valueID == CSSValueResetSize ||
+ valueID == CSSValueCentral || valueID == CSSValueTextBeforeEdge ||
+ valueID == CSSValueTextAfterEdge ||
+ valueID == CSSValueIdeographic || valueID == CSSValueHanging ||
+ valueID == CSSValueMathematical;
case CSSPropertyEmptyCells:
return valueID == CSSValueShow || valueID == CSSValueHide;
case CSSPropertyFloat:
@@ -563,8 +584,12 @@ bool CSSParserFastPaths::isValidKeywordPropertyAndValue(
return valueID == CSSValueNormal || valueID == CSSValueItalic ||
valueID == CSSValueOblique;
case CSSPropertyFontStretch:
- return valueID == CSSValueNormal || (valueID >= CSSValueUltraCondensed &&
- valueID <= CSSValueUltraExpanded);
+ return valueID == CSSValueNormal || valueID == CSSValueUltraCondensed ||
+ valueID == CSSValueExtraCondensed ||
+ valueID == CSSValueCondensed || valueID == CSSValueSemiCondensed ||
+ valueID == CSSValueSemiExpanded || valueID == CSSValueExpanded ||
+ valueID == CSSValueExtraExpanded ||
+ valueID == CSSValueUltraExpanded;
case CSSPropertyImageRendering:
return valueID == CSSValueAuto ||
valueID == CSSValueWebkitOptimizeContrast ||
@@ -574,8 +599,43 @@ bool CSSParserFastPaths::isValidKeywordPropertyAndValue(
case CSSPropertyListStylePosition:
return valueID == CSSValueInside || valueID == CSSValueOutside;
case CSSPropertyListStyleType:
- return (valueID >= CSSValueDisc && valueID <= CSSValueKatakanaIroha) ||
- valueID == CSSValueNone;
+ return valueID == CSSValueDisc || valueID == CSSValueCircle ||
+ valueID == CSSValueSquare || valueID == CSSValueDecimal ||
+ valueID == CSSValueDecimalLeadingZero ||
+ valueID == CSSValueArabicIndic || valueID == CSSValueBengali ||
+ valueID == CSSValueCambodian || valueID == CSSValueKhmer ||
+ valueID == CSSValueDevanagari || valueID == CSSValueGujarati ||
+ valueID == CSSValueGurmukhi || valueID == CSSValueKannada ||
+ valueID == CSSValueLao || valueID == CSSValueMalayalam ||
+ valueID == CSSValueMongolian || valueID == CSSValueMyanmar ||
+ valueID == CSSValueOriya || valueID == CSSValuePersian ||
+ valueID == CSSValueUrdu || valueID == CSSValueTelugu ||
+ valueID == CSSValueTibetan || valueID == CSSValueThai ||
+ valueID == CSSValueLowerRoman || valueID == CSSValueUpperRoman ||
+ valueID == CSSValueLowerGreek || valueID == CSSValueLowerAlpha ||
+ valueID == CSSValueLowerLatin || valueID == CSSValueUpperAlpha ||
+ valueID == CSSValueUpperLatin ||
+ valueID == CSSValueCjkEarthlyBranch ||
+ valueID == CSSValueCjkHeavenlyStem ||
+ valueID == CSSValueEthiopicHalehame ||
+ valueID == CSSValueEthiopicHalehameAm ||
+ valueID == CSSValueEthiopicHalehameTiEr ||
+ valueID == CSSValueEthiopicHalehameTiEt ||
+ valueID == CSSValueHangul || valueID == CSSValueHangulConsonant ||
+ valueID == CSSValueKoreanHangulFormal ||
+ valueID == CSSValueKoreanHanjaFormal ||
+ valueID == CSSValueKoreanHanjaInformal ||
+ valueID == CSSValueHebrew || valueID == CSSValueArmenian ||
+ valueID == CSSValueLowerArmenian ||
+ valueID == CSSValueUpperArmenian || valueID == CSSValueGeorgian ||
+ valueID == CSSValueCjkIdeographic ||
+ valueID == CSSValueSimpChineseFormal ||
+ valueID == CSSValueSimpChineseInformal ||
+ valueID == CSSValueTradChineseFormal ||
+ valueID == CSSValueTradChineseInformal ||
+ valueID == CSSValueHiragana || valueID == CSSValueKatakana ||
+ valueID == CSSValueHiraganaIroha ||
+ valueID == CSSValueKatakanaIroha || valueID == CSSValueNone;
case CSSPropertyMaskType:
return valueID == CSSValueLuminance || valueID == CSSValueAlpha;
case CSSPropertyObjectFit:
@@ -584,7 +644,10 @@ bool CSSParserFastPaths::isValidKeywordPropertyAndValue(
valueID == CSSValueScaleDown;
case CSSPropertyOutlineStyle:
return valueID == CSSValueAuto || valueID == CSSValueNone ||
- (valueID >= CSSValueInset && valueID <= CSSValueDouble);
+ valueID == CSSValueInset || valueID == CSSValueGroove ||
+ valueID == CSSValueOutset || valueID == CSSValueRidge ||
+ valueID == CSSValueDotted || valueID == CSSValueDashed ||
+ valueID == CSSValueSolid || valueID == CSSValueDouble;
case CSSPropertyOverflowAnchor:
return valueID == CSSValueVisible || valueID == CSSValueNone ||
valueID == CSSValueAuto;
@@ -613,8 +676,11 @@ bool CSSParserFastPaths::isValidKeywordPropertyAndValue(
case CSSPropertyPointerEvents:
return valueID == CSSValueVisible || valueID == CSSValueNone ||
valueID == CSSValueAll || valueID == CSSValueAuto ||
- (valueID >= CSSValueVisiblePainted &&
- valueID <= CSSValueBoundingBox);
+ valueID == CSSValueVisiblePainted ||
+ valueID == CSSValueVisibleFill ||
+ valueID == CSSValueVisibleStroke || valueID == CSSValuePainted ||
+ valueID == CSSValueFill || valueID == CSSValueStroke ||
+ valueID == CSSValueBoundingBox;
case CSSPropertyPosition:
return valueID == CSSValueStatic || valueID == CSSValueRelative ||
valueID == CSSValueAbsolute || valueID == CSSValueFixed ||
@@ -645,11 +711,17 @@ bool CSSParserFastPaths::isValidKeywordPropertyAndValue(
case CSSPropertyTableLayout:
return valueID == CSSValueAuto || valueID == CSSValueFixed;
case CSSPropertyTextAlign:
- return (valueID >= CSSValueWebkitAuto &&
- valueID <= CSSValueInternalCenter) ||
- valueID == CSSValueStart || valueID == CSSValueEnd;
+ return valueID == CSSValueWebkitAuto || valueID == CSSValueLeft ||
+ valueID == CSSValueRight || valueID == CSSValueCenter ||
+ valueID == CSSValueJustify || valueID == CSSValueWebkitLeft ||
+ valueID == CSSValueWebkitRight ||
+ valueID == CSSValueWebkitCenter ||
+ valueID == CSSValueWebkitMatchParent ||
+ valueID == CSSValueInternalCenter || valueID == CSSValueStart ||
+ valueID == CSSValueEnd;
case CSSPropertyTextAlignLast:
- return (valueID >= CSSValueLeft && valueID <= CSSValueJustify) ||
+ return valueID == CSSValueLeft || valueID == CSSValueRight ||
+ valueID == CSSValueCenter || valueID == CSSValueJustify ||
valueID == CSSValueStart || valueID == CSSValueEnd ||
valueID == CSSValueAuto;
case CSSPropertyTextAnchor:
@@ -679,8 +751,8 @@ bool CSSParserFastPaths::isValidKeywordPropertyAndValue(
valueID == CSSValueOptimizeLegibility ||
valueID == CSSValueGeometricPrecision;
case CSSPropertyTextTransform: // capitalize | uppercase | lowercase | none
- return (valueID >= CSSValueCapitalize && valueID <= CSSValueLowercase) ||
- valueID == CSSValueNone;
+ return valueID == CSSValueCapitalize || valueID == CSSValueUppercase ||
+ valueID == CSSValueLowercase || valueID == CSSValueNone;
case CSSPropertyUnicodeBidi:
return valueID == CSSValueNormal || valueID == CSSValueEmbed ||
valueID == CSSValueBidiOverride ||
@@ -694,9 +766,49 @@ bool CSSParserFastPaths::isValidKeywordPropertyAndValue(
return valueID == CSSValueVisible || valueID == CSSValueHidden ||
valueID == CSSValueCollapse;
case CSSPropertyWebkitAppRegion:
- return valueID >= CSSValueDrag && valueID <= CSSValueNoDrag;
+ return valueID == CSSValueDrag || valueID == CSSValueNoDrag;
case CSSPropertyWebkitAppearance:
- return (valueID >= CSSValueCheckbox && valueID <= CSSValueTextarea) ||
+ return valueID == CSSValueCheckbox || valueID == CSSValueRadio ||
+ valueID == CSSValuePushButton || valueID == CSSValueSquareButton ||
+ valueID == CSSValueButton || valueID == CSSValueButtonBevel ||
+ valueID == CSSValueInnerSpinButton || valueID == CSSValueListbox ||
+ valueID == CSSValueListitem ||
+ valueID == CSSValueMediaEnterFullscreenButton ||
+ valueID == CSSValueMediaExitFullscreenButton ||
+ valueID == CSSValueMediaFullscreenVolumeSlider ||
+ valueID == CSSValueMediaFullscreenVolumeSliderThumb ||
+ valueID == CSSValueMediaMuteButton ||
+ valueID == CSSValueMediaPlayButton ||
+ valueID == CSSValueMediaOverlayPlayButton ||
+ valueID == CSSValueMediaToggleClosedCaptionsButton ||
+ valueID == CSSValueMediaSlider ||
+ valueID == CSSValueMediaSliderthumb ||
+ valueID == CSSValueMediaVolumeSliderContainer ||
+ valueID == CSSValueMediaVolumeSlider ||
+ valueID == CSSValueMediaVolumeSliderthumb ||
+ valueID == CSSValueMediaControlsBackground ||
+ valueID == CSSValueMediaControlsFullscreenBackground ||
+ valueID == CSSValueMediaCurrentTimeDisplay ||
+ valueID == CSSValueMediaTimeRemainingDisplay ||
+ valueID == CSSValueInternalMediaCastOffButton ||
+ valueID == CSSValueInternalMediaOverlayCastOffButton ||
+ valueID == CSSValueInternalMediaTrackSelectionCheckmark ||
+ valueID == CSSValueInternalMediaClosedCaptionsIcon ||
+ valueID == CSSValueInternalMediaSubtitlesIcon ||
+ valueID == CSSValueInternalMediaOverflowButton ||
+ valueID == CSSValueInternalMediaDownloadButton ||
+ valueID == CSSValueMenulist || valueID == CSSValueMenulistButton ||
+ valueID == CSSValueMenulistText ||
+ valueID == CSSValueMenulistTextfield || valueID == CSSValueMeter ||
+ valueID == CSSValueProgressBar ||
+ valueID == CSSValueProgressBarValue ||
+ valueID == CSSValueSliderHorizontal ||
+ valueID == CSSValueSliderVertical ||
+ valueID == CSSValueSliderthumbHorizontal ||
+ valueID == CSSValueSliderthumbVertical ||
+ valueID == CSSValueCaret || valueID == CSSValueSearchfield ||
+ valueID == CSSValueSearchfieldCancelButton ||
+ valueID == CSSValueTextfield || valueID == CSSValueTextarea ||
valueID == CSSValueNone;
case CSSPropertyBackfaceVisibility:
return valueID == CSSValueVisible || valueID == CSSValueHidden;
@@ -808,7 +920,8 @@ bool CSSParserFastPaths::isValidKeywordPropertyAndValue(
return valueID == CSSValueAuto || valueID == CSSValueNone ||
valueID == CSSValueText || valueID == CSSValueAll;
case CSSPropertyWebkitWritingMode:
- return valueID >= CSSValueHorizontalTb && valueID <= CSSValueVerticalLr;
+ return valueID == CSSValueHorizontalTb || valueID == CSSValueVerticalRl ||
+ valueID == CSSValueVerticalLr;
case CSSPropertyWritingMode:
return valueID == CSSValueHorizontalTb || valueID == CSSValueVerticalRl ||
valueID == CSSValueVerticalLr || valueID == CSSValueLrTb ||
« no previous file with comments | « third_party/WebKit/Source/core/css/StyleColor.cpp ('k') | third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698