Chromium Code Reviews| 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 1259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1270 if (!RuntimeEnabledFeatures::cssGridLayoutEnabled()) | 1270 if (!RuntimeEnabledFeatures::cssGridLayoutEnabled()) |
| 1271 return false; | 1271 return false; |
| 1272 parsedValue = parseGridTemplateAreas(); | 1272 parsedValue = parseGridTemplateAreas(); |
| 1273 break; | 1273 break; |
| 1274 | 1274 |
| 1275 case CSSPropertyGridTemplate: | 1275 case CSSPropertyGridTemplate: |
| 1276 if (!RuntimeEnabledFeatures::cssGridLayoutEnabled()) | 1276 if (!RuntimeEnabledFeatures::cssGridLayoutEnabled()) |
| 1277 return false; | 1277 return false; |
| 1278 return parseGridTemplateShorthand(important); | 1278 return parseGridTemplateShorthand(important); |
| 1279 | 1279 |
| 1280 case CSSPropertyGrid: | |
| 1281 if (!RuntimeEnabledFeatures::cssGridLayoutEnabled()) | |
| 1282 return false; | |
| 1283 return parseGridShorthand(important); | |
| 1284 | |
| 1280 case CSSPropertyWebkitMarginCollapse: { | 1285 case CSSPropertyWebkitMarginCollapse: { |
| 1281 if (num == 1) { | 1286 if (num == 1) { |
| 1282 ShorthandScope scope(this, CSSPropertyWebkitMarginCollapse); | 1287 ShorthandScope scope(this, CSSPropertyWebkitMarginCollapse); |
| 1283 if (!parseValue(webkitMarginCollapseShorthand().properties()[0], imp ortant)) | 1288 if (!parseValue(webkitMarginCollapseShorthand().properties()[0], imp ortant)) |
| 1284 return false; | 1289 return false; |
| 1285 CSSValue* value = m_parsedProperties.last().value(); | 1290 CSSValue* value = m_parsedProperties.last().value(); |
| 1286 addProperty(webkitMarginCollapseShorthand().properties()[1], value, important); | 1291 addProperty(webkitMarginCollapseShorthand().properties()[1], value, important); |
| 1287 return true; | 1292 return true; |
| 1288 } | 1293 } |
| 1289 else if (num == 2) { | 1294 else if (num == 2) { |
| (...skipping 2302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3592 | 3597 |
| 3593 // 3- [<track-list> /]? [<line-names>? <string> [<track-size> <line-names>]? ]+ syntax. | 3598 // 3- [<track-list> /]? [<line-names>? <string> [<track-size> <line-names>]? ]+ syntax. |
| 3594 // The template-columns <track-list> can't be 'none'. | 3599 // The template-columns <track-list> can't be 'none'. |
| 3595 if (firstValueIsNone) | 3600 if (firstValueIsNone) |
| 3596 return false; | 3601 return false; |
| 3597 // It requires to rewind parsing due to previous syntax failures. | 3602 // It requires to rewind parsing due to previous syntax failures. |
| 3598 m_valueList->setCurrentIndex(index); | 3603 m_valueList->setCurrentIndex(index); |
| 3599 return parseGridTemplateRowsAndAreas(columnsValue, important); | 3604 return parseGridTemplateRowsAndAreas(columnsValue, important); |
| 3600 } | 3605 } |
| 3601 | 3606 |
| 3607 bool CSSPropertyParser::parseGridShorthand(bool important) | |
| 3608 { | |
| 3609 ShorthandScope scope(this, CSSPropertyGrid); | |
| 3610 const StylePropertyShorthand& shorthand = shorthandForProperty(CSSPropertyGr id); | |
| 3611 ASSERT_UNUSED(shorthand, shorthand.length() == 4); | |
|
Julien - ping for review
2014/04/03 21:14:30
Can't we just do:
ASSERT(shorthandForProperty(CSS
jfernandez
2014/04/04 15:09:35
Done.
| |
| 3612 | |
| 3613 // 1- <grid-template> | |
| 3614 if (parseGridTemplateShorthand(important)) { | |
| 3615 // Default values for the implicit grid properties. | |
| 3616 addProperty(CSSPropertyGridAutoFlow, cssValuePool().createIdentifierValu e(CSSValueNone), important); | |
| 3617 addProperty(CSSPropertyGridAutoColumns, cssValuePool().createIdentifierV alue(CSSValueAuto), important); | |
| 3618 addProperty(CSSPropertyGridAutoRows, cssValuePool().createIdentifierValu e(CSSValueAuto), important); | |
| 3619 return true; | |
| 3620 } | |
| 3621 | |
| 3622 // Need to rewind parsing to explore the alternative syntax of this shorthan d. | |
| 3623 m_valueList->setCurrentIndex(0); | |
| 3624 | |
| 3625 // 2- <grid-auto-flow> [ <grid-auto-columns> [ / <grid-auto-rows> ]? ] | |
| 3626 CSSValueID id = m_valueList->current()->id; | |
| 3627 if (id != CSSValueRow && id != CSSValueColumn && id != CSSValueNone) | |
| 3628 return false; | |
| 3629 | |
| 3630 RefPtrWillBeRawPtr<CSSValue> autoFlowValue = cssValuePool().createIdentifier Value(id); | |
| 3631 RefPtrWillBeRawPtr<CSSValue> autoColumnsValue = cssValuePool().createIdentif ierValue(CSSValueAuto); | |
|
Julien - ping for review
2014/04/03 21:14:30
I would rather leave both auto*Value to nullptr an
jfernandez
2014/04/04 15:09:35
Done.
| |
| 3632 RefPtrWillBeRawPtr<CSSValue> autoRowsValue = nullptr; | |
| 3633 | |
| 3634 if (m_valueList->next()) { | |
| 3635 autoColumnsValue = parseGridTrackSize(*m_valueList); | |
| 3636 if (!autoColumnsValue) | |
| 3637 return false; | |
| 3638 if (m_valueList->current()) { | |
| 3639 if (!(isForwardSlashOperator(m_valueList->current()) && m_valueList- >next())) | |
|
Julien - ping for review
2014/04/03 21:14:30
Let's avoid !(... && ...) by expanding it.
jfernandez
2014/04/04 15:09:35
Done.
| |
| 3640 return false; | |
| 3641 autoRowsValue = parseGridTrackSize(*m_valueList); | |
| 3642 if (!autoRowsValue) | |
| 3643 return false; | |
| 3644 } | |
| 3645 if (m_valueList->current()) | |
| 3646 return false; | |
| 3647 } | |
| 3648 addProperty(CSSPropertyGridAutoFlow, autoFlowValue, important); | |
| 3649 addProperty(CSSPropertyGridAutoColumns, autoColumnsValue, important); | |
| 3650 if (autoRowsValue) | |
| 3651 addProperty(CSSPropertyGridAutoRows, autoRowsValue, important); | |
| 3652 else | |
| 3653 addProperty(CSSPropertyGridAutoRows, autoColumnsValue, important); | |
| 3654 | |
| 3655 // Default values for the explicit grid properties. | |
|
Julien - ping for review
2014/04/03 21:14:30
You should quote the specification here or give a
jfernandez
2014/04/04 15:09:35
Done.
| |
| 3656 addProperty(CSSPropertyGridTemplateColumns, cssValuePool().createIdentifierV alue(CSSValueNone), important); | |
| 3657 addProperty(CSSPropertyGridTemplateRows, cssValuePool().createIdentifierValu e(CSSValueNone), important); | |
| 3658 addProperty(CSSPropertyGridTemplateAreas, cssValuePool().createIdentifierVal ue(CSSValueNone), important); | |
| 3659 | |
| 3660 return true; | |
| 3661 } | |
| 3662 | |
| 3602 bool CSSPropertyParser::parseGridAreaShorthand(bool important) | 3663 bool CSSPropertyParser::parseGridAreaShorthand(bool important) |
| 3603 { | 3664 { |
| 3604 ASSERT(RuntimeEnabledFeatures::cssGridLayoutEnabled()); | 3665 ASSERT(RuntimeEnabledFeatures::cssGridLayoutEnabled()); |
| 3605 | 3666 |
| 3606 ShorthandScope scope(this, CSSPropertyGridArea); | 3667 ShorthandScope scope(this, CSSPropertyGridArea); |
| 3607 const StylePropertyShorthand& shorthand = gridAreaShorthand(); | 3668 const StylePropertyShorthand& shorthand = gridAreaShorthand(); |
| 3608 ASSERT_UNUSED(shorthand, shorthand.length() == 4); | 3669 ASSERT_UNUSED(shorthand, shorthand.length() == 4); |
| 3609 | 3670 |
| 3610 RefPtrWillBeRawPtr<CSSValue> rowStartValue = parseGridPosition(); | 3671 RefPtrWillBeRawPtr<CSSValue> rowStartValue = parseGridPosition(); |
| 3611 if (!rowStartValue) | 3672 if (!rowStartValue) |
| (...skipping 4844 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 8456 parsedValues->append(CSSPrimitiveValue::createIdentifier(CSSValueFill)); | 8517 parsedValues->append(CSSPrimitiveValue::createIdentifier(CSSValueFill)); |
| 8457 if (!seenStroke) | 8518 if (!seenStroke) |
| 8458 parsedValues->append(CSSPrimitiveValue::createIdentifier(CSSValueStroke) ); | 8519 parsedValues->append(CSSPrimitiveValue::createIdentifier(CSSValueStroke) ); |
| 8459 if (!seenMarkers) | 8520 if (!seenMarkers) |
| 8460 parsedValues->append(CSSPrimitiveValue::createIdentifier(CSSValueMarkers )); | 8521 parsedValues->append(CSSPrimitiveValue::createIdentifier(CSSValueMarkers )); |
| 8461 | 8522 |
| 8462 return parsedValues.release(); | 8523 return parsedValues.release(); |
| 8463 } | 8524 } |
| 8464 | 8525 |
| 8465 } // namespace WebCore | 8526 } // namespace WebCore |
| OLD | NEW |