OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2003 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 2003 Lars Knoll (knoll@kde.org) |
3 * Copyright (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) | 3 * Copyright (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) |
4 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc.
All rights reserved. | 4 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc.
All rights reserved. |
5 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> | 5 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> |
6 * Copyright (C) 2008 Eric Seidel <eric@webkit.org> | 6 * Copyright (C) 2008 Eric Seidel <eric@webkit.org> |
7 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) | 7 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) |
8 * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved. | 8 * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved. |
9 * Copyright (C) 2012 Intel Corporation. All rights reserved. | 9 * Copyright (C) 2012 Intel Corporation. All rights reserved. |
10 * | 10 * |
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
301 { | 301 { |
302 RefPtrWillBeRawPtr<CSSValue> dummyValue = nullptr; | 302 RefPtrWillBeRawPtr<CSSValue> dummyValue = nullptr; |
303 CSSPropertyID propId1, propId2; | 303 CSSPropertyID propId1, propId2; |
304 if (!parseFillProperty(unresolvedProperty, propId1, propId2, parsedValue
, dummyValue)) | 304 if (!parseFillProperty(unresolvedProperty, propId1, propId2, parsedValue
, dummyValue)) |
305 return nullptr; | 305 return nullptr; |
306 ASSERT(!dummyValue); | 306 ASSERT(!dummyValue); |
307 break; | 307 break; |
308 } | 308 } |
309 case CSSPropertyJustifySelf: | 309 case CSSPropertyJustifySelf: |
310 ASSERT(RuntimeEnabledFeatures::cssGridLayoutEnabled()); | 310 ASSERT(RuntimeEnabledFeatures::cssGridLayoutEnabled()); |
311 parsedValue = parseItemPositionOverflowPosition(); | 311 parsedValue = parseItemPositionOverflowPosition(propId); |
312 break; | 312 break; |
313 case CSSPropertyJustifyItems: | 313 case CSSPropertyJustifyItems: |
314 ASSERT(RuntimeEnabledFeatures::cssGridLayoutEnabled()); | 314 ASSERT(RuntimeEnabledFeatures::cssGridLayoutEnabled()); |
315 | 315 |
316 if ((parsedValue = parseLegacyPosition())) | 316 if ((parsedValue = parseLegacyPosition())) |
317 break; | 317 break; |
318 | 318 |
319 m_valueList->setCurrentIndex(0); | 319 m_valueList->setCurrentIndex(0); |
320 parsedValue = parseItemPositionOverflowPosition(); | 320 parsedValue = parseItemPositionOverflowPosition(propId); |
321 break; | 321 break; |
322 case CSSPropertyGridAutoFlow: | 322 case CSSPropertyGridAutoFlow: |
323 ASSERT(RuntimeEnabledFeatures::cssGridLayoutEnabled()); | 323 ASSERT(RuntimeEnabledFeatures::cssGridLayoutEnabled()); |
324 parsedValue = parseGridAutoFlow(*m_valueList); | 324 parsedValue = parseGridAutoFlow(*m_valueList); |
325 break; | 325 break; |
326 case CSSPropertyGridAutoColumns: | 326 case CSSPropertyGridAutoColumns: |
327 case CSSPropertyGridAutoRows: | 327 case CSSPropertyGridAutoRows: |
328 ASSERT(RuntimeEnabledFeatures::cssGridLayoutEnabled()); | 328 ASSERT(RuntimeEnabledFeatures::cssGridLayoutEnabled()); |
329 parsedValue = parseGridTrackSize(*m_valueList); | 329 parsedValue = parseGridTrackSize(*m_valueList); |
330 break; | 330 break; |
(...skipping 14 matching lines...) Expand all Loading... |
345 | 345 |
346 case CSSPropertyGridTemplateAreas: | 346 case CSSPropertyGridTemplateAreas: |
347 ASSERT(RuntimeEnabledFeatures::cssGridLayoutEnabled()); | 347 ASSERT(RuntimeEnabledFeatures::cssGridLayoutEnabled()); |
348 parsedValue = parseGridTemplateAreas(); | 348 parsedValue = parseGridTemplateAreas(); |
349 break; | 349 break; |
350 | 350 |
351 break; | 351 break; |
352 | 352 |
353 case CSSPropertyAlignSelf: | 353 case CSSPropertyAlignSelf: |
354 ASSERT(RuntimeEnabledFeatures::cssGridLayoutEnabled()); | 354 ASSERT(RuntimeEnabledFeatures::cssGridLayoutEnabled()); |
355 parsedValue = parseItemPositionOverflowPosition(); | 355 parsedValue = parseItemPositionOverflowPosition(propId); |
356 break; | 356 break; |
357 | 357 |
358 case CSSPropertyAlignItems: | 358 case CSSPropertyAlignItems: |
359 ASSERT(RuntimeEnabledFeatures::cssGridLayoutEnabled()); | 359 ASSERT(RuntimeEnabledFeatures::cssGridLayoutEnabled()); |
360 parsedValue = parseItemPositionOverflowPosition(); | 360 parsedValue = parseItemPositionOverflowPosition(propId); |
361 break; | 361 break; |
362 | 362 |
363 // Everything else is handled in CSSPropertyParser.cpp | 363 // Everything else is handled in CSSPropertyParser.cpp |
364 default: | 364 default: |
365 return nullptr; | 365 return nullptr; |
366 } | 366 } |
367 | 367 |
368 ASSERT(!m_parsedCalculation); | 368 ASSERT(!m_parsedCalculation); |
369 if (parsedValue) { | 369 if (parsedValue) { |
370 if (!m_valueList->current() || inShorthand()) | 370 if (!m_valueList->current() || inShorthand()) |
(...skipping 1721 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2092 if (!m_valueList->next() || m_valueList->current()->id != CSSValueLegacy
) | 2092 if (!m_valueList->next() || m_valueList->current()->id != CSSValueLegacy
) |
2093 return nullptr; | 2093 return nullptr; |
2094 } else { | 2094 } else { |
2095 return nullptr; | 2095 return nullptr; |
2096 } | 2096 } |
2097 | 2097 |
2098 m_valueList->next(); | 2098 m_valueList->next(); |
2099 return CSSValuePair::create(cssValuePool().createIdentifierValue(CSSValueLeg
acy), cssValuePool().createIdentifierValue(value->id), CSSValuePair::DropIdentic
alValues); | 2099 return CSSValuePair::create(cssValuePool().createIdentifierValue(CSSValueLeg
acy), cssValuePool().createIdentifierValue(value->id), CSSValuePair::DropIdentic
alValues); |
2100 } | 2100 } |
2101 | 2101 |
2102 PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseItemPositionOverflowPos
ition() | 2102 PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseItemPositionOverflowPos
ition(CSSPropertyID propId) |
2103 { | 2103 { |
2104 // auto | stretch | <baseline-position> | [<item-position> && <overflow-posi
tion>? ] | 2104 // auto | normal | stretch | <baseline-position> | [<item-position> && <over
flow-position>? ] |
2105 // <baseline-position> = baseline | last-baseline; | 2105 // <baseline-position> = baseline | last-baseline; |
2106 // <item-position> = center | start | end | self-start | self-end | flex-sta
rt | flex-end | left | right; | 2106 // <item-position> = center | start | end | self-start | self-end | flex-sta
rt | flex-end | left | right; |
2107 // <overflow-position> = unsafe | safe | 2107 // <overflow-position> = unsafe | safe |
2108 | 2108 |
2109 CSSParserValue* value = m_valueList->current(); | 2109 CSSParserValue* value = m_valueList->current(); |
2110 ASSERT(value); | 2110 ASSERT(value); |
2111 | 2111 |
2112 if (value->id == CSSValueAuto || value->id == CSSValueStretch || isBaselineP
ositionKeyword(value->id)) { | 2112 if (value->id == CSSValueAuto || value->id == CSSValueNormal || value->id ==
CSSValueStretch || isBaselinePositionKeyword(value->id)) { |
| 2113 // align-items property does not allow the 'auto' value. |
| 2114 if (value->id == CSSValueAuto && propId == CSSPropertyAlignItems) |
| 2115 return nullptr; |
2113 m_valueList->next(); | 2116 m_valueList->next(); |
2114 return cssValuePool().createIdentifierValue(value->id); | 2117 return cssValuePool().createIdentifierValue(value->id); |
2115 } | 2118 } |
2116 | 2119 |
2117 RefPtrWillBeRawPtr<CSSPrimitiveValue> position = nullptr; | 2120 RefPtrWillBeRawPtr<CSSPrimitiveValue> position = nullptr; |
2118 RefPtrWillBeRawPtr<CSSPrimitiveValue> overflowAlignmentKeyword = nullptr; | 2121 RefPtrWillBeRawPtr<CSSPrimitiveValue> overflowAlignmentKeyword = nullptr; |
2119 if (isItemPositionKeyword(value->id)) { | 2122 if (isItemPositionKeyword(value->id)) { |
2120 position = cssValuePool().createIdentifierValue(value->id); | 2123 position = cssValuePool().createIdentifierValue(value->id); |
2121 value = m_valueList->next(); | 2124 value = m_valueList->next(); |
2122 if (value) { | 2125 if (value) { |
(...skipping 1029 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3152 ASSERT(!m_parsedCalculation); | 3155 ASSERT(!m_parsedCalculation); |
3153 m_parsedCalculation = CSSCalcValue::create(args, range); | 3156 m_parsedCalculation = CSSCalcValue::create(args, range); |
3154 | 3157 |
3155 if (!m_parsedCalculation) | 3158 if (!m_parsedCalculation) |
3156 return false; | 3159 return false; |
3157 | 3160 |
3158 return true; | 3161 return true; |
3159 } | 3162 } |
3160 | 3163 |
3161 } // namespace blink | 3164 } // namespace blink |
OLD | NEW |