Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(318)

Side by Side Diff: Source/core/css/parser/CSSPropertyParser.cpp

Issue 1099483002: Use alias_for with trivial property aliases (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@alias
Patch Set: rebase a couple of tests Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « Source/core/css/parser/CSSParserFastPaths.cpp ('k') | Source/core/css/resolver/AnimatedStyleBuilder.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698