OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/CSSPropertyParser.h" | 5 #include "core/css/parser/CSSPropertyParser.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include "core/StylePropertyShorthand.h" | 8 #include "core/StylePropertyShorthand.h" |
9 #include "core/css/CSSBasicShapeValues.h" | 9 #include "core/css/CSSBasicShapeValues.h" |
10 #include "core/css/CSSBorderImage.h" | 10 #include "core/css/CSSBorderImage.h" |
(...skipping 3281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3292 important); | 3292 important); |
3293 addProperty(CSSPropertyGridAutoRows, CSSPropertyGrid, *autoRowsValue, | 3293 addProperty(CSSPropertyGridAutoRows, CSSPropertyGrid, *autoRowsValue, |
3294 important); | 3294 important); |
3295 addProperty(CSSPropertyGridColumnGap, CSSPropertyGrid, | 3295 addProperty(CSSPropertyGridColumnGap, CSSPropertyGrid, |
3296 *CSSInitialValue::create(), important); | 3296 *CSSInitialValue::create(), important); |
3297 addProperty(CSSPropertyGridRowGap, CSSPropertyGrid, | 3297 addProperty(CSSPropertyGridRowGap, CSSPropertyGrid, |
3298 *CSSInitialValue::create(), important); | 3298 *CSSInitialValue::create(), important); |
3299 return true; | 3299 return true; |
3300 } | 3300 } |
3301 | 3301 |
3302 static CSSValue* consumeSimplifiedContentPosition(CSSParserTokenRange& range) { | |
3303 CSSValueID id = range.peek().id(); | |
3304 if (identMatches<CSSValueNormal, CSSValueBaseline, CSSValueLastBaseline>( | |
3305 id)) { | |
3306 return CSSContentDistributionValue::create( | |
3307 CSSValueInvalid, range.consumeIncludingWhitespace().id(), | |
3308 CSSValueInvalid); | |
3309 } | |
3310 if (identMatches<CSSValueSpaceBetween, CSSValueSpaceAround, | |
3311 CSSValueSpaceEvenly, CSSValueStretch>(id)) { | |
3312 return CSSContentDistributionValue::create( | |
3313 range.consumeIncludingWhitespace().id(), CSSValueInvalid, | |
3314 CSSValueInvalid); | |
3315 } | |
3316 if (identMatches<CSSValueStart, CSSValueEnd, CSSValueCenter, | |
3317 CSSValueFlexStart, CSSValueFlexEnd, CSSValueLeft, | |
3318 CSSValueRight>(id)) { | |
3319 return CSSContentDistributionValue::create( | |
3320 CSSValueInvalid, range.consumeIncludingWhitespace().id(), | |
3321 CSSValueInvalid); | |
3322 } | |
3323 return nullptr; | |
3324 } | |
3325 | |
3326 bool CSSPropertyParser::consumePlaceContentShorthand(bool important) { | 3302 bool CSSPropertyParser::consumePlaceContentShorthand(bool important) { |
3327 DCHECK(RuntimeEnabledFeatures::cssGridLayoutEnabled()); | 3303 DCHECK(RuntimeEnabledFeatures::cssGridLayoutEnabled()); |
3328 DCHECK_EQ(shorthandForProperty(CSSPropertyPlaceContent).length(), | 3304 DCHECK_EQ(shorthandForProperty(CSSPropertyPlaceContent).length(), |
3329 static_cast<unsigned>(2)); | 3305 static_cast<unsigned>(2)); |
3330 | 3306 |
3331 CSSValue* alignContentValue = consumeSimplifiedContentPosition(m_range); | 3307 CSSValue* alignContentValue = |
| 3308 CSSPropertyAlignmentUtils::consumeSimplifiedContentPosition(m_range); |
3332 if (!alignContentValue) | 3309 if (!alignContentValue) |
3333 return false; | 3310 return false; |
3334 CSSValue* justifyContentValue = | 3311 CSSValue* justifyContentValue = |
3335 m_range.atEnd() ? alignContentValue | 3312 m_range.atEnd() |
3336 : consumeSimplifiedContentPosition(m_range); | 3313 ? alignContentValue |
| 3314 : CSSPropertyAlignmentUtils::consumeSimplifiedContentPosition( |
| 3315 m_range); |
3337 if (!justifyContentValue) | 3316 if (!justifyContentValue) |
3338 return false; | 3317 return false; |
3339 if (!m_range.atEnd()) | 3318 if (!m_range.atEnd()) |
3340 return false; | 3319 return false; |
3341 | 3320 |
3342 addProperty(CSSPropertyAlignContent, CSSPropertyPlaceContent, | 3321 addProperty(CSSPropertyAlignContent, CSSPropertyPlaceContent, |
3343 *alignContentValue, important); | 3322 *alignContentValue, important); |
3344 addProperty(CSSPropertyJustifyContent, CSSPropertyPlaceContent, | 3323 addProperty(CSSPropertyJustifyContent, CSSPropertyPlaceContent, |
3345 *justifyContentValue, important); | 3324 *justifyContentValue, important); |
3346 return true; | 3325 return true; |
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3606 case CSSPropertyGrid: | 3585 case CSSPropertyGrid: |
3607 return consumeGridShorthand(important); | 3586 return consumeGridShorthand(important); |
3608 case CSSPropertyPlaceContent: | 3587 case CSSPropertyPlaceContent: |
3609 return consumePlaceContentShorthand(important); | 3588 return consumePlaceContentShorthand(important); |
3610 default: | 3589 default: |
3611 return false; | 3590 return false; |
3612 } | 3591 } |
3613 } | 3592 } |
3614 | 3593 |
3615 } // namespace blink | 3594 } // namespace blink |
OLD | NEW |