| 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 |