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 1023 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1034 validPrimitive = validUnit(value, FInteger | FLength | FNonNeg); | 1034 validPrimitive = validUnit(value, FInteger | FLength | FNonNeg); |
1035 break; | 1035 break; |
1036 case CSSPropertyBorderRadius: | 1036 case CSSPropertyBorderRadius: |
1037 case CSSPropertyWebkitBorderRadius: | 1037 case CSSPropertyWebkitBorderRadius: |
1038 return parseBorderRadius(propId, important); | 1038 return parseBorderRadius(propId, important); |
1039 case CSSPropertyOutlineOffset: | 1039 case CSSPropertyOutlineOffset: |
1040 validPrimitive = validUnit(value, FLength); | 1040 validPrimitive = validUnit(value, FLength); |
1041 break; | 1041 break; |
1042 case CSSPropertyTextShadow: // CSS2 property, dropped in CSS2.1, back in CSS
3, so treat as CSS3 | 1042 case CSSPropertyTextShadow: // CSS2 property, dropped in CSS2.1, back in CSS
3, so treat as CSS3 |
1043 case CSSPropertyBoxShadow: | 1043 case CSSPropertyBoxShadow: |
1044 case CSSPropertyWebkitBoxShadow: | |
1045 if (id == CSSValueNone) | 1044 if (id == CSSValueNone) |
1046 validPrimitive = true; | 1045 validPrimitive = true; |
1047 else { | 1046 else { |
1048 RefPtrWillBeRawPtr<CSSValueList> shadowValueList = parseShadow(m_val
ueList, propId); | 1047 RefPtrWillBeRawPtr<CSSValueList> shadowValueList = parseShadow(m_val
ueList, propId); |
1049 if (shadowValueList) { | 1048 if (shadowValueList) { |
1050 addProperty(propId, shadowValueList.release(), important); | 1049 addProperty(propId, shadowValueList.release(), important); |
1051 m_valueList->next(); | 1050 m_valueList->next(); |
1052 return true; | 1051 return true; |
1053 } | 1052 } |
1054 return false; | 1053 return false; |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1118 validPrimitive = true; | 1117 validPrimitive = true; |
1119 else { | 1118 else { |
1120 RefPtrWillBeRawPtr<CSSValue> transformValue = parseTransform(propId)
; | 1119 RefPtrWillBeRawPtr<CSSValue> transformValue = parseTransform(propId)
; |
1121 if (transformValue) { | 1120 if (transformValue) { |
1122 addProperty(propId, transformValue.release(), important); | 1121 addProperty(propId, transformValue.release(), important); |
1123 return true; | 1122 return true; |
1124 } | 1123 } |
1125 return false; | 1124 return false; |
1126 } | 1125 } |
1127 break; | 1126 break; |
1128 case CSSPropertyTransformOrigin: | 1127 case CSSPropertyTransformOrigin: { |
1129 case CSSPropertyWebkitTransformOrigin: { | |
1130 RefPtrWillBeRawPtr<CSSValueList> list = parseTransformOrigin(); | 1128 RefPtrWillBeRawPtr<CSSValueList> list = parseTransformOrigin(); |
1131 if (!list) | 1129 if (!list) |
1132 return false; | 1130 return false; |
1133 // These values are added to match gecko serialization. | 1131 // These values are added to match gecko serialization. |
1134 if (list->length() == 1) | 1132 if (list->length() == 1) |
1135 list->append(cssValuePool().createValue(50, CSSPrimitiveValue::CSS_P
ERCENTAGE)); | 1133 list->append(cssValuePool().createValue(50, CSSPrimitiveValue::CSS_P
ERCENTAGE)); |
1136 if (list->length() == 2) | 1134 if (list->length() == 2) |
1137 list->append(cssValuePool().createValue(0, CSSPrimitiveValue::CSS_PX
)); | 1135 list->append(cssValuePool().createValue(0, CSSPrimitiveValue::CSS_PX
)); |
1138 addProperty(propId, list.release(), important); | 1136 addProperty(propId, list.release(), important); |
1139 return true; | 1137 return true; |
(...skipping 22 matching lines...) Expand all Loading... |
1162 return false; | 1160 return false; |
1163 break; | 1161 break; |
1164 case CSSPropertyWebkitPerspective: | 1162 case CSSPropertyWebkitPerspective: |
1165 if (id == CSSValueNone) | 1163 if (id == CSSValueNone) |
1166 validPrimitive = true; | 1164 validPrimitive = true; |
1167 else if (validUnit(value, FNumber | FLength) && (m_parsedCalculation ||
value->fValue > 0)) | 1165 else if (validUnit(value, FNumber | FLength) && (m_parsedCalculation ||
value->fValue > 0)) |
1168 validPrimitive = true; | 1166 validPrimitive = true; |
1169 else | 1167 else |
1170 return false; | 1168 return false; |
1171 break; | 1169 break; |
1172 case CSSPropertyPerspectiveOrigin: | 1170 case CSSPropertyPerspectiveOrigin: { |
1173 case CSSPropertyWebkitPerspectiveOrigin: { | |
1174 RefPtrWillBeRawPtr<CSSValueList> list = parseTransformOrigin(); | 1171 RefPtrWillBeRawPtr<CSSValueList> list = parseTransformOrigin(); |
1175 if (!list || list->length() == 3) | 1172 if (!list || list->length() == 3) |
1176 return false; | 1173 return false; |
1177 // This values are added to match gecko serialization. | 1174 // This values are added to match gecko serialization. |
1178 if (list->length() == 1) | 1175 if (list->length() == 1) |
1179 list->append(cssValuePool().createValue(50, CSSPrimitiveValue::CSS_P
ERCENTAGE)); | 1176 list->append(cssValuePool().createValue(50, CSSPrimitiveValue::CSS_P
ERCENTAGE)); |
1180 addProperty(propId, list.release(), important); | 1177 addProperty(propId, list.release(), important); |
1181 return true; | 1178 return true; |
1182 } | 1179 } |
1183 | 1180 |
(...skipping 4255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5439 class ShadowParseContext { | 5436 class ShadowParseContext { |
5440 STACK_ALLOCATED(); | 5437 STACK_ALLOCATED(); |
5441 public: | 5438 public: |
5442 ShadowParseContext(CSSPropertyID prop) | 5439 ShadowParseContext(CSSPropertyID prop) |
5443 : property(prop) | 5440 : property(prop) |
5444 , allowX(true) | 5441 , allowX(true) |
5445 , allowY(false) | 5442 , allowY(false) |
5446 , allowBlur(false) | 5443 , allowBlur(false) |
5447 , allowSpread(false) | 5444 , allowSpread(false) |
5448 , allowColor(true) | 5445 , allowColor(true) |
5449 , allowStyle(prop == CSSPropertyWebkitBoxShadow || prop == CSSPropertyBo
xShadow) | 5446 , allowStyle(prop == CSSPropertyBoxShadow) |
5450 , allowBreak(true) | 5447 , allowBreak(true) |
5451 { | 5448 { |
5452 } | 5449 } |
5453 | 5450 |
5454 bool allowLength() { return allowX || allowY || allowBlur || allowSpread; } | 5451 bool allowLength() { return allowX || allowY || allowBlur || allowSpread; } |
5455 | 5452 |
5456 void commitValue() | 5453 void commitValue() |
5457 { | 5454 { |
5458 // Handle the ,, case gracefully by doing nothing. | 5455 // Handle the ,, case gracefully by doing nothing. |
5459 if (x || y || blur || spread || color || style) { | 5456 if (x || y || blur || spread || color || style) { |
(...skipping 11 matching lines...) Expand all Loading... |
5471 spread = nullptr; | 5468 spread = nullptr; |
5472 style = nullptr; | 5469 style = nullptr; |
5473 color = nullptr; | 5470 color = nullptr; |
5474 | 5471 |
5475 allowX = true; | 5472 allowX = true; |
5476 allowColor = true; | 5473 allowColor = true; |
5477 allowBreak = true; | 5474 allowBreak = true; |
5478 allowY = false; | 5475 allowY = false; |
5479 allowBlur = false; | 5476 allowBlur = false; |
5480 allowSpread = false; | 5477 allowSpread = false; |
5481 allowStyle = property == CSSPropertyWebkitBoxShadow || property == CSSPr
opertyBoxShadow; | 5478 allowStyle = property == CSSPropertyBoxShadow; |
5482 } | 5479 } |
5483 | 5480 |
5484 void commitLength(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> val) | 5481 void commitLength(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> val) |
5485 { | 5482 { |
5486 if (allowX) { | 5483 if (allowX) { |
5487 x = val; | 5484 x = val; |
5488 allowX = false; | 5485 allowX = false; |
5489 allowY = true; | 5486 allowY = true; |
5490 allowColor = false; | 5487 allowColor = false; |
5491 allowStyle = false; | 5488 allowStyle = false; |
5492 allowBreak = false; | 5489 allowBreak = false; |
5493 } else if (allowY) { | 5490 } else if (allowY) { |
5494 y = val; | 5491 y = val; |
5495 allowY = false; | 5492 allowY = false; |
5496 allowBlur = true; | 5493 allowBlur = true; |
5497 allowColor = true; | 5494 allowColor = true; |
5498 allowStyle = property == CSSPropertyWebkitBoxShadow || property == C
SSPropertyBoxShadow; | 5495 allowStyle = property == CSSPropertyBoxShadow; |
5499 allowBreak = true; | 5496 allowBreak = true; |
5500 } else if (allowBlur) { | 5497 } else if (allowBlur) { |
5501 blur = val; | 5498 blur = val; |
5502 allowBlur = false; | 5499 allowBlur = false; |
5503 allowSpread = property == CSSPropertyWebkitBoxShadow || property ==
CSSPropertyBoxShadow; | 5500 allowSpread = property == CSSPropertyBoxShadow; |
5504 } else if (allowSpread) { | 5501 } else if (allowSpread) { |
5505 spread = val; | 5502 spread = val; |
5506 allowSpread = false; | 5503 allowSpread = false; |
5507 } | 5504 } |
5508 } | 5505 } |
5509 | 5506 |
5510 void commitColor(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> val) | 5507 void commitColor(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> val) |
5511 { | 5508 { |
5512 color = val; | 5509 color = val; |
5513 allowColor = false; | 5510 allowColor = false; |
5514 if (allowX) { | 5511 if (allowX) { |
5515 allowStyle = false; | 5512 allowStyle = false; |
5516 allowBreak = false; | 5513 allowBreak = false; |
5517 } else { | 5514 } else { |
5518 allowBlur = false; | 5515 allowBlur = false; |
5519 allowSpread = false; | 5516 allowSpread = false; |
5520 allowStyle = property == CSSPropertyWebkitBoxShadow || property == C
SSPropertyBoxShadow; | 5517 allowStyle = property == CSSPropertyBoxShadow; |
5521 } | 5518 } |
5522 } | 5519 } |
5523 | 5520 |
5524 void commitStyle(CSSParserValue* v) | 5521 void commitStyle(CSSParserValue* v) |
5525 { | 5522 { |
5526 style = cssValuePool().createIdentifierValue(v->id); | 5523 style = cssValuePool().createIdentifierValue(v->id); |
5527 allowStyle = false; | 5524 allowStyle = false; |
5528 if (allowX) | 5525 if (allowX) |
5529 allowBreak = false; | 5526 allowBreak = false; |
5530 else { | 5527 else { |
(...skipping 2963 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8494 } | 8491 } |
8495 } | 8492 } |
8496 | 8493 |
8497 if (!list->length()) | 8494 if (!list->length()) |
8498 return nullptr; | 8495 return nullptr; |
8499 | 8496 |
8500 return list.release(); | 8497 return list.release(); |
8501 } | 8498 } |
8502 | 8499 |
8503 } // namespace blink | 8500 } // namespace blink |
OLD | NEW |