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 || |