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

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

Issue 98663004: Add support for unprefixed CSS Transforms (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebase. Created 6 years, 9 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 | Annotate | Revision Log
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 1086 matching lines...) Expand 10 before | Expand all | Expand 10 after
1097 validPrimitive = true; 1097 validPrimitive = true;
1098 else 1098 else
1099 validPrimitive = validUnit(value, FInteger | FNonNeg); 1099 validPrimitive = validUnit(value, FInteger | FNonNeg);
1100 break; 1100 break;
1101 case CSSPropertyInternalMarqueeSpeed: 1101 case CSSPropertyInternalMarqueeSpeed:
1102 if (id == CSSValueNormal || id == CSSValueSlow || id == CSSValueFast) 1102 if (id == CSSValueNormal || id == CSSValueSlow || id == CSSValueFast)
1103 validPrimitive = true; 1103 validPrimitive = true;
1104 else 1104 else
1105 validPrimitive = validUnit(value, FTime | FInteger | FNonNeg); 1105 validPrimitive = validUnit(value, FTime | FInteger | FNonNeg);
1106 break; 1106 break;
1107 case CSSPropertyTransform:
1107 case CSSPropertyWebkitTransform: 1108 case CSSPropertyWebkitTransform:
1108 if (id == CSSValueNone) 1109 if (id == CSSValueNone)
1109 validPrimitive = true; 1110 validPrimitive = true;
1110 else { 1111 else {
1111 RefPtrWillBeRawPtr<CSSValue> transformValue = parseTransform(); 1112 RefPtrWillBeRawPtr<CSSValue> transformValue = parseTransform(propId) ;
1112 if (transformValue) { 1113 if (transformValue) {
1113 addProperty(propId, transformValue.release(), important); 1114 addProperty(propId, transformValue.release(), important);
1114 return true; 1115 return true;
1115 } 1116 }
1116 return false; 1117 return false;
1117 } 1118 }
1118 break; 1119 break;
1120 case CSSPropertyTransformOrigin: {
1121 RefPtrWillBeRawPtr<CSSValueList> list = parseTransformOrigin();
1122 if (!list)
1123 return false;
1124 // These values are added to match gecko serialization.
1125 if (list->length() == 1)
1126 list->append(cssValuePool().createValue(50, CSSPrimitiveValue::CSS_P ERCENTAGE));
1127 if (list->length() == 2)
1128 list->append(cssValuePool().createValue(0, CSSPrimitiveValue::CSS_PX ));
1129 addProperty(propId, list.release(), important);
1130 return true;
1131 }
1119 case CSSPropertyWebkitTransformOrigin: 1132 case CSSPropertyWebkitTransformOrigin:
1120 case CSSPropertyWebkitTransformOriginX: 1133 case CSSPropertyWebkitTransformOriginX:
1121 case CSSPropertyWebkitTransformOriginY: 1134 case CSSPropertyWebkitTransformOriginY:
1122 case CSSPropertyWebkitTransformOriginZ: { 1135 case CSSPropertyWebkitTransformOriginZ: {
1123 RefPtrWillBeRawPtr<CSSValue> val1; 1136 RefPtrWillBeRawPtr<CSSValue> val1;
1124 RefPtrWillBeRawPtr<CSSValue> val2; 1137 RefPtrWillBeRawPtr<CSSValue> val2;
1125 RefPtrWillBeRawPtr<CSSValue> val3; 1138 RefPtrWillBeRawPtr<CSSValue> val3;
1126 CSSPropertyID propId1, propId2, propId3; 1139 CSSPropertyID propId1, propId2, propId3;
1127 if (parseTransformOrigin(propId, propId1, propId2, propId3, val1, val2, val3)) { 1140 if (parseWebkitTransformOrigin(propId, propId1, propId2, propId3, val1, val2, val3)) {
1128 addProperty(propId1, val1.release(), important); 1141 addProperty(propId1, val1.release(), important);
1129 if (val2) 1142 if (val2)
1130 addProperty(propId2, val2.release(), important); 1143 addProperty(propId2, val2.release(), important);
1131 if (val3) 1144 if (val3)
1132 addProperty(propId3, val3.release(), important); 1145 addProperty(propId3, val3.release(), important);
1133 return true; 1146 return true;
1134 } 1147 }
1135 return false; 1148 return false;
1136 } 1149 }
1137 case CSSPropertyWebkitPerspective: 1150 case CSSPropertyPerspective:
1138 if (id == CSSValueNone) 1151 if (id == CSSValueNone) {
1139 validPrimitive = true; 1152 validPrimitive = true;
1140 else { 1153 } else if (validUnit(value, FLength | FNonNeg)) {
1141 // Accepting valueless numbers is a quirk of the -webkit prefixed ve rsion of the property. 1154 addProperty(propId, createPrimitiveNumericValue(value), important);
1142 if (validUnit(value, FNumber | FLength | FNonNeg)) { 1155 return true;
1143 RefPtrWillBeRawPtr<CSSValue> val = createPrimitiveNumericValue(v alue);
1144 if (val) {
1145 addProperty(propId, val.release(), important);
1146 return true;
1147 }
1148 return false;
1149 }
1150 } 1156 }
1151 break; 1157 break;
1158 case CSSPropertyWebkitPerspective:
1159 if (id == CSSValueNone) {
1160 validPrimitive = true;
1161 } else if (validUnit(value, FNumber | FLength | FNonNeg)) {
1162 // Accepting valueless numbers is a quirk of the -webkit prefixed ve rsion of the property.
1163 addProperty(propId, createPrimitiveNumericValue(value), important);
1164 return true;
1165 }
1166 break;
1167 case CSSPropertyPerspectiveOrigin: {
1168 RefPtrWillBeRawPtr<CSSValueList> list = parseTransformOrigin();
1169 if (!list || list->length() == 3)
1170 return false;
1171 // This values are added to match gecko serialization.
1172 if (list->length() == 1)
1173 list->append(cssValuePool().createValue(50, CSSPrimitiveValue::CSS_P ERCENTAGE));
1174 addProperty(propId, list.release(), important);
1175 return true;
1176 }
1152 case CSSPropertyWebkitPerspectiveOrigin: 1177 case CSSPropertyWebkitPerspectiveOrigin:
1153 case CSSPropertyWebkitPerspectiveOriginX: 1178 case CSSPropertyWebkitPerspectiveOriginX:
1154 case CSSPropertyWebkitPerspectiveOriginY: { 1179 case CSSPropertyWebkitPerspectiveOriginY: {
1155 RefPtrWillBeRawPtr<CSSValue> val1; 1180 RefPtrWillBeRawPtr<CSSValue> val1;
1156 RefPtrWillBeRawPtr<CSSValue> val2; 1181 RefPtrWillBeRawPtr<CSSValue> val2;
1157 CSSPropertyID propId1, propId2; 1182 CSSPropertyID propId1, propId2;
1158 if (parsePerspectiveOrigin(propId, propId1, propId2, val1, val2)) { 1183 if (parseWebkitPerspectiveOrigin(propId, propId1, propId2, val1, val2)) {
1159 addProperty(propId1, val1.release(), important); 1184 addProperty(propId1, val1.release(), important);
1160 if (val2) 1185 if (val2)
1161 addProperty(propId2, val2.release(), important); 1186 addProperty(propId2, val2.release(), important);
1162 return true; 1187 return true;
1163 } 1188 }
1164 return false; 1189 return false;
1165 } 1190 }
1166 case CSSPropertyAnimationDelay: 1191 case CSSPropertyAnimationDelay:
1167 case CSSPropertyAnimationDirection: 1192 case CSSPropertyAnimationDirection:
1168 case CSSPropertyAnimationDuration: 1193 case CSSPropertyAnimationDuration:
(...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after
1543 case CSSPropertyTextOverflow: 1568 case CSSPropertyTextOverflow:
1544 case CSSPropertyTextOverlineMode: 1569 case CSSPropertyTextOverlineMode:
1545 case CSSPropertyTextOverlineStyle: 1570 case CSSPropertyTextOverlineStyle:
1546 case CSSPropertyTextRendering: 1571 case CSSPropertyTextRendering:
1547 case CSSPropertyTextTransform: 1572 case CSSPropertyTextTransform:
1548 case CSSPropertyTextUnderlineMode: 1573 case CSSPropertyTextUnderlineMode:
1549 case CSSPropertyTextUnderlineStyle: 1574 case CSSPropertyTextUnderlineStyle:
1550 case CSSPropertyTouchActionDelay: 1575 case CSSPropertyTouchActionDelay:
1551 case CSSPropertyVisibility: 1576 case CSSPropertyVisibility:
1552 case CSSPropertyWebkitAppearance: 1577 case CSSPropertyWebkitAppearance:
1578 case CSSPropertyBackfaceVisibility:
1553 case CSSPropertyWebkitBackfaceVisibility: 1579 case CSSPropertyWebkitBackfaceVisibility:
1554 case CSSPropertyWebkitBorderAfterStyle: 1580 case CSSPropertyWebkitBorderAfterStyle:
1555 case CSSPropertyWebkitBorderBeforeStyle: 1581 case CSSPropertyWebkitBorderBeforeStyle:
1556 case CSSPropertyWebkitBorderEndStyle: 1582 case CSSPropertyWebkitBorderEndStyle:
1557 case CSSPropertyWebkitBorderFit: 1583 case CSSPropertyWebkitBorderFit:
1558 case CSSPropertyWebkitBorderStartStyle: 1584 case CSSPropertyWebkitBorderStartStyle:
1559 case CSSPropertyWebkitBoxAlign: 1585 case CSSPropertyWebkitBoxAlign:
1560 case CSSPropertyWebkitBoxDecorationBreak: 1586 case CSSPropertyWebkitBoxDecorationBreak:
1561 case CSSPropertyWebkitBoxDirection: 1587 case CSSPropertyWebkitBoxDirection:
1562 case CSSPropertyWebkitBoxLines: 1588 case CSSPropertyWebkitBoxLines:
(...skipping 18 matching lines...) Expand all
1581 case CSSPropertyWebkitMarginBottomCollapse: 1607 case CSSPropertyWebkitMarginBottomCollapse:
1582 case CSSPropertyWebkitMarginTopCollapse: 1608 case CSSPropertyWebkitMarginTopCollapse:
1583 case CSSPropertyInternalMarqueeDirection: 1609 case CSSPropertyInternalMarqueeDirection:
1584 case CSSPropertyInternalMarqueeStyle: 1610 case CSSPropertyInternalMarqueeStyle:
1585 case CSSPropertyWebkitPrintColorAdjust: 1611 case CSSPropertyWebkitPrintColorAdjust:
1586 case CSSPropertyWebkitRtlOrdering: 1612 case CSSPropertyWebkitRtlOrdering:
1587 case CSSPropertyWebkitRubyPosition: 1613 case CSSPropertyWebkitRubyPosition:
1588 case CSSPropertyWebkitTextCombine: 1614 case CSSPropertyWebkitTextCombine:
1589 case CSSPropertyWebkitTextEmphasisPosition: 1615 case CSSPropertyWebkitTextEmphasisPosition:
1590 case CSSPropertyWebkitTextSecurity: 1616 case CSSPropertyWebkitTextSecurity:
1617 case CSSPropertyTransformStyle:
1591 case CSSPropertyWebkitTransformStyle: 1618 case CSSPropertyWebkitTransformStyle:
1592 case CSSPropertyWebkitUserDrag: 1619 case CSSPropertyWebkitUserDrag:
1593 case CSSPropertyWebkitUserModify: 1620 case CSSPropertyWebkitUserModify:
1594 case CSSPropertyWebkitUserSelect: 1621 case CSSPropertyWebkitUserSelect:
1595 case CSSPropertyWebkitWrapFlow: 1622 case CSSPropertyWebkitWrapFlow:
1596 case CSSPropertyWebkitWrapThrough: 1623 case CSSPropertyWebkitWrapThrough:
1597 case CSSPropertyWebkitWritingMode: 1624 case CSSPropertyWebkitWritingMode:
1598 case CSSPropertyWhiteSpace: 1625 case CSSPropertyWhiteSpace:
1599 case CSSPropertyWordBreak: 1626 case CSSPropertyWordBreak:
1600 case CSSPropertyWordWrap: 1627 case CSSPropertyWordWrap:
(...skipping 1480 matching lines...) Expand 10 before | Expand all | Expand 10 after
3081 return cssValuePool().createIdentifierValue(CSSValueAll); 3108 return cssValuePool().createIdentifierValue(CSSValueAll);
3082 } 3109 }
3083 if (equalIgnoringCase(value, "none")) { 3110 if (equalIgnoringCase(value, "none")) {
3084 context.commitAnimationPropertyKeyword(); 3111 context.commitAnimationPropertyKeyword();
3085 context.sawAnimationPropertyKeyword(); 3112 context.sawAnimationPropertyKeyword();
3086 return cssValuePool().createIdentifierValue(CSSValueNone); 3113 return cssValuePool().createIdentifierValue(CSSValueNone);
3087 } 3114 }
3088 return nullptr; 3115 return nullptr;
3089 } 3116 }
3090 3117
3091 bool CSSPropertyParser::parseTransformOriginShorthand(RefPtrWillBeRawPtr<CSSValu e>& value1, RefPtrWillBeRawPtr<CSSValue>& value2, RefPtrWillBeRawPtr<CSSValue>& value3) 3118 bool CSSPropertyParser::parseWebkitTransformOriginShorthand(RefPtrWillBeRawPtr<C SSValue>& value1, RefPtrWillBeRawPtr<CSSValue>& value2, RefPtrWillBeRawPtr<CSSVa lue>& value3)
3092 { 3119 {
3093 parse2ValuesFillPosition(m_valueList.get(), value1, value2); 3120 parse2ValuesFillPosition(m_valueList.get(), value1, value2);
3094 3121
3095 // now get z 3122 // now get z
3096 if (m_valueList->current()) { 3123 if (m_valueList->current()) {
3097 if (validUnit(m_valueList->current(), FLength)) { 3124 if (validUnit(m_valueList->current(), FLength)) {
3098 value3 = createPrimitiveNumericValue(m_valueList->current()); 3125 value3 = createPrimitiveNumericValue(m_valueList->current());
3099 m_valueList->next(); 3126 m_valueList->next();
3100 return true; 3127 return true;
3101 } 3128 }
(...skipping 4338 matching lines...) Expand 10 before | Expand all | Expand 10 after
7440 RefPtrWillBeRawPtr<CSSFilterValue> filterValue = parseBuiltinFilterA rguments(args, filterType); 7467 RefPtrWillBeRawPtr<CSSFilterValue> filterValue = parseBuiltinFilterA rguments(args, filterType);
7441 if (!filterValue) 7468 if (!filterValue)
7442 return nullptr; 7469 return nullptr;
7443 7470
7444 list->append(filterValue); 7471 list->append(filterValue);
7445 } 7472 }
7446 } 7473 }
7447 7474
7448 return list.release(); 7475 return list.release();
7449 } 7476 }
7477 PassRefPtrWillBeRawPtr<CSSValueList> CSSPropertyParser::parseTransformOrigin()
7478 {
7479 CSSParserValue* value = m_valueList->current();
7480 CSSValueID id = value->id;
7481 RefPtrWillBeRawPtr<CSSValue> xValue;
7482 RefPtrWillBeRawPtr<CSSValue> yValue;
7483 RefPtrWillBeRawPtr<CSSValue> zValue;
7484 if (id == CSSValueLeft || id == CSSValueRight) {
7485 xValue = cssValuePool().createIdentifierValue(id);
7486 } else if(id == CSSValueTop || id == CSSValueBottom) {
7487 yValue = cssValuePool().createIdentifierValue(id);
7488 } else if (id == CSSValueCenter) {
7489 // Unresolved as to whether this is X or Y.
7490 } else if (validUnit(value, FPercent | FLength)) {
7491 xValue = createPrimitiveNumericValue(value);
7492 } else {
7493 return nullptr;
7494 }
7450 7495
7451 bool CSSPropertyParser::parseTransformOrigin(CSSPropertyID propId, CSSPropertyID & propId1, CSSPropertyID& propId2, CSSPropertyID& propId3, RefPtrWillBeRawPtr<CS SValue>& value, RefPtrWillBeRawPtr<CSSValue>& value2, RefPtrWillBeRawPtr<CSSValu e>& value3) 7496 if ((value = m_valueList->next())) {
7497 id = value->id;
7498 if (!xValue && (id == CSSValueLeft || id == CSSValueRight)) {
7499 xValue = cssValuePool().createIdentifierValue(id);
7500 } else if (!yValue && (id == CSSValueTop || id == CSSValueBottom)) {
7501 yValue = cssValuePool().createIdentifierValue(id);
7502 } else if (id == CSSValueCenter) {
7503 // Resolved below.
7504 } else if (!yValue && validUnit(value, FPercent | FLength)) {
7505 yValue = createPrimitiveNumericValue(value);
7506 } else {
7507 return nullptr;
7508 }
7509
7510 // If X or Y have not been resolved, they must be center.
7511 if (!xValue)
7512 xValue = cssValuePool().createIdentifierValue(CSSValueCenter);
7513 if (!yValue)
7514 yValue = cssValuePool().createIdentifierValue(CSSValueCenter);
7515
7516 if ((value = m_valueList->next())) {
7517 if (!validUnit(value, FLength))
7518 return nullptr;
7519 zValue = createPrimitiveNumericValue(value);
7520
7521 if ((value = m_valueList->next()))
7522 return nullptr;
7523 }
7524 } else if (!xValue) {
7525 if (yValue) {
7526 xValue = cssValuePool().createValue(50, CSSPrimitiveValue::CSS_PERCE NTAGE);
Julien - ping for review 2014/03/21 03:57:25 The code is not symmetrical for this case: I would
dstockwell 2014/03/24 21:40:56 This method fills outputs the x,y,z parts in order
7527 } else {
7528 xValue = cssValuePool().createIdentifierValue(CSSValueCenter);
7529 }
7530 }
7531
7532 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated() ;
7533 list->append(xValue.release());
7534 if (yValue)
7535 list->append(yValue.release());
7536 if (zValue)
7537 list->append(zValue.release());
7538 return list.release();
7539 }
7540
7541 bool CSSPropertyParser::parseWebkitTransformOrigin(CSSPropertyID propId, CSSProp ertyID& propId1, CSSPropertyID& propId2, CSSPropertyID& propId3, RefPtrWillBeRaw Ptr<CSSValue>& value, RefPtrWillBeRawPtr<CSSValue>& value2, RefPtrWillBeRawPtr<C SSValue>& value3)
7452 { 7542 {
7453 propId1 = propId; 7543 propId1 = propId;
7454 propId2 = propId; 7544 propId2 = propId;
7455 propId3 = propId; 7545 propId3 = propId;
7456 if (propId == CSSPropertyWebkitTransformOrigin) { 7546 if (propId == CSSPropertyWebkitTransformOrigin) {
7457 propId1 = CSSPropertyWebkitTransformOriginX; 7547 propId1 = CSSPropertyWebkitTransformOriginX;
7458 propId2 = CSSPropertyWebkitTransformOriginY; 7548 propId2 = CSSPropertyWebkitTransformOriginY;
7459 propId3 = CSSPropertyWebkitTransformOriginZ; 7549 propId3 = CSSPropertyWebkitTransformOriginZ;
7460 } 7550 }
7461 7551
7462 switch (propId) { 7552 switch (propId) {
7463 case CSSPropertyWebkitTransformOrigin: 7553 case CSSPropertyWebkitTransformOrigin:
7464 if (!parseTransformOriginShorthand(value, value2, value3)) 7554 if (!parseWebkitTransformOriginShorthand(value, value2, value3))
7465 return false; 7555 return false;
7466 // parseTransformOriginShorthand advances the m_valueList pointer 7556 // parseWebkitTransformOriginShorthand advances the m_valueList poin ter
7467 break; 7557 break;
7468 case CSSPropertyWebkitTransformOriginX: { 7558 case CSSPropertyWebkitTransformOriginX: {
7469 value = parseFillPositionX(m_valueList.get()); 7559 value = parseFillPositionX(m_valueList.get());
7470 if (value) 7560 if (value)
7471 m_valueList->next(); 7561 m_valueList->next();
7472 break; 7562 break;
7473 } 7563 }
7474 case CSSPropertyWebkitTransformOriginY: { 7564 case CSSPropertyWebkitTransformOriginY: {
7475 value = parseFillPositionY(m_valueList.get()); 7565 value = parseFillPositionY(m_valueList.get());
7476 if (value) 7566 if (value)
7477 m_valueList->next(); 7567 m_valueList->next();
7478 break; 7568 break;
7479 } 7569 }
7480 case CSSPropertyWebkitTransformOriginZ: { 7570 case CSSPropertyWebkitTransformOriginZ: {
7481 if (validUnit(m_valueList->current(), FLength)) 7571 if (validUnit(m_valueList->current(), FLength))
7482 value = createPrimitiveNumericValue(m_valueList->current()); 7572 value = createPrimitiveNumericValue(m_valueList->current());
7483 if (value) 7573 if (value)
7484 m_valueList->next(); 7574 m_valueList->next();
7485 break; 7575 break;
7486 } 7576 }
7487 default: 7577 default:
7488 ASSERT_NOT_REACHED(); 7578 ASSERT_NOT_REACHED();
7489 return false; 7579 return false;
7490 } 7580 }
7491 7581
7492 return value; 7582 return value;
7493 } 7583 }
7494 7584
7495 bool CSSPropertyParser::parsePerspectiveOrigin(CSSPropertyID propId, CSSProperty ID& propId1, CSSPropertyID& propId2, RefPtrWillBeRawPtr<CSSValue>& value, RefPtr WillBeRawPtr<CSSValue>& value2) 7585 bool CSSPropertyParser::parseWebkitPerspectiveOrigin(CSSPropertyID propId, CSSPr opertyID& propId1, CSSPropertyID& propId2, RefPtrWillBeRawPtr<CSSValue>& value, RefPtrWillBeRawPtr<CSSValue>& value2)
7496 { 7586 {
7497 propId1 = propId; 7587 propId1 = propId;
7498 propId2 = propId; 7588 propId2 = propId;
7499 if (propId == CSSPropertyWebkitPerspectiveOrigin) { 7589 if (propId == CSSPropertyWebkitPerspectiveOrigin) {
7500 propId1 = CSSPropertyWebkitPerspectiveOriginX; 7590 propId1 = CSSPropertyWebkitPerspectiveOriginX;
7501 propId2 = CSSPropertyWebkitPerspectiveOriginY; 7591 propId2 = CSSPropertyWebkitPerspectiveOriginY;
7502 } 7592 }
7503 7593
7504 switch (propId) { 7594 switch (propId) {
7505 case CSSPropertyWebkitPerspectiveOrigin: 7595 case CSSPropertyWebkitPerspectiveOrigin:
(...skipping 949 matching lines...) Expand 10 before | Expand all | Expand 10 after
8455 parsedValues->append(CSSPrimitiveValue::createIdentifier(CSSValueFill)); 8545 parsedValues->append(CSSPrimitiveValue::createIdentifier(CSSValueFill));
8456 if (!seenStroke) 8546 if (!seenStroke)
8457 parsedValues->append(CSSPrimitiveValue::createIdentifier(CSSValueStroke) ); 8547 parsedValues->append(CSSPrimitiveValue::createIdentifier(CSSValueStroke) );
8458 if (!seenMarkers) 8548 if (!seenMarkers)
8459 parsedValues->append(CSSPrimitiveValue::createIdentifier(CSSValueMarkers )); 8549 parsedValues->append(CSSPrimitiveValue::createIdentifier(CSSValueMarkers ));
8460 8550
8461 return parsedValues.release(); 8551 return parsedValues.release();
8462 } 8552 }
8463 8553
8464 } // namespace WebCore 8554 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698