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

Side by Side 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | Source/core/css/parser/CSSPropertyParser.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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
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
OLDNEW
« 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