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 2468 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2479 case CSSPropertyWebkitTransitionProperty: { | 2479 case CSSPropertyWebkitTransitionProperty: { |
| 2480 RefPtr<CSSValue> val; | 2480 RefPtr<CSSValue> val; |
| 2481 AnimationParseContext context; | 2481 AnimationParseContext context; |
| 2482 if (parseAnimationProperty(propId, val, context)) { | 2482 if (parseAnimationProperty(propId, val, context)) { |
| 2483 addPropertyWithPrefixingVariant(propId, val.release(), important); | 2483 addPropertyWithPrefixingVariant(propId, val.release(), important); |
| 2484 return true; | 2484 return true; |
| 2485 } | 2485 } |
| 2486 return false; | 2486 return false; |
| 2487 } | 2487 } |
| 2488 | 2488 |
| 2489 case CSSPropertyJustifySelf: | |
| 2490 if (!RuntimeEnabledFeatures::cssGridLayoutEnabled()) | |
| 2491 return false; | |
| 2492 | |
| 2493 return parseJustifySelf(propId, important); | |
| 2489 case CSSPropertyGridAutoColumns: | 2494 case CSSPropertyGridAutoColumns: |
| 2490 case CSSPropertyGridAutoRows: | 2495 case CSSPropertyGridAutoRows: |
| 2491 if (!RuntimeEnabledFeatures::cssGridLayoutEnabled()) | 2496 if (!RuntimeEnabledFeatures::cssGridLayoutEnabled()) |
| 2492 return false; | 2497 return false; |
| 2493 parsedValue = parseGridTrackSize(*m_valueList); | 2498 parsedValue = parseGridTrackSize(*m_valueList); |
| 2494 break; | 2499 break; |
| 2495 | 2500 |
| 2496 case CSSPropertyGridDefinitionColumns: | 2501 case CSSPropertyGridDefinitionColumns: |
| 2497 case CSSPropertyGridDefinitionRows: | 2502 case CSSPropertyGridDefinitionRows: |
| 2498 if (!RuntimeEnabledFeatures::cssGridLayoutEnabled()) | 2503 if (!RuntimeEnabledFeatures::cssGridLayoutEnabled()) |
| (...skipping 2628 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 5127 i++; | 5132 i++; |
| 5128 } | 5133 } |
| 5129 if (valid) { | 5134 if (valid) { |
| 5130 addProperty(propId, cssValuePool().createValue(rect.release()), importan t); | 5135 addProperty(propId, cssValuePool().createValue(rect.release()), importan t); |
| 5131 m_valueList->next(); | 5136 m_valueList->next(); |
| 5132 return true; | 5137 return true; |
| 5133 } | 5138 } |
| 5134 return false; | 5139 return false; |
| 5135 } | 5140 } |
| 5136 | 5141 |
| 5142 static bool isItemPosition(CSSValueID id) | |
|
ojan
2013/11/25 21:24:08
This is a confusing name...how about...isJustifySe
Julien - ping for review
2013/11/26 00:08:24
This syntax is also used for justify-items / align
| |
| 5143 { | |
| 5144 return id == CSSValueStart || id == CSSValueEnd || id == CSSValueCenter | |
| 5145 || id == CSSValueSelfStart || id == CSSValueSelfEnd || id == CSSValueFle xStart | |
| 5146 || id == CSSValueFlexEnd || id == CSSValueLeft || id == CSSValueRight; | |
| 5147 } | |
| 5148 | |
| 5149 bool CSSParser::parseJustifySelf(CSSPropertyID propId, bool important) | |
| 5150 { | |
| 5151 // auto | baseline | stretch | [<item-position> && <overflow-position>? ] | |
| 5152 // <item-position> = center | start | end | self-start | self-end | flex-sta rt | flex-end | left | right; | |
| 5153 // <overflow-position> = true | safe | |
| 5154 | |
| 5155 CSSParserValue* value = m_valueList->current(); | |
| 5156 | |
| 5157 if (value->id == CSSValueAuto || value->id == CSSValueBaseline || value->id == CSSValueStretch) { | |
| 5158 if (m_valueList->next()) | |
| 5159 return false; | |
| 5160 | |
| 5161 addProperty(propId, cssValuePool().createIdentifierValue(value->id), imp ortant); | |
| 5162 return true; | |
| 5163 } | |
| 5164 | |
| 5165 RefPtr<CSSPrimitiveValue> position = 0; | |
| 5166 RefPtr<CSSPrimitiveValue> overflowAlignmentKeyword = 0; | |
| 5167 if (isItemPosition(value->id)) { | |
| 5168 position = cssValuePool().createIdentifierValue(value->id); | |
| 5169 value = m_valueList->next(); | |
| 5170 if (value) { | |
| 5171 if (value->id == CSSValueTrue || value->id == CSSValueSafe) | |
| 5172 overflowAlignmentKeyword = cssValuePool().createIdentifierValue( value->id); | |
| 5173 else | |
| 5174 return false; | |
| 5175 } | |
| 5176 } else if (value->id == CSSValueTrue || value->id == CSSValueSafe) { | |
| 5177 overflowAlignmentKeyword = cssValuePool().createIdentifierValue(value->i d); | |
| 5178 value = m_valueList->next(); | |
| 5179 if (value) { | |
| 5180 if (isItemPosition(value->id)) | |
| 5181 position = cssValuePool().createIdentifierValue(value->id); | |
| 5182 else | |
| 5183 return false; | |
| 5184 } | |
| 5185 } else { | |
| 5186 return false; | |
| 5187 } | |
| 5188 | |
| 5189 if (m_valueList->next()) | |
| 5190 return false; | |
| 5191 | |
| 5192 ASSERT(position); | |
| 5193 if (overflowAlignmentKeyword) | |
| 5194 addProperty(propId, createPrimitiveValuePair(position, overflowAlignment Keyword), important); | |
| 5195 else | |
| 5196 addProperty(propId, position.release(), important); | |
| 5197 | |
| 5198 return true; | |
| 5199 } | |
| 5200 | |
| 5137 PassRefPtr<CSSBasicShape> CSSParser::parseBasicShapeRectangle(CSSParserValueList * args) | 5201 PassRefPtr<CSSBasicShape> CSSParser::parseBasicShapeRectangle(CSSParserValueList * args) |
| 5138 { | 5202 { |
| 5139 ASSERT(args); | 5203 ASSERT(args); |
| 5140 | 5204 |
| 5141 // rect(x, y, width, height, [[rx], ry]) | 5205 // rect(x, y, width, height, [[rx], ry]) |
| 5142 if (args->size() != 7 && args->size() != 9 && args->size() != 11) | 5206 if (args->size() != 7 && args->size() != 9 && args->size() != 11) |
| 5143 return 0; | 5207 return 0; |
| 5144 | 5208 |
| 5145 RefPtr<CSSBasicShapeRectangle> shape = CSSBasicShapeRectangle::create(); | 5209 RefPtr<CSSBasicShapeRectangle> shape = CSSBasicShapeRectangle::create(); |
| 5146 | 5210 |
| (...skipping 6806 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 11953 { | 12017 { |
| 11954 // The tokenizer checks for the construct of an+b. | 12018 // The tokenizer checks for the construct of an+b. |
| 11955 // However, since the {ident} rule precedes the {nth} rule, some of those | 12019 // However, since the {ident} rule precedes the {nth} rule, some of those |
| 11956 // tokens are identified as string literal. Furthermore we need to accept | 12020 // tokens are identified as string literal. Furthermore we need to accept |
| 11957 // "odd" and "even" which does not match to an+b. | 12021 // "odd" and "even" which does not match to an+b. |
| 11958 return equalIgnoringCase(token, "odd") || equalIgnoringCase(token, "even") | 12022 return equalIgnoringCase(token, "odd") || equalIgnoringCase(token, "even") |
| 11959 || equalIgnoringCase(token, "n") || equalIgnoringCase(token, "-n"); | 12023 || equalIgnoringCase(token, "n") || equalIgnoringCase(token, "-n"); |
| 11960 } | 12024 } |
| 11961 | 12025 |
| 11962 } | 12026 } |
| OLD | NEW |