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 1132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1143 if (!list) | 1143 if (!list) |
1144 return false; | 1144 return false; |
1145 // These values are added to match gecko serialization. | 1145 // These values are added to match gecko serialization. |
1146 if (list->length() == 1) | 1146 if (list->length() == 1) |
1147 list->append(cssValuePool().createValue(50, CSSPrimitiveValue::CSS_P
ERCENTAGE)); | 1147 list->append(cssValuePool().createValue(50, CSSPrimitiveValue::CSS_P
ERCENTAGE)); |
1148 if (list->length() == 2) | 1148 if (list->length() == 2) |
1149 list->append(cssValuePool().createValue(0, CSSPrimitiveValue::CSS_PX
)); | 1149 list->append(cssValuePool().createValue(0, CSSPrimitiveValue::CSS_PX
)); |
1150 addProperty(propId, list.release(), important); | 1150 addProperty(propId, list.release(), important); |
1151 return true; | 1151 return true; |
1152 } | 1152 } |
| 1153 case CSSPropertyWebkitTransformOriginX: |
| 1154 parsedValue = parseFillPositionX(m_valueList.get()); |
| 1155 if (parsedValue) |
| 1156 m_valueList->next(); |
| 1157 break; |
| 1158 case CSSPropertyWebkitTransformOriginY: |
| 1159 parsedValue = parseFillPositionY(m_valueList.get()); |
| 1160 if (parsedValue) |
| 1161 m_valueList->next(); |
| 1162 break; |
| 1163 case CSSPropertyWebkitTransformOriginZ: |
| 1164 validPrimitive = validUnit(value, FLength); |
| 1165 break; |
1153 case CSSPropertyWebkitTransformOrigin: | 1166 case CSSPropertyWebkitTransformOrigin: |
1154 case CSSPropertyWebkitTransformOriginX: | 1167 return parseWebkitTransformOriginShorthand(important); |
1155 case CSSPropertyWebkitTransformOriginY: | |
1156 case CSSPropertyWebkitTransformOriginZ: { | |
1157 RefPtrWillBeRawPtr<CSSValue> val1 = nullptr; | |
1158 RefPtrWillBeRawPtr<CSSValue> val2 = nullptr; | |
1159 RefPtrWillBeRawPtr<CSSValue> val3 = nullptr; | |
1160 CSSPropertyID propId1, propId2, propId3; | |
1161 if (parseWebkitTransformOrigin(propId, propId1, propId2, propId3, val1,
val2, val3)) { | |
1162 addProperty(propId1, val1.release(), important); | |
1163 if (val2) | |
1164 addProperty(propId2, val2.release(), important); | |
1165 if (val3) | |
1166 addProperty(propId3, val3.release(), important); | |
1167 return true; | |
1168 } | |
1169 return false; | |
1170 } | |
1171 case CSSPropertyPerspective: | 1168 case CSSPropertyPerspective: |
1172 if (id == CSSValueNone) { | 1169 if (id == CSSValueNone) { |
1173 validPrimitive = true; | 1170 validPrimitive = true; |
1174 } else if (validUnit(value, FLength | FNonNeg)) { | 1171 } else if (validUnit(value, FLength | FNonNeg)) { |
1175 addProperty(propId, createPrimitiveNumericValue(value), important); | 1172 addProperty(propId, createPrimitiveNumericValue(value), important); |
1176 return true; | 1173 return true; |
1177 } | 1174 } |
1178 break; | 1175 break; |
1179 case CSSPropertyWebkitPerspective: | 1176 case CSSPropertyWebkitPerspective: |
1180 if (id == CSSValueNone) { | 1177 if (id == CSSValueNone) { |
(...skipping 1945 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3126 CSSPropertyID result = cssPropertyID(value->string); | 3123 CSSPropertyID result = cssPropertyID(value->string); |
3127 if (result && RuntimeCSSEnabled::isCSSPropertyEnabled(result)) | 3124 if (result && RuntimeCSSEnabled::isCSSPropertyEnabled(result)) |
3128 return cssValuePool().createIdentifierValue(result); | 3125 return cssValuePool().createIdentifierValue(result); |
3129 if (equalIgnoringCase(value, "none")) | 3126 if (equalIgnoringCase(value, "none")) |
3130 return cssValuePool().createIdentifierValue(CSSValueNone); | 3127 return cssValuePool().createIdentifierValue(CSSValueNone); |
3131 if (equalIgnoringCase(value, "inherit") || equalIgnoringCase(value, "initial
")) | 3128 if (equalIgnoringCase(value, "inherit") || equalIgnoringCase(value, "initial
")) |
3132 return nullptr; | 3129 return nullptr; |
3133 return createPrimitiveStringValue(value); | 3130 return createPrimitiveStringValue(value); |
3134 } | 3131 } |
3135 | 3132 |
3136 bool CSSPropertyParser::parseWebkitTransformOriginShorthand(RefPtrWillBeRawPtr<C
SSValue>& value1, RefPtrWillBeRawPtr<CSSValue>& value2, RefPtrWillBeRawPtr<CSSVa
lue>& value3) | 3133 bool CSSPropertyParser::parseWebkitTransformOriginShorthand(bool important) |
3137 { | 3134 { |
3138 parse2ValuesFillPosition(m_valueList.get(), value1, value2); | 3135 RefPtrWillBeRawPtr<CSSValue> originX; |
| 3136 RefPtrWillBeRawPtr<CSSValue> originY; |
| 3137 RefPtrWillBeRawPtr<CSSValue> originZ; |
3139 | 3138 |
3140 // now get z | 3139 parse2ValuesFillPosition(m_valueList.get(), originX, originY); |
| 3140 |
3141 if (m_valueList->current()) { | 3141 if (m_valueList->current()) { |
3142 if (validUnit(m_valueList->current(), FLength)) { | 3142 if (!validUnit(m_valueList->current(), FLength)) |
3143 value3 = createPrimitiveNumericValue(m_valueList->current()); | 3143 return false; |
3144 m_valueList->next(); | 3144 originZ = createPrimitiveNumericValue(m_valueList->current()); |
3145 return true; | 3145 m_valueList->next(); |
3146 } | 3146 } else { |
3147 return false; | 3147 originZ = cssValuePool().createImplicitInitialValue(); |
3148 } | 3148 } |
3149 value3 = cssValuePool().createImplicitInitialValue(); | 3149 |
| 3150 addProperty(CSSPropertyWebkitTransformOriginX, originX.release(), important)
; |
| 3151 addProperty(CSSPropertyWebkitTransformOriginY, originY.release(), important)
; |
| 3152 addProperty(CSSPropertyWebkitTransformOriginZ, originZ.release(), important)
; |
| 3153 |
3150 return true; | 3154 return true; |
3151 } | 3155 } |
3152 | 3156 |
3153 bool CSSPropertyParser::parseCubicBezierTimingFunctionValue(CSSParserValueList*&
args, double& result) | 3157 bool CSSPropertyParser::parseCubicBezierTimingFunctionValue(CSSParserValueList*&
args, double& result) |
3154 { | 3158 { |
3155 CSSParserValue* v = args->current(); | 3159 CSSParserValue* v = args->current(); |
3156 if (!validUnit(v, FNumber)) | 3160 if (!validUnit(v, FNumber)) |
3157 return false; | 3161 return false; |
3158 result = v->fValue; | 3162 result = v->fValue; |
3159 v = args->next(); | 3163 v = args->next(); |
(...skipping 4394 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7554 | 7558 |
7555 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated()
; | 7559 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated()
; |
7556 list->append(xValue.release()); | 7560 list->append(xValue.release()); |
7557 if (yValue) | 7561 if (yValue) |
7558 list->append(yValue.release()); | 7562 list->append(yValue.release()); |
7559 if (zValue) | 7563 if (zValue) |
7560 list->append(zValue.release()); | 7564 list->append(zValue.release()); |
7561 return list.release(); | 7565 return list.release(); |
7562 } | 7566 } |
7563 | 7567 |
7564 bool CSSPropertyParser::parseWebkitTransformOrigin(CSSPropertyID propId, CSSProp
ertyID& propId1, CSSPropertyID& propId2, CSSPropertyID& propId3, RefPtrWillBeRaw
Ptr<CSSValue>& value, RefPtrWillBeRawPtr<CSSValue>& value2, RefPtrWillBeRawPtr<C
SSValue>& value3) | |
7565 { | |
7566 propId1 = propId; | |
7567 propId2 = propId; | |
7568 propId3 = propId; | |
7569 if (propId == CSSPropertyWebkitTransformOrigin) { | |
7570 propId1 = CSSPropertyWebkitTransformOriginX; | |
7571 propId2 = CSSPropertyWebkitTransformOriginY; | |
7572 propId3 = CSSPropertyWebkitTransformOriginZ; | |
7573 } | |
7574 | |
7575 switch (propId) { | |
7576 case CSSPropertyWebkitTransformOrigin: | |
7577 if (!parseWebkitTransformOriginShorthand(value, value2, value3)) | |
7578 return false; | |
7579 // parseWebkitTransformOriginShorthand advances the m_valueList poin
ter | |
7580 break; | |
7581 case CSSPropertyWebkitTransformOriginX: { | |
7582 value = parseFillPositionX(m_valueList.get()); | |
7583 if (value) | |
7584 m_valueList->next(); | |
7585 break; | |
7586 } | |
7587 case CSSPropertyWebkitTransformOriginY: { | |
7588 value = parseFillPositionY(m_valueList.get()); | |
7589 if (value) | |
7590 m_valueList->next(); | |
7591 break; | |
7592 } | |
7593 case CSSPropertyWebkitTransformOriginZ: { | |
7594 if (validUnit(m_valueList->current(), FLength)) | |
7595 value = createPrimitiveNumericValue(m_valueList->current()); | |
7596 if (value) | |
7597 m_valueList->next(); | |
7598 break; | |
7599 } | |
7600 default: | |
7601 ASSERT_NOT_REACHED(); | |
7602 return false; | |
7603 } | |
7604 | |
7605 return value; | |
7606 } | |
7607 | |
7608 bool CSSPropertyParser::parseWebkitPerspectiveOrigin(CSSPropertyID propId, CSSPr
opertyID& propId1, CSSPropertyID& propId2, RefPtrWillBeRawPtr<CSSValue>& value,
RefPtrWillBeRawPtr<CSSValue>& value2) | 7568 bool CSSPropertyParser::parseWebkitPerspectiveOrigin(CSSPropertyID propId, CSSPr
opertyID& propId1, CSSPropertyID& propId2, RefPtrWillBeRawPtr<CSSValue>& value,
RefPtrWillBeRawPtr<CSSValue>& value2) |
7609 { | 7569 { |
7610 propId1 = propId; | 7570 propId1 = propId; |
7611 propId2 = propId; | 7571 propId2 = propId; |
7612 if (propId == CSSPropertyWebkitPerspectiveOrigin) { | 7572 if (propId == CSSPropertyWebkitPerspectiveOrigin) { |
7613 propId1 = CSSPropertyWebkitPerspectiveOriginX; | 7573 propId1 = CSSPropertyWebkitPerspectiveOriginX; |
7614 propId2 = CSSPropertyWebkitPerspectiveOriginY; | 7574 propId2 = CSSPropertyWebkitPerspectiveOriginY; |
7615 } | 7575 } |
7616 | 7576 |
7617 switch (propId) { | 7577 switch (propId) { |
(...skipping 914 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8532 parsedValues->append(CSSPrimitiveValue::createIdentifier(CSSValueFill)); | 8492 parsedValues->append(CSSPrimitiveValue::createIdentifier(CSSValueFill)); |
8533 if (!seenStroke) | 8493 if (!seenStroke) |
8534 parsedValues->append(CSSPrimitiveValue::createIdentifier(CSSValueStroke)
); | 8494 parsedValues->append(CSSPrimitiveValue::createIdentifier(CSSValueStroke)
); |
8535 if (!seenMarkers) | 8495 if (!seenMarkers) |
8536 parsedValues->append(CSSPrimitiveValue::createIdentifier(CSSValueMarkers
)); | 8496 parsedValues->append(CSSPrimitiveValue::createIdentifier(CSSValueMarkers
)); |
8537 | 8497 |
8538 return parsedValues.release(); | 8498 return parsedValues.release(); |
8539 } | 8499 } |
8540 | 8500 |
8541 } // namespace blink | 8501 } // namespace blink |
OLD | NEW |