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