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 "core/css/parser/CSSParserFastPaths.h" | 5 #include "core/css/parser/CSSParserFastPaths.h" |
6 | 6 |
7 #include "core/StylePropertyShorthand.h" | 7 #include "core/StylePropertyShorthand.h" |
8 #include "core/css/CSSFunctionValue.h" | 8 #include "core/css/CSSFunctionValue.h" |
9 #include "core/css/CSSValuePool.h" | 9 #include "core/css/CSSValuePool.h" |
10 #include "core/css/parser/CSSParserIdioms.h" | 10 #include "core/css/parser/CSSParserIdioms.h" |
(...skipping 510 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
521 // auto | use-script | no-change | reset-size | ideographic | | 521 // auto | use-script | no-change | reset-size | ideographic | |
522 // alphabetic | hanging | mathematical | central | middle | | 522 // alphabetic | hanging | mathematical | central | middle | |
523 // text-after-edge | text-before-edge | 523 // text-after-edge | text-before-edge |
524 return valueID == CSSValueAuto || valueID == CSSValueMiddle | 524 return valueID == CSSValueAuto || valueID == CSSValueMiddle |
525 || (valueID >= CSSValueUseScript && valueID <= CSSValueResetSize) | 525 || (valueID >= CSSValueUseScript && valueID <= CSSValueResetSize) |
526 || (valueID >= CSSValueCentral && valueID <= CSSValueMathematical); | 526 || (valueID >= CSSValueCentral && valueID <= CSSValueMathematical); |
527 case CSSPropertyEmptyCells: // show | hide | 527 case CSSPropertyEmptyCells: // show | hide |
528 return valueID == CSSValueShow || valueID == CSSValueHide; | 528 return valueID == CSSValueShow || valueID == CSSValueHide; |
529 case CSSPropertyFloat: // left | right | none | 529 case CSSPropertyFloat: // left | right | none |
530 return valueID == CSSValueLeft || valueID == CSSValueRight || valueID ==
CSSValueNone; | 530 return valueID == CSSValueLeft || valueID == CSSValueRight || valueID ==
CSSValueNone; |
531 case CSSPropertyFontDisplay: // auto | block | swap | fallback | optional | |
532 return valueID == CSSValueAuto || valueID == CSSValueBlock || valueID ==
CSSValueSwap || valueID == CSSValueFallback || valueID == CSSValueOptional; | |
533 case CSSPropertyFontStyle: // normal | italic | oblique | 531 case CSSPropertyFontStyle: // normal | italic | oblique |
534 return valueID == CSSValueNormal || valueID == CSSValueItalic || valueID
== CSSValueOblique; | 532 return valueID == CSSValueNormal || valueID == CSSValueItalic || valueID
== CSSValueOblique; |
535 case CSSPropertyFontStretch: // normal | ultra-condensed | extra-condensed |
condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-
expanded | 533 case CSSPropertyFontStretch: // normal | ultra-condensed | extra-condensed |
condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-
expanded |
536 return valueID == CSSValueNormal || (valueID >= CSSValueUltraCondensed &
& valueID <= CSSValueUltraExpanded); | 534 return valueID == CSSValueNormal || (valueID >= CSSValueUltraCondensed &
& valueID <= CSSValueUltraExpanded); |
537 case CSSPropertyImageRendering: // auto | optimizeContrast | pixelated | 535 case CSSPropertyImageRendering: // auto | optimizeContrast | pixelated |
538 return valueID == CSSValueAuto || valueID == CSSValueWebkitOptimizeContr
ast || (RuntimeEnabledFeatures::imageRenderingPixelatedEnabled() && valueID == C
SSValuePixelated); | 536 return valueID == CSSValueAuto || valueID == CSSValueWebkitOptimizeContr
ast || (RuntimeEnabledFeatures::imageRenderingPixelatedEnabled() && valueID == C
SSValuePixelated); |
539 case CSSPropertyIsolation: // auto | isolate | 537 case CSSPropertyIsolation: // auto | isolate |
540 return valueID == CSSValueAuto || valueID == CSSValueIsolate; | 538 return valueID == CSSValueAuto || valueID == CSSValueIsolate; |
541 case CSSPropertyListStylePosition: // inside | outside | 539 case CSSPropertyListStylePosition: // inside | outside |
542 return valueID == CSSValueInside || valueID == CSSValueOutside; | 540 return valueID == CSSValueInside || valueID == CSSValueOutside; |
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
836 | 834 |
837 if (!CSSParserFastPaths::isKeywordPropertyID(propertyId)) { | 835 if (!CSSParserFastPaths::isKeywordPropertyID(propertyId)) { |
838 // All properties accept the values of "initial" and "inherit". | 836 // All properties accept the values of "initial" and "inherit". |
839 String lowerCaseString = string.lower(); | 837 String lowerCaseString = string.lower(); |
840 if (lowerCaseString != "initial" && lowerCaseString != "inherit") | 838 if (lowerCaseString != "initial" && lowerCaseString != "inherit") |
841 return nullptr; | 839 return nullptr; |
842 | 840 |
843 // Parse initial/inherit shorthands using the CSSPropertyParser. | 841 // Parse initial/inherit shorthands using the CSSPropertyParser. |
844 if (shorthandForProperty(propertyId).length()) | 842 if (shorthandForProperty(propertyId).length()) |
845 return nullptr; | 843 return nullptr; |
| 844 |
| 845 // Descriptors do not support css wide keywords. |
| 846 if (CSSPropertyMetadata::isDescriptor(propertyId)) |
| 847 return nullptr; |
846 } | 848 } |
847 | 849 |
848 CSSParserString cssString; | 850 CSSParserString cssString; |
849 cssString.init(string); | 851 cssString.init(string); |
850 CSSValueID valueID = cssValueKeywordID(cssString); | 852 CSSValueID valueID = cssValueKeywordID(cssString); |
851 | 853 |
852 if (!valueID) | 854 if (!valueID) |
853 return nullptr; | 855 return nullptr; |
854 | 856 |
855 if (valueID == CSSValueInherit) | 857 if (valueID == CSSValueInherit) |
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1030 if (isColorPropertyID(propertyID)) | 1032 if (isColorPropertyID(propertyID)) |
1031 return parseColor(string, parserMode); | 1033 return parseColor(string, parserMode); |
1032 if (CSSValue* keyword = parseKeywordValue(propertyID, string, parserMode)) | 1034 if (CSSValue* keyword = parseKeywordValue(propertyID, string, parserMode)) |
1033 return keyword; | 1035 return keyword; |
1034 if (CSSValue* transform = parseSimpleTransform(propertyID, string)) | 1036 if (CSSValue* transform = parseSimpleTransform(propertyID, string)) |
1035 return transform; | 1037 return transform; |
1036 return nullptr; | 1038 return nullptr; |
1037 } | 1039 } |
1038 | 1040 |
1039 } // namespace blink | 1041 } // namespace blink |
OLD | NEW |