| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/CSSPropertyParserHelpers.h" | 5 #include "core/css/parser/CSSPropertyParserHelpers.h" |
| 6 | 6 |
| 7 #include "core/css/CSSCalculationValue.h" | 7 #include "core/css/CSSCalculationValue.h" |
| 8 #include "core/css/CSSColorValue.h" | 8 #include "core/css/CSSColorValue.h" |
| 9 #include "core/css/CSSCrossfadeValue.h" | 9 #include "core/css/CSSCrossfadeValue.h" |
| 10 #include "core/css/CSSGradientValue.h" | 10 #include "core/css/CSSGradientValue.h" |
| (...skipping 922 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 933 result->AddStop(stop); | 933 result->AddStop(stop); |
| 934 } | 934 } |
| 935 | 935 |
| 936 return result; | 936 return result; |
| 937 } | 937 } |
| 938 | 938 |
| 939 static CSSPrimitiveValue* ConsumeAngleOrPercent(CSSParserTokenRange& range, | 939 static CSSPrimitiveValue* ConsumeAngleOrPercent(CSSParserTokenRange& range, |
| 940 CSSParserMode, | 940 CSSParserMode, |
| 941 ValueRange value_range, | 941 ValueRange value_range, |
| 942 UnitlessQuirk) { | 942 UnitlessQuirk) { |
| 943 return range.Peek().GetType() == kPercentageToken | 943 const CSSParserToken& token = range.Peek(); |
| 944 ? ConsumePercent(range, value_range) | 944 if (token.GetType() == kDimensionToken || token.GetType() == kNumberToken) |
| 945 : ConsumeAngle(range); | 945 return ConsumeAngle(range); |
| 946 if (token.GetType() == kPercentageToken) |
| 947 return ConsumePercent(range, value_range); |
| 948 CalcParser calc_parser(range, value_range); |
| 949 if (const CSSCalcValue* calculation = calc_parser.Value()) { |
| 950 CalculationCategory category = calculation->Category(); |
| 951 // TODO(fs): Add and support kCalcPercentAngle? |
| 952 if (category == kCalcAngle || category == kCalcPercent) |
| 953 return calc_parser.ConsumeValue(); |
| 954 } |
| 955 return nullptr; |
| 946 } | 956 } |
| 947 | 957 |
| 948 using PositionFunctor = CSSPrimitiveValue* (*)(CSSParserTokenRange&, | 958 using PositionFunctor = CSSPrimitiveValue* (*)(CSSParserTokenRange&, |
| 949 CSSParserMode, | 959 CSSParserMode, |
| 950 ValueRange, | 960 ValueRange, |
| 951 UnitlessQuirk); | 961 UnitlessQuirk); |
| 952 | 962 |
| 953 static bool ConsumeGradientColorStops(CSSParserTokenRange& range, | 963 static bool ConsumeGradientColorStops(CSSParserTokenRange& range, |
| 954 CSSParserMode css_parser_mode, | 964 CSSParserMode css_parser_mode, |
| 955 CSSGradientValue* gradient, | 965 CSSGradientValue* gradient, |
| (...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1426 | 1436 |
| 1427 // https://drafts.csswg.org/css-shapes-1/#typedef-shape-box | 1437 // https://drafts.csswg.org/css-shapes-1/#typedef-shape-box |
| 1428 CSSIdentifierValue* ConsumeShapeBox(CSSParserTokenRange& range) { | 1438 CSSIdentifierValue* ConsumeShapeBox(CSSParserTokenRange& range) { |
| 1429 return ConsumeIdent<CSSValueContentBox, CSSValuePaddingBox, CSSValueBorderBox, | 1439 return ConsumeIdent<CSSValueContentBox, CSSValuePaddingBox, CSSValueBorderBox, |
| 1430 CSSValueMarginBox>(range); | 1440 CSSValueMarginBox>(range); |
| 1431 } | 1441 } |
| 1432 | 1442 |
| 1433 } // namespace CSSPropertyParserHelpers | 1443 } // namespace CSSPropertyParserHelpers |
| 1434 | 1444 |
| 1435 } // namespace blink | 1445 } // namespace blink |
| OLD | NEW |