OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "config.h" | 5 #include "config.h" |
6 #include "core/css/parser/CSSParserFastPaths.h" | 6 #include "core/css/parser/CSSParserFastPaths.h" |
7 | 7 |
8 #include "core/StylePropertyShorthand.h" | 8 #include "core/StylePropertyShorthand.h" |
9 #include "core/css/CSSFunctionValue.h" | 9 #include "core/css/CSSFunctionValue.h" |
10 #include "core/css/CSSValuePool.h" | 10 #include "core/css/CSSValuePool.h" |
(...skipping 444 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
455 return nullptr; | 455 return nullptr; |
456 return cssValuePool().createColorValue(namedColor.rgb()); | 456 return cssValuePool().createColorValue(namedColor.rgb()); |
457 } | 457 } |
458 | 458 |
459 bool CSSParserFastPaths::isValidKeywordPropertyAndValue(CSSPropertyID propertyId
, CSSValueID valueID) | 459 bool CSSParserFastPaths::isValidKeywordPropertyAndValue(CSSPropertyID propertyId
, CSSValueID valueID) |
460 { | 460 { |
461 if (valueID == CSSValueInvalid) | 461 if (valueID == CSSValueInvalid) |
462 return false; | 462 return false; |
463 | 463 |
464 switch (propertyId) { | 464 switch (propertyId) { |
| 465 case CSSPropertyAlignmentBaseline: |
| 466 // auto | baseline | before-edge | text-before-edge | middle | |
| 467 // central | after-edge | text-after-edge | ideographic | alphabetic | |
| 468 // hanging | mathematical |
| 469 return valueID == CSSValueAuto || valueID == CSSValueBaseline || valueID
== CSSValueMiddle |
| 470 || (valueID >= CSSValueBeforeEdge && valueID <= CSSValueMathematical
); |
465 case CSSPropertyAll: | 471 case CSSPropertyAll: |
466 return false; // Only accepts css-wide keywords | 472 return false; // Only accepts css-wide keywords |
467 case CSSPropertyBackgroundRepeatX: // repeat | no-repeat | 473 case CSSPropertyBackgroundRepeatX: // repeat | no-repeat |
468 case CSSPropertyBackgroundRepeatY: // repeat | no-repeat | 474 case CSSPropertyBackgroundRepeatY: // repeat | no-repeat |
469 return valueID == CSSValueRepeat || valueID == CSSValueNoRepeat; | 475 return valueID == CSSValueRepeat || valueID == CSSValueNoRepeat; |
470 case CSSPropertyBorderCollapse: // collapse | separate | 476 case CSSPropertyBorderCollapse: // collapse | separate |
471 return valueID == CSSValueCollapse || valueID == CSSValueSeparate; | 477 return valueID == CSSValueCollapse || valueID == CSSValueSeparate; |
472 case CSSPropertyBorderTopStyle: // <border-style> | 478 case CSSPropertyBorderTopStyle: // <border-style> |
473 case CSSPropertyBorderRightStyle: // Defined as: none | hidden | dotted | da
shed | | 479 case CSSPropertyBorderRightStyle: // Defined as: none | hidden | dotted | da
shed | |
474 case CSSPropertyBorderBottomStyle: // solid | double | groove | ridge | inse
t | outset | 480 case CSSPropertyBorderBottomStyle: // solid | double | groove | ridge | inse
t | outset |
475 case CSSPropertyBorderLeftStyle: | 481 case CSSPropertyBorderLeftStyle: |
476 case CSSPropertyWebkitBorderAfterStyle: | 482 case CSSPropertyWebkitBorderAfterStyle: |
477 case CSSPropertyWebkitBorderBeforeStyle: | 483 case CSSPropertyWebkitBorderBeforeStyle: |
478 case CSSPropertyWebkitBorderEndStyle: | 484 case CSSPropertyWebkitBorderEndStyle: |
479 case CSSPropertyWebkitBorderStartStyle: | 485 case CSSPropertyWebkitBorderStartStyle: |
480 case CSSPropertyWebkitColumnRuleStyle: | 486 case CSSPropertyWebkitColumnRuleStyle: |
481 return valueID >= CSSValueNone && valueID <= CSSValueDouble; | 487 return valueID >= CSSValueNone && valueID <= CSSValueDouble; |
482 case CSSPropertyBoxSizing: | 488 case CSSPropertyBoxSizing: |
483 return valueID == CSSValueBorderBox || valueID == CSSValueContentBox; | 489 return valueID == CSSValueBorderBox || valueID == CSSValueContentBox; |
| 490 case CSSPropertyBufferedRendering: |
| 491 return valueID == CSSValueAuto || valueID == CSSValueDynamic || valueID
== CSSValueStatic; |
484 case CSSPropertyCaptionSide: // top | bottom | left | right | 492 case CSSPropertyCaptionSide: // top | bottom | left | right |
485 return valueID == CSSValueLeft || valueID == CSSValueRight || valueID ==
CSSValueTop || valueID == CSSValueBottom; | 493 return valueID == CSSValueLeft || valueID == CSSValueRight || valueID ==
CSSValueTop || valueID == CSSValueBottom; |
486 case CSSPropertyClear: // none | left | right | both | 494 case CSSPropertyClear: // none | left | right | both |
487 return valueID == CSSValueNone || valueID == CSSValueLeft || valueID ==
CSSValueRight || valueID == CSSValueBoth; | 495 return valueID == CSSValueNone || valueID == CSSValueLeft || valueID ==
CSSValueRight || valueID == CSSValueBoth; |
| 496 case CSSPropertyClipRule: |
| 497 case CSSPropertyFillRule: |
| 498 return valueID == CSSValueNonzero || valueID == CSSValueEvenodd; |
| 499 case CSSPropertyColorInterpolation: |
| 500 case CSSPropertyColorInterpolationFilters: |
| 501 return valueID == CSSValueAuto || valueID == CSSValueSRGB || valueID ==
CSSValueLinearRGB; |
| 502 case CSSPropertyColorRendering: |
| 503 return valueID == CSSValueAuto || valueID == CSSValueOptimizeSpeed || va
lueID == CSSValueOptimizeQuality; |
488 case CSSPropertyDirection: // ltr | rtl | 504 case CSSPropertyDirection: // ltr | rtl |
489 return valueID == CSSValueLtr || valueID == CSSValueRtl; | 505 return valueID == CSSValueLtr || valueID == CSSValueRtl; |
490 case CSSPropertyDisplay: | 506 case CSSPropertyDisplay: |
491 // inline | block | list-item | inline-block | table | | 507 // inline | block | list-item | inline-block | table | |
492 // inline-table | table-row-group | table-header-group | table-footer-gr
oup | table-row | | 508 // inline-table | table-row-group | table-header-group | table-footer-gr
oup | table-row | |
493 // table-column-group | table-column | table-cell | table-caption | -web
kit-box | -webkit-inline-box | none | 509 // table-column-group | table-column | table-cell | table-caption | -web
kit-box | -webkit-inline-box | none |
494 // flex | inline-flex | -webkit-flex | -webkit-inline-flex | grid | inli
ne-grid | 510 // flex | inline-flex | -webkit-flex | -webkit-inline-flex | grid | inli
ne-grid |
495 return (valueID >= CSSValueInline && valueID <= CSSValueInlineFlex) || v
alueID == CSSValueWebkitFlex || valueID == CSSValueWebkitInlineFlex || valueID =
= CSSValueNone | 511 return (valueID >= CSSValueInline && valueID <= CSSValueInlineFlex) || v
alueID == CSSValueWebkitFlex || valueID == CSSValueWebkitInlineFlex || valueID =
= CSSValueNone |
496 || (RuntimeEnabledFeatures::cssGridLayoutEnabled() && (valueID == CS
SValueGrid || valueID == CSSValueInlineGrid)); | 512 || (RuntimeEnabledFeatures::cssGridLayoutEnabled() && (valueID == CS
SValueGrid || valueID == CSSValueInlineGrid)); |
| 513 case CSSPropertyDominantBaseline: |
| 514 // auto | use-script | no-change | reset-size | ideographic | |
| 515 // alphabetic | hanging | mathematical | central | middle | |
| 516 // text-after-edge | text-before-edge |
| 517 return valueID == CSSValueAuto || valueID == CSSValueMiddle |
| 518 || (valueID >= CSSValueUseScript && valueID <= CSSValueResetSize) |
| 519 || (valueID >= CSSValueCentral && valueID <= CSSValueMathematical); |
497 case CSSPropertyEmptyCells: // show | hide | 520 case CSSPropertyEmptyCells: // show | hide |
498 return valueID == CSSValueShow || valueID == CSSValueHide; | 521 return valueID == CSSValueShow || valueID == CSSValueHide; |
499 case CSSPropertyFloat: // left | right | none | 522 case CSSPropertyFloat: // left | right | none |
500 return valueID == CSSValueLeft || valueID == CSSValueRight || valueID ==
CSSValueNone; | 523 return valueID == CSSValueLeft || valueID == CSSValueRight || valueID ==
CSSValueNone; |
501 case CSSPropertyFontStyle: // normal | italic | oblique | 524 case CSSPropertyFontStyle: // normal | italic | oblique |
502 return valueID == CSSValueNormal || valueID == CSSValueItalic || valueID
== CSSValueOblique; | 525 return valueID == CSSValueNormal || valueID == CSSValueItalic || valueID
== CSSValueOblique; |
503 case CSSPropertyFontStretch: // normal | ultra-condensed | extra-condensed |
condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-
expanded | 526 case CSSPropertyFontStretch: // normal | ultra-condensed | extra-condensed |
condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-
expanded |
504 return valueID == CSSValueNormal || (valueID >= CSSValueUltraCondensed &
& valueID <= CSSValueUltraExpanded); | 527 return valueID == CSSValueNormal || (valueID >= CSSValueUltraCondensed &
& valueID <= CSSValueUltraExpanded); |
505 case CSSPropertyImageRendering: // auto | optimizeContrast | pixelated | 528 case CSSPropertyImageRendering: // auto | optimizeContrast | pixelated |
506 return valueID == CSSValueAuto || valueID == CSSValueWebkitOptimizeContr
ast || (RuntimeEnabledFeatures::imageRenderingPixelatedEnabled() && valueID == C
SSValuePixelated); | 529 return valueID == CSSValueAuto || valueID == CSSValueWebkitOptimizeContr
ast || (RuntimeEnabledFeatures::imageRenderingPixelatedEnabled() && valueID == C
SSValuePixelated); |
507 case CSSPropertyIsolation: // auto | isolate | 530 case CSSPropertyIsolation: // auto | isolate |
508 ASSERT(RuntimeEnabledFeatures::cssCompositingEnabled()); | 531 ASSERT(RuntimeEnabledFeatures::cssCompositingEnabled()); |
509 return valueID == CSSValueAuto || valueID == CSSValueIsolate; | 532 return valueID == CSSValueAuto || valueID == CSSValueIsolate; |
510 case CSSPropertyListStylePosition: // inside | outside | 533 case CSSPropertyListStylePosition: // inside | outside |
511 return valueID == CSSValueInside || valueID == CSSValueOutside; | 534 return valueID == CSSValueInside || valueID == CSSValueOutside; |
512 case CSSPropertyListStyleType: | 535 case CSSPropertyListStyleType: |
513 // See section CSS_PROP_LIST_STYLE_TYPE of file CSSValueKeywords.in | 536 // See section CSS_PROP_LIST_STYLE_TYPE of file CSSValueKeywords.in |
514 // for the list of supported list-style-types. | 537 // for the list of supported list-style-types. |
515 return (valueID >= CSSValueDisc && valueID <= CSSValueKatakanaIroha) ||
valueID == CSSValueNone; | 538 return (valueID >= CSSValueDisc && valueID <= CSSValueKatakanaIroha) ||
valueID == CSSValueNone; |
| 539 case CSSPropertyMaskType: |
| 540 return valueID == CSSValueLuminance || valueID == CSSValueAlpha; |
516 case CSSPropertyObjectFit: | 541 case CSSPropertyObjectFit: |
517 return valueID == CSSValueFill || valueID == CSSValueContain || valueID
== CSSValueCover || valueID == CSSValueNone || valueID == CSSValueScaleDown; | 542 return valueID == CSSValueFill || valueID == CSSValueContain || valueID
== CSSValueCover || valueID == CSSValueNone || valueID == CSSValueScaleDown; |
518 case CSSPropertyOutlineStyle: // (<border-style> except hidden) | auto | 543 case CSSPropertyOutlineStyle: // (<border-style> except hidden) | auto |
519 return valueID == CSSValueAuto || valueID == CSSValueNone || (valueID >=
CSSValueInset && valueID <= CSSValueDouble); | 544 return valueID == CSSValueAuto || valueID == CSSValueNone || (valueID >=
CSSValueInset && valueID <= CSSValueDouble); |
520 case CSSPropertyOverflowWrap: // normal | break-word | 545 case CSSPropertyOverflowWrap: // normal | break-word |
521 case CSSPropertyWordWrap: | 546 case CSSPropertyWordWrap: |
522 return valueID == CSSValueNormal || valueID == CSSValueBreakWord; | 547 return valueID == CSSValueNormal || valueID == CSSValueBreakWord; |
523 case CSSPropertyOverflowX: // visible | hidden | scroll | auto | overlay | 548 case CSSPropertyOverflowX: // visible | hidden | scroll | auto | overlay |
524 return valueID == CSSValueVisible || valueID == CSSValueHidden || valueI
D == CSSValueScroll || valueID == CSSValueAuto || valueID == CSSValueOverlay; | 549 return valueID == CSSValueVisible || valueID == CSSValueHidden || valueI
D == CSSValueScroll || valueID == CSSValueAuto || valueID == CSSValueOverlay; |
525 case CSSPropertyOverflowY: // visible | hidden | scroll | auto | overlay | -
webkit-paged-x | -webkit-paged-y | 550 case CSSPropertyOverflowY: // visible | hidden | scroll | auto | overlay | -
webkit-paged-x | -webkit-paged-y |
(...skipping 10 matching lines...) Expand all Loading... |
536 // none | visiblePainted | visibleFill | visibleStroke | visible | | 561 // none | visiblePainted | visibleFill | visibleStroke | visible | |
537 // painted | fill | stroke | auto | all | bounding-box | 562 // painted | fill | stroke | auto | all | bounding-box |
538 return valueID == CSSValueVisible || valueID == CSSValueNone || valueID
== CSSValueAll || valueID == CSSValueAuto || (valueID >= CSSValueVisiblePainted
&& valueID <= CSSValueBoundingBox); | 563 return valueID == CSSValueVisible || valueID == CSSValueNone || valueID
== CSSValueAll || valueID == CSSValueAuto || (valueID >= CSSValueVisiblePainted
&& valueID <= CSSValueBoundingBox); |
539 case CSSPropertyPosition: // static | relative | absolute | fixed | 564 case CSSPropertyPosition: // static | relative | absolute | fixed |
540 return valueID == CSSValueStatic || valueID == CSSValueRelative || value
ID == CSSValueAbsolute || valueID == CSSValueFixed; | 565 return valueID == CSSValueStatic || valueID == CSSValueRelative || value
ID == CSSValueAbsolute || valueID == CSSValueFixed; |
541 case CSSPropertyResize: // none | both | horizontal | vertical | auto | 566 case CSSPropertyResize: // none | both | horizontal | vertical | auto |
542 return valueID == CSSValueNone || valueID == CSSValueBoth || valueID ==
CSSValueHorizontal || valueID == CSSValueVertical || valueID == CSSValueAuto; | 567 return valueID == CSSValueNone || valueID == CSSValueBoth || valueID ==
CSSValueHorizontal || valueID == CSSValueVertical || valueID == CSSValueAuto; |
543 case CSSPropertyScrollBehavior: // auto | smooth | 568 case CSSPropertyScrollBehavior: // auto | smooth |
544 ASSERT(RuntimeEnabledFeatures::cssomSmoothScrollEnabled()); | 569 ASSERT(RuntimeEnabledFeatures::cssomSmoothScrollEnabled()); |
545 return valueID == CSSValueAuto || valueID == CSSValueSmooth; | 570 return valueID == CSSValueAuto || valueID == CSSValueSmooth; |
| 571 case CSSPropertyShapeRendering: |
| 572 return valueID == CSSValueAuto || valueID == CSSValueOptimizeSpeed || va
lueID == CSSValueCrispEdges || valueID == CSSValueGeometricPrecision; |
546 case CSSPropertySpeak: // none | normal | spell-out | digits | literal-punct
uation | no-punctuation | 573 case CSSPropertySpeak: // none | normal | spell-out | digits | literal-punct
uation | no-punctuation |
547 return valueID == CSSValueNone || valueID == CSSValueNormal || valueID =
= CSSValueSpellOut || valueID == CSSValueDigits || valueID == CSSValueLiteralPun
ctuation || valueID == CSSValueNoPunctuation; | 574 return valueID == CSSValueNone || valueID == CSSValueNormal || valueID =
= CSSValueSpellOut || valueID == CSSValueDigits || valueID == CSSValueLiteralPun
ctuation || valueID == CSSValueNoPunctuation; |
| 575 case CSSPropertyStrokeLinejoin: |
| 576 return valueID == CSSValueMiter || valueID == CSSValueRound || valueID =
= CSSValueBevel; |
| 577 case CSSPropertyStrokeLinecap: |
| 578 return valueID == CSSValueButt || valueID == CSSValueRound || valueID ==
CSSValueSquare; |
548 case CSSPropertyTableLayout: // auto | fixed | 579 case CSSPropertyTableLayout: // auto | fixed |
549 return valueID == CSSValueAuto || valueID == CSSValueFixed; | 580 return valueID == CSSValueAuto || valueID == CSSValueFixed; |
550 case CSSPropertyTextAlignLast: | 581 case CSSPropertyTextAlignLast: |
551 // auto | start | end | left | right | center | justify | 582 // auto | start | end | left | right | center | justify |
552 ASSERT(RuntimeEnabledFeatures::css3TextEnabled()); | 583 ASSERT(RuntimeEnabledFeatures::css3TextEnabled()); |
553 return (valueID >= CSSValueLeft && valueID <= CSSValueJustify) || valueI
D == CSSValueStart || valueID == CSSValueEnd || valueID == CSSValueAuto; | 584 return (valueID >= CSSValueLeft && valueID <= CSSValueJustify) || valueI
D == CSSValueStart || valueID == CSSValueEnd || valueID == CSSValueAuto; |
| 585 case CSSPropertyTextAnchor: |
| 586 return valueID == CSSValueStart || valueID == CSSValueMiddle || valueID
== CSSValueEnd; |
554 case CSSPropertyTextDecorationStyle: | 587 case CSSPropertyTextDecorationStyle: |
555 // solid | double | dotted | dashed | wavy | 588 // solid | double | dotted | dashed | wavy |
556 ASSERT(RuntimeEnabledFeatures::css3TextDecorationsEnabled()); | 589 ASSERT(RuntimeEnabledFeatures::css3TextDecorationsEnabled()); |
557 return valueID == CSSValueSolid || valueID == CSSValueDouble || valueID
== CSSValueDotted || valueID == CSSValueDashed || valueID == CSSValueWavy; | 590 return valueID == CSSValueSolid || valueID == CSSValueDouble || valueID
== CSSValueDotted || valueID == CSSValueDashed || valueID == CSSValueWavy; |
558 case CSSPropertyTextJustify: | 591 case CSSPropertyTextJustify: |
559 // auto | none | inter-word | distribute | 592 // auto | none | inter-word | distribute |
560 ASSERT(RuntimeEnabledFeatures::css3TextEnabled()); | 593 ASSERT(RuntimeEnabledFeatures::css3TextEnabled()); |
561 return valueID == CSSValueInterWord || valueID == CSSValueDistribute ||
valueID == CSSValueAuto || valueID == CSSValueNone; | 594 return valueID == CSSValueInterWord || valueID == CSSValueDistribute ||
valueID == CSSValueAuto || valueID == CSSValueNone; |
562 case CSSPropertyTextOverflow: // clip | ellipsis | 595 case CSSPropertyTextOverflow: // clip | ellipsis |
563 return valueID == CSSValueClip || valueID == CSSValueEllipsis; | 596 return valueID == CSSValueClip || valueID == CSSValueEllipsis; |
564 case CSSPropertyTextRendering: // auto | optimizeSpeed | optimizeLegibility
| geometricPrecision | 597 case CSSPropertyTextRendering: // auto | optimizeSpeed | optimizeLegibility
| geometricPrecision |
565 return valueID == CSSValueAuto || valueID == CSSValueOptimizeSpeed || va
lueID == CSSValueOptimizeLegibility || valueID == CSSValueGeometricPrecision; | 598 return valueID == CSSValueAuto || valueID == CSSValueOptimizeSpeed || va
lueID == CSSValueOptimizeLegibility || valueID == CSSValueGeometricPrecision; |
566 case CSSPropertyTextTransform: // capitalize | uppercase | lowercase | none | 599 case CSSPropertyTextTransform: // capitalize | uppercase | lowercase | none |
567 return (valueID >= CSSValueCapitalize && valueID <= CSSValueLowercase) |
| valueID == CSSValueNone; | 600 return (valueID >= CSSValueCapitalize && valueID <= CSSValueLowercase) |
| valueID == CSSValueNone; |
568 case CSSPropertyUnicodeBidi: | 601 case CSSPropertyUnicodeBidi: |
569 return valueID == CSSValueNormal || valueID == CSSValueEmbed | 602 return valueID == CSSValueNormal || valueID == CSSValueEmbed |
570 || valueID == CSSValueBidiOverride || valueID == CSSValueWebkitIsola
te | 603 || valueID == CSSValueBidiOverride || valueID == CSSValueWebkitIsola
te |
571 || valueID == CSSValueWebkitIsolateOverride || valueID == CSSValueWe
bkitPlaintext; | 604 || valueID == CSSValueWebkitIsolateOverride || valueID == CSSValueWe
bkitPlaintext; |
| 605 case CSSPropertyVectorEffect: |
| 606 return valueID == CSSValueNone || valueID == CSSValueNonScalingStroke; |
572 case CSSPropertyVisibility: // visible | hidden | collapse | 607 case CSSPropertyVisibility: // visible | hidden | collapse |
573 return valueID == CSSValueVisible || valueID == CSSValueHidden || valueI
D == CSSValueCollapse; | 608 return valueID == CSSValueVisible || valueID == CSSValueHidden || valueI
D == CSSValueCollapse; |
574 case CSSPropertyWebkitAppearance: | 609 case CSSPropertyWebkitAppearance: |
575 return (valueID >= CSSValueCheckbox && valueID <= CSSValueTextarea) || v
alueID == CSSValueNone; | 610 return (valueID >= CSSValueCheckbox && valueID <= CSSValueTextarea) || v
alueID == CSSValueNone; |
576 case CSSPropertyBackfaceVisibility: | 611 case CSSPropertyBackfaceVisibility: |
577 return valueID == CSSValueVisible || valueID == CSSValueHidden; | 612 return valueID == CSSValueVisible || valueID == CSSValueHidden; |
578 case CSSPropertyMixBlendMode: | 613 case CSSPropertyMixBlendMode: |
579 ASSERT(RuntimeEnabledFeatures::cssCompositingEnabled()); | 614 ASSERT(RuntimeEnabledFeatures::cssCompositingEnabled()); |
580 return valueID == CSSValueNormal || valueID == CSSValueMultiply || value
ID == CSSValueScreen || valueID == CSSValueOverlay | 615 return valueID == CSSValueNormal || valueID == CSSValueMultiply || value
ID == CSSValueScreen || valueID == CSSValueOverlay |
581 || valueID == CSSValueDarken || valueID == CSSValueLighten || valueI
D == CSSValueColorDodge || valueID == CSSValueColorBurn | 616 || valueID == CSSValueDarken || valueID == CSSValueLighten || valueI
D == CSSValueColorDodge || valueID == CSSValueColorBurn |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
632 case CSSPropertyTransformStyle: | 667 case CSSPropertyTransformStyle: |
633 return valueID == CSSValueFlat || valueID == CSSValuePreserve3d; | 668 return valueID == CSSValueFlat || valueID == CSSValuePreserve3d; |
634 case CSSPropertyWebkitUserDrag: // auto | none | element | 669 case CSSPropertyWebkitUserDrag: // auto | none | element |
635 return valueID == CSSValueAuto || valueID == CSSValueNone || valueID ==
CSSValueElement; | 670 return valueID == CSSValueAuto || valueID == CSSValueNone || valueID ==
CSSValueElement; |
636 case CSSPropertyWebkitUserModify: // read-only | read-write | 671 case CSSPropertyWebkitUserModify: // read-only | read-write |
637 return valueID == CSSValueReadOnly || valueID == CSSValueReadWrite || va
lueID == CSSValueReadWritePlaintextOnly; | 672 return valueID == CSSValueReadOnly || valueID == CSSValueReadWrite || va
lueID == CSSValueReadWritePlaintextOnly; |
638 case CSSPropertyWebkitUserSelect: // auto | none | text | all | 673 case CSSPropertyWebkitUserSelect: // auto | none | text | all |
639 return valueID == CSSValueAuto || valueID == CSSValueNone || valueID ==
CSSValueText || valueID == CSSValueAll; | 674 return valueID == CSSValueAuto || valueID == CSSValueNone || valueID ==
CSSValueText || valueID == CSSValueAll; |
640 case CSSPropertyWebkitWritingMode: | 675 case CSSPropertyWebkitWritingMode: |
641 return valueID >= CSSValueHorizontalTb && valueID <= CSSValueHorizontalB
t; | 676 return valueID >= CSSValueHorizontalTb && valueID <= CSSValueHorizontalB
t; |
| 677 case CSSPropertyWritingMode: |
| 678 return valueID == CSSValueLrTb || valueID == CSSValueRlTb || valueID ==
CSSValueTbRl |
| 679 || valueID == CSSValueLr || valueID == CSSValueRl || valueID == CSSV
alueTb; |
642 case CSSPropertyWhiteSpace: // normal | pre | nowrap | 680 case CSSPropertyWhiteSpace: // normal | pre | nowrap |
643 return valueID == CSSValueNormal || valueID == CSSValuePre || valueID ==
CSSValuePreWrap || valueID == CSSValuePreLine || valueID == CSSValueNowrap; | 681 return valueID == CSSValueNormal || valueID == CSSValuePre || valueID ==
CSSValuePreWrap || valueID == CSSValuePreLine || valueID == CSSValueNowrap; |
644 case CSSPropertyWordBreak: // normal | break-all | keep-all | break-word (th
is is a custom extension) | 682 case CSSPropertyWordBreak: // normal | break-all | keep-all | break-word (th
is is a custom extension) |
645 return valueID == CSSValueNormal || valueID == CSSValueBreakAll || value
ID == CSSValueKeepAll || valueID == CSSValueBreakWord; | 683 return valueID == CSSValueNormal || valueID == CSSValueBreakAll || value
ID == CSSValueKeepAll || valueID == CSSValueBreakWord; |
646 case CSSPropertyScrollSnapType: // none | mandatory | proximity | 684 case CSSPropertyScrollSnapType: // none | mandatory | proximity |
647 ASSERT(RuntimeEnabledFeatures::cssScrollSnapPointsEnabled()); | 685 ASSERT(RuntimeEnabledFeatures::cssScrollSnapPointsEnabled()); |
648 return valueID == CSSValueNone || valueID == CSSValueMandatory || valueI
D == CSSValueProximity; | 686 return valueID == CSSValueNone || valueID == CSSValueMandatory || valueI
D == CSSValueProximity; |
649 default: | 687 default: |
650 ASSERT_NOT_REACHED(); | 688 ASSERT_NOT_REACHED(); |
651 return false; | 689 return false; |
652 } | 690 } |
653 } | 691 } |
654 | 692 |
655 bool CSSParserFastPaths::isKeywordPropertyID(CSSPropertyID propertyId) | 693 bool CSSParserFastPaths::isKeywordPropertyID(CSSPropertyID propertyId) |
656 { | 694 { |
657 switch (propertyId) { | 695 switch (propertyId) { |
| 696 case CSSPropertyAlignmentBaseline: |
658 case CSSPropertyAll: | 697 case CSSPropertyAll: |
659 case CSSPropertyMixBlendMode: | 698 case CSSPropertyMixBlendMode: |
660 case CSSPropertyIsolation: | 699 case CSSPropertyIsolation: |
661 case CSSPropertyBackgroundRepeatX: | 700 case CSSPropertyBackgroundRepeatX: |
662 case CSSPropertyBackgroundRepeatY: | 701 case CSSPropertyBackgroundRepeatY: |
663 case CSSPropertyBorderBottomStyle: | 702 case CSSPropertyBorderBottomStyle: |
664 case CSSPropertyBorderCollapse: | 703 case CSSPropertyBorderCollapse: |
665 case CSSPropertyBorderLeftStyle: | 704 case CSSPropertyBorderLeftStyle: |
666 case CSSPropertyBorderRightStyle: | 705 case CSSPropertyBorderRightStyle: |
667 case CSSPropertyBorderTopStyle: | 706 case CSSPropertyBorderTopStyle: |
668 case CSSPropertyBoxSizing: | 707 case CSSPropertyBoxSizing: |
| 708 case CSSPropertyBufferedRendering: |
669 case CSSPropertyCaptionSide: | 709 case CSSPropertyCaptionSide: |
670 case CSSPropertyClear: | 710 case CSSPropertyClear: |
| 711 case CSSPropertyClipRule: |
| 712 case CSSPropertyColorInterpolation: |
| 713 case CSSPropertyColorInterpolationFilters: |
| 714 case CSSPropertyColorRendering: |
671 case CSSPropertyDirection: | 715 case CSSPropertyDirection: |
672 case CSSPropertyDisplay: | 716 case CSSPropertyDisplay: |
| 717 case CSSPropertyDominantBaseline: |
673 case CSSPropertyEmptyCells: | 718 case CSSPropertyEmptyCells: |
| 719 case CSSPropertyFillRule: |
674 case CSSPropertyFloat: | 720 case CSSPropertyFloat: |
675 case CSSPropertyFontStyle: | 721 case CSSPropertyFontStyle: |
676 case CSSPropertyFontStretch: | 722 case CSSPropertyFontStretch: |
677 case CSSPropertyImageRendering: | 723 case CSSPropertyImageRendering: |
678 case CSSPropertyListStylePosition: | 724 case CSSPropertyListStylePosition: |
679 case CSSPropertyListStyleType: | 725 case CSSPropertyListStyleType: |
| 726 case CSSPropertyMaskType: |
680 case CSSPropertyObjectFit: | 727 case CSSPropertyObjectFit: |
681 case CSSPropertyOutlineStyle: | 728 case CSSPropertyOutlineStyle: |
682 case CSSPropertyOverflowWrap: | 729 case CSSPropertyOverflowWrap: |
683 case CSSPropertyOverflowX: | 730 case CSSPropertyOverflowX: |
684 case CSSPropertyOverflowY: | 731 case CSSPropertyOverflowY: |
685 case CSSPropertyPageBreakAfter: | 732 case CSSPropertyPageBreakAfter: |
686 case CSSPropertyPageBreakBefore: | 733 case CSSPropertyPageBreakBefore: |
687 case CSSPropertyPageBreakInside: | 734 case CSSPropertyPageBreakInside: |
688 case CSSPropertyPointerEvents: | 735 case CSSPropertyPointerEvents: |
689 case CSSPropertyPosition: | 736 case CSSPropertyPosition: |
690 case CSSPropertyResize: | 737 case CSSPropertyResize: |
691 case CSSPropertyScrollBehavior: | 738 case CSSPropertyScrollBehavior: |
| 739 case CSSPropertyShapeRendering: |
692 case CSSPropertySpeak: | 740 case CSSPropertySpeak: |
| 741 case CSSPropertyStrokeLinecap: |
| 742 case CSSPropertyStrokeLinejoin: |
693 case CSSPropertyTableLayout: | 743 case CSSPropertyTableLayout: |
694 case CSSPropertyTextAlignLast: | 744 case CSSPropertyTextAlignLast: |
| 745 case CSSPropertyTextAnchor: |
695 case CSSPropertyTextDecorationStyle: | 746 case CSSPropertyTextDecorationStyle: |
696 case CSSPropertyTextJustify: | 747 case CSSPropertyTextJustify: |
697 case CSSPropertyTextOverflow: | 748 case CSSPropertyTextOverflow: |
698 case CSSPropertyTextRendering: | 749 case CSSPropertyTextRendering: |
699 case CSSPropertyTextTransform: | 750 case CSSPropertyTextTransform: |
700 case CSSPropertyUnicodeBidi: | 751 case CSSPropertyUnicodeBidi: |
| 752 case CSSPropertyVectorEffect: |
701 case CSSPropertyVisibility: | 753 case CSSPropertyVisibility: |
702 case CSSPropertyWebkitAppearance: | 754 case CSSPropertyWebkitAppearance: |
703 case CSSPropertyBackfaceVisibility: | 755 case CSSPropertyBackfaceVisibility: |
704 case CSSPropertyWebkitBorderAfterStyle: | 756 case CSSPropertyWebkitBorderAfterStyle: |
705 case CSSPropertyWebkitBorderBeforeStyle: | 757 case CSSPropertyWebkitBorderBeforeStyle: |
706 case CSSPropertyWebkitBorderEndStyle: | 758 case CSSPropertyWebkitBorderEndStyle: |
707 case CSSPropertyWebkitBorderStartStyle: | 759 case CSSPropertyWebkitBorderStartStyle: |
708 case CSSPropertyWebkitBoxAlign: | 760 case CSSPropertyWebkitBoxAlign: |
709 case CSSPropertyWebkitBoxDecorationBreak: | 761 case CSSPropertyWebkitBoxDecorationBreak: |
710 case CSSPropertyWebkitBoxDirection: | 762 case CSSPropertyWebkitBoxDirection: |
(...skipping 21 matching lines...) Expand all Loading... |
732 case CSSPropertyWebkitTextEmphasisPosition: | 784 case CSSPropertyWebkitTextEmphasisPosition: |
733 case CSSPropertyWebkitTextSecurity: | 785 case CSSPropertyWebkitTextSecurity: |
734 case CSSPropertyTransformStyle: | 786 case CSSPropertyTransformStyle: |
735 case CSSPropertyWebkitUserDrag: | 787 case CSSPropertyWebkitUserDrag: |
736 case CSSPropertyWebkitUserModify: | 788 case CSSPropertyWebkitUserModify: |
737 case CSSPropertyWebkitUserSelect: | 789 case CSSPropertyWebkitUserSelect: |
738 case CSSPropertyWebkitWritingMode: | 790 case CSSPropertyWebkitWritingMode: |
739 case CSSPropertyWhiteSpace: | 791 case CSSPropertyWhiteSpace: |
740 case CSSPropertyWordBreak: | 792 case CSSPropertyWordBreak: |
741 case CSSPropertyWordWrap: | 793 case CSSPropertyWordWrap: |
| 794 case CSSPropertyWritingMode: |
742 case CSSPropertyScrollSnapType: | 795 case CSSPropertyScrollSnapType: |
743 return true; | 796 return true; |
744 case CSSPropertyAlignItems: | 797 case CSSPropertyAlignItems: |
745 case CSSPropertyAlignSelf: | 798 case CSSPropertyAlignSelf: |
746 return !RuntimeEnabledFeatures::cssGridLayoutEnabled(); | 799 return !RuntimeEnabledFeatures::cssGridLayoutEnabled(); |
747 default: | 800 default: |
748 return false; | 801 return false; |
749 } | 802 } |
750 } | 803 } |
751 | 804 |
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
949 if (isColorPropertyID(propertyID)) | 1002 if (isColorPropertyID(propertyID)) |
950 return parseColor(string, isQuirksModeBehavior(parserMode)); | 1003 return parseColor(string, isQuirksModeBehavior(parserMode)); |
951 if (RefPtrWillBeRawPtr<CSSValue> keyword = parseKeywordValue(propertyID, str
ing)) | 1004 if (RefPtrWillBeRawPtr<CSSValue> keyword = parseKeywordValue(propertyID, str
ing)) |
952 return keyword.release(); | 1005 return keyword.release(); |
953 if (RefPtrWillBeRawPtr<CSSValue> transform = parseSimpleTransform(propertyID
, string)) | 1006 if (RefPtrWillBeRawPtr<CSSValue> transform = parseSimpleTransform(propertyID
, string)) |
954 return transform.release(); | 1007 return transform.release(); |
955 return nullptr; | 1008 return nullptr; |
956 } | 1009 } |
957 | 1010 |
958 } // namespace blink | 1011 } // namespace blink |
OLD | NEW |