| 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 1154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1165 case CSSPropertyWebkitBorderAfter: | 1165 case CSSPropertyWebkitBorderAfter: |
| 1166 case CSSPropertyWebkitTextStroke: | 1166 case CSSPropertyWebkitTextStroke: |
| 1167 case CSSPropertyWebkitTextStrokeColor: | 1167 case CSSPropertyWebkitTextStrokeColor: |
| 1168 case CSSPropertyWebkitTextStrokeWidth: | 1168 case CSSPropertyWebkitTextStrokeWidth: |
| 1169 case CSSPropertyTransform: | 1169 case CSSPropertyTransform: |
| 1170 case CSSPropertyFill: | 1170 case CSSPropertyFill: |
| 1171 case CSSPropertyStroke: | 1171 case CSSPropertyStroke: |
| 1172 case CSSPropertyStopColor: | 1172 case CSSPropertyStopColor: |
| 1173 case CSSPropertyFloodColor: | 1173 case CSSPropertyFloodColor: |
| 1174 case CSSPropertyLightingColor: | 1174 case CSSPropertyLightingColor: |
| 1175 case CSSPropertyPaintOrder: |
| 1175 validPrimitive = false; | 1176 validPrimitive = false; |
| 1176 break; | 1177 break; |
| 1177 | 1178 |
| 1178 case CSSPropertyScrollSnapPointsX: | 1179 case CSSPropertyScrollSnapPointsX: |
| 1179 case CSSPropertyScrollSnapPointsY: | 1180 case CSSPropertyScrollSnapPointsY: |
| 1180 parsedValue = parseScrollSnapPoints(); | 1181 parsedValue = parseScrollSnapPoints(); |
| 1181 break; | 1182 break; |
| 1182 case CSSPropertyScrollSnapCoordinate: | 1183 case CSSPropertyScrollSnapCoordinate: |
| 1183 parsedValue = parseScrollSnapCoordinate(); | 1184 parsedValue = parseScrollSnapCoordinate(); |
| 1184 break; | 1185 break; |
| (...skipping 4309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5494 case CSSPropertyFillOpacity: | 5495 case CSSPropertyFillOpacity: |
| 5495 case CSSPropertyStopOpacity: | 5496 case CSSPropertyStopOpacity: |
| 5496 case CSSPropertyFloodOpacity: | 5497 case CSSPropertyFloodOpacity: |
| 5497 validPrimitive = validUnit(value, FNumber | FPercent, SVGAttributeMode); | 5498 validPrimitive = validUnit(value, FNumber | FPercent, SVGAttributeMode); |
| 5498 break; | 5499 break; |
| 5499 | 5500 |
| 5500 /* Start of supported CSS properties with validation. This is needed for par
seShortHand to work | 5501 /* Start of supported CSS properties with validation. This is needed for par
seShortHand to work |
| 5501 * correctly and allows optimization in applyRule(..) | 5502 * correctly and allows optimization in applyRule(..) |
| 5502 */ | 5503 */ |
| 5503 | 5504 |
| 5504 case CSSPropertyPaintOrder: | |
| 5505 if (m_valueList->size() == 1 && id == CSSValueNormal) | |
| 5506 validPrimitive = true; | |
| 5507 else if ((parsedValue = parsePaintOrder())) | |
| 5508 m_valueList->next(); | |
| 5509 break; | |
| 5510 | |
| 5511 case CSSPropertyStrokeWidth: // <length> | inherit | 5505 case CSSPropertyStrokeWidth: // <length> | inherit |
| 5512 case CSSPropertyStrokeDashoffset: | 5506 case CSSPropertyStrokeDashoffset: |
| 5513 case CSSPropertyCx: | 5507 case CSSPropertyCx: |
| 5514 case CSSPropertyCy: | 5508 case CSSPropertyCy: |
| 5515 case CSSPropertyX: | 5509 case CSSPropertyX: |
| 5516 case CSSPropertyY: | 5510 case CSSPropertyY: |
| 5517 case CSSPropertyR: | 5511 case CSSPropertyR: |
| 5518 case CSSPropertyRx: | 5512 case CSSPropertyRx: |
| 5519 case CSSPropertyRy: | 5513 case CSSPropertyRy: |
| 5520 validPrimitive = validUnit(value, FLength | FPercent, SVGAttributeMode); | 5514 validPrimitive = validUnit(value, FLength | FPercent, SVGAttributeMode); |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5593 bool commaConsumed = consumeComma(m_valueList); | 5587 bool commaConsumed = consumeComma(m_valueList); |
| 5594 value = m_valueList->current(); | 5588 value = m_valueList->current(); |
| 5595 if (commaConsumed && !value) | 5589 if (commaConsumed && !value) |
| 5596 return nullptr; | 5590 return nullptr; |
| 5597 } | 5591 } |
| 5598 if (!validPrimitive) | 5592 if (!validPrimitive) |
| 5599 return nullptr; | 5593 return nullptr; |
| 5600 return ret.release(); | 5594 return ret.release(); |
| 5601 } | 5595 } |
| 5602 | 5596 |
| 5603 // normal | [ fill || stroke || markers ] | |
| 5604 PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parsePaintOrder() const | |
| 5605 { | |
| 5606 if (m_valueList->size() > 3) | |
| 5607 return nullptr; | |
| 5608 | |
| 5609 CSSParserValue* value = m_valueList->current(); | |
| 5610 ASSERT(value); | |
| 5611 | |
| 5612 Vector<CSSValueID, 3> paintTypeList; | |
| 5613 RefPtrWillBeRawPtr<CSSPrimitiveValue> fill = nullptr; | |
| 5614 RefPtrWillBeRawPtr<CSSPrimitiveValue> stroke = nullptr; | |
| 5615 RefPtrWillBeRawPtr<CSSPrimitiveValue> markers = nullptr; | |
| 5616 while (value) { | |
| 5617 if (value->id == CSSValueFill && !fill) | |
| 5618 fill = CSSPrimitiveValue::createIdentifier(value->id); | |
| 5619 else if (value->id == CSSValueStroke && !stroke) | |
| 5620 stroke = CSSPrimitiveValue::createIdentifier(value->id); | |
| 5621 else if (value->id == CSSValueMarkers && !markers) | |
| 5622 markers = CSSPrimitiveValue::createIdentifier(value->id); | |
| 5623 else | |
| 5624 return nullptr; | |
| 5625 paintTypeList.append(value->id); | |
| 5626 value = m_valueList->next(); | |
| 5627 } | |
| 5628 | |
| 5629 // After parsing we serialize the paint-order list. Since it is not possible
to | |
| 5630 // pop a last list items from CSSValueList without bigger cost, we create th
e | |
| 5631 // list after parsing. | |
| 5632 CSSValueID firstPaintOrderType = paintTypeList.at(0); | |
| 5633 RefPtrWillBeRawPtr<CSSValueList> paintOrderList = CSSValueList::createSpaceS
eparated(); | |
| 5634 switch (firstPaintOrderType) { | |
| 5635 case CSSValueFill: | |
| 5636 case CSSValueStroke: | |
| 5637 paintOrderList->append(firstPaintOrderType == CSSValueFill ? fill.releas
e() : stroke.release()); | |
| 5638 if (paintTypeList.size() > 1) { | |
| 5639 if (paintTypeList.at(1) == CSSValueMarkers) | |
| 5640 paintOrderList->append(markers.release()); | |
| 5641 } | |
| 5642 break; | |
| 5643 case CSSValueMarkers: | |
| 5644 paintOrderList->append(markers.release()); | |
| 5645 if (paintTypeList.size() > 1) { | |
| 5646 if (paintTypeList.at(1) == CSSValueStroke) | |
| 5647 paintOrderList->append(stroke.release()); | |
| 5648 } | |
| 5649 break; | |
| 5650 default: | |
| 5651 ASSERT_NOT_REACHED(); | |
| 5652 } | |
| 5653 | |
| 5654 return paintOrderList.release(); | |
| 5655 } | |
| 5656 | |
| 5657 } // namespace blink | 5597 } // namespace blink |
| OLD | NEW |