| 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 365 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 376 | 376 |
| 377 /* Start of supported CSS properties with validation. This is needed for par
seShorthand to work | 377 /* Start of supported CSS properties with validation. This is needed for par
seShorthand to work |
| 378 * correctly and allows optimization in blink::applyRule(..) | 378 * correctly and allows optimization in blink::applyRule(..) |
| 379 */ | 379 */ |
| 380 | 380 |
| 381 case CSSPropertyBackgroundColor: // <color> | inherit | 381 case CSSPropertyBackgroundColor: // <color> | inherit |
| 382 case CSSPropertyBorderTopColor: // <color> | inherit | 382 case CSSPropertyBorderTopColor: // <color> | inherit |
| 383 case CSSPropertyBorderRightColor: | 383 case CSSPropertyBorderRightColor: |
| 384 case CSSPropertyBorderBottomColor: | 384 case CSSPropertyBorderBottomColor: |
| 385 case CSSPropertyBorderLeftColor: | 385 case CSSPropertyBorderLeftColor: |
| 386 case CSSPropertyWebkitColumnRuleColor: | 386 parsedValue = parseColor(m_valueList->current(), inQuirksMode() && (!inS
horthand() || m_currentShorthand == CSSPropertyBorderColor)); |
| 387 parsedValue = parseColor(m_valueList->current(), acceptQuirkyColors(prop
Id)); | |
| 388 if (parsedValue) | 387 if (parsedValue) |
| 389 m_valueList->next(); | 388 m_valueList->next(); |
| 390 break; | 389 break; |
| 391 | 390 |
| 392 case CSSPropertyCursor: { | 391 case CSSPropertyCursor: { |
| 393 // Grammar defined by CSS3 UI and modified by CSS4 images: | 392 // Grammar defined by CSS3 UI and modified by CSS4 images: |
| 394 // [ [<image> [<x> <y>]?,]* | 393 // [ [<image> [<x> <y>]?,]* |
| 395 // [ auto | crosshair | default | pointer | progress | move | e-resize |
ne-resize | | 394 // [ auto | crosshair | default | pointer | progress | move | e-resize |
ne-resize | |
| 396 // nw-resize | n-resize | se-resize | sw-resize | s-resize | w-resize |
ew-resize | | 395 // nw-resize | n-resize | se-resize | sw-resize | s-resize | w-resize |
ew-resize | |
| 397 // ns-resize | nesw-resize | nwse-resize | col-resize | row-resize | tex
t | wait | help | | 396 // ns-resize | nesw-resize | nwse-resize | col-resize | row-resize | tex
t | wait | help | |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 544 m_valueList->next(); | 543 m_valueList->next(); |
| 545 } | 544 } |
| 546 break; | 545 break; |
| 547 | 546 |
| 548 case CSSPropertyBorderTopWidth: //// <border-width> | inherit | 547 case CSSPropertyBorderTopWidth: //// <border-width> | inherit |
| 549 case CSSPropertyBorderRightWidth: // Which is defined as | 548 case CSSPropertyBorderRightWidth: // Which is defined as |
| 550 case CSSPropertyBorderBottomWidth: // thin | medium | thick | <length> | 549 case CSSPropertyBorderBottomWidth: // thin | medium | thick | <length> |
| 551 case CSSPropertyBorderLeftWidth: | 550 case CSSPropertyBorderLeftWidth: |
| 552 if (!inShorthand() || m_currentShorthand == CSSPropertyBorderWidth) | 551 if (!inShorthand() || m_currentShorthand == CSSPropertyBorderWidth) |
| 553 unitless = FUnitlessQuirk; | 552 unitless = FUnitlessQuirk; |
| 554 // fall through | |
| 555 case CSSPropertyWebkitColumnRuleWidth: | |
| 556 if (id == CSSValueThin || id == CSSValueMedium || id == CSSValueThick) | 553 if (id == CSSValueThin || id == CSSValueMedium || id == CSSValueThick) |
| 557 validPrimitive = true; | 554 validPrimitive = true; |
| 558 else | 555 else |
| 559 validPrimitive = validUnit(value, FLength | FNonNeg | unitless); | 556 validPrimitive = validUnit(value, FLength | FNonNeg | unitless); |
| 560 break; | 557 break; |
| 561 | 558 |
| 562 case CSSPropertyVerticalAlign: | 559 case CSSPropertyVerticalAlign: |
| 563 // baseline | sub | super | top | text-top | middle | bottom | text-bott
om | | 560 // baseline | sub | super | top | text-top | middle | bottom | text-bott
om | |
| 564 // <percentage> | <length> | inherit | 561 // <percentage> | <length> | inherit |
| 565 | 562 |
| (...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 897 // <color>{1,4} | inherit | 894 // <color>{1,4} | inherit |
| 898 return parse4Values(propId, borderColorShorthand().properties(), importa
nt); | 895 return parse4Values(propId, borderColorShorthand().properties(), importa
nt); |
| 899 case CSSPropertyBorderWidth: | 896 case CSSPropertyBorderWidth: |
| 900 // <border-width>{1,4} | inherit | 897 // <border-width>{1,4} | inherit |
| 901 return parse4Values(propId, borderWidthShorthand().properties(), importa
nt); | 898 return parse4Values(propId, borderWidthShorthand().properties(), importa
nt); |
| 902 case CSSPropertyBorderStyle: | 899 case CSSPropertyBorderStyle: |
| 903 // <border-style>{1,4} | inherit | 900 // <border-style>{1,4} | inherit |
| 904 return parse4Values(propId, borderStyleShorthand().properties(), importa
nt); | 901 return parse4Values(propId, borderStyleShorthand().properties(), importa
nt); |
| 905 case CSSPropertyListStyle: | 902 case CSSPropertyListStyle: |
| 906 return parseShorthand(propId, listStyleShorthand(), important); | 903 return parseShorthand(propId, listStyleShorthand(), important); |
| 907 case CSSPropertyWebkitColumnRule: | |
| 908 return parseShorthand(propId, webkitColumnRuleShorthand(), important); | |
| 909 case CSSPropertyInvalid: | 904 case CSSPropertyInvalid: |
| 910 return false; | 905 return false; |
| 911 case CSSPropertyWebkitClipPath: | 906 case CSSPropertyWebkitClipPath: |
| 912 if (id == CSSValueNone) { | 907 if (id == CSSValueNone) { |
| 913 validPrimitive = true; | 908 validPrimitive = true; |
| 914 } else if (value->m_unit == CSSParserValue::Function) { | 909 } else if (value->m_unit == CSSParserValue::Function) { |
| 915 parsedValue = parseBasicShape(); | 910 parsedValue = parseBasicShape(); |
| 916 } else if (value->m_unit == CSSParserValue::URI) { | 911 } else if (value->m_unit == CSSParserValue::URI) { |
| 917 parsedValue = CSSURIValue::create(value->string); | 912 parsedValue = CSSURIValue::create(value->string); |
| 918 addProperty(propId, parsedValue.release(), important); | 913 addProperty(propId, parsedValue.release(), important); |
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1087 case CSSPropertyMarker: | 1082 case CSSPropertyMarker: |
| 1088 case CSSPropertyMarkerStart: | 1083 case CSSPropertyMarkerStart: |
| 1089 case CSSPropertyMarkerMid: | 1084 case CSSPropertyMarkerMid: |
| 1090 case CSSPropertyMarkerEnd: | 1085 case CSSPropertyMarkerEnd: |
| 1091 case CSSPropertyFlex: | 1086 case CSSPropertyFlex: |
| 1092 case CSSPropertyFlexBasis: | 1087 case CSSPropertyFlexBasis: |
| 1093 case CSSPropertyFlexGrow: | 1088 case CSSPropertyFlexGrow: |
| 1094 case CSSPropertyFlexShrink: | 1089 case CSSPropertyFlexShrink: |
| 1095 case CSSPropertyFlexFlow: | 1090 case CSSPropertyFlexFlow: |
| 1096 case CSSPropertyStrokeDasharray: | 1091 case CSSPropertyStrokeDasharray: |
| 1092 case CSSPropertyWebkitColumnRule: |
| 1093 case CSSPropertyWebkitColumnRuleColor: |
| 1094 case CSSPropertyWebkitColumnRuleWidth: |
| 1097 validPrimitive = false; | 1095 validPrimitive = false; |
| 1098 break; | 1096 break; |
| 1099 | 1097 |
| 1100 case CSSPropertyScrollSnapPointsX: | 1098 case CSSPropertyScrollSnapPointsX: |
| 1101 case CSSPropertyScrollSnapPointsY: | 1099 case CSSPropertyScrollSnapPointsY: |
| 1102 parsedValue = parseScrollSnapPoints(); | 1100 parsedValue = parseScrollSnapPoints(); |
| 1103 break; | 1101 break; |
| 1104 case CSSPropertyScrollSnapCoordinate: | 1102 case CSSPropertyScrollSnapCoordinate: |
| 1105 parsedValue = parseScrollSnapCoordinate(); | 1103 parsedValue = parseScrollSnapCoordinate(); |
| 1106 break; | 1104 break; |
| (...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1521 return nullptr; | 1519 return nullptr; |
| 1522 | 1520 |
| 1523 if (m_context.isHTMLDocument()) | 1521 if (m_context.isHTMLDocument()) |
| 1524 attrName = attrName.lower(); | 1522 attrName = attrName.lower(); |
| 1525 | 1523 |
| 1526 RefPtrWillBeRawPtr<CSSFunctionValue> attrValue = CSSFunctionValue::create(CS
SValueAttr); | 1524 RefPtrWillBeRawPtr<CSSFunctionValue> attrValue = CSSFunctionValue::create(CS
SValueAttr); |
| 1527 attrValue->append(CSSCustomIdentValue::create(attrName)); | 1525 attrValue->append(CSSCustomIdentValue::create(attrName)); |
| 1528 return attrValue.release(); | 1526 return attrValue.release(); |
| 1529 } | 1527 } |
| 1530 | 1528 |
| 1531 bool CSSPropertyParser::acceptQuirkyColors(CSSPropertyID propertyId) const | |
| 1532 { | |
| 1533 if (!inQuirksMode()) | |
| 1534 return false; | |
| 1535 switch (propertyId) { | |
| 1536 case CSSPropertyBackgroundColor: | |
| 1537 case CSSPropertyBorderBottomColor: | |
| 1538 case CSSPropertyBorderLeftColor: | |
| 1539 case CSSPropertyBorderRightColor: | |
| 1540 case CSSPropertyBorderTopColor: | |
| 1541 return !inShorthand() || m_currentShorthand == CSSPropertyBorderColor; | |
| 1542 case CSSPropertyColor: | |
| 1543 return true; | |
| 1544 default: | |
| 1545 break; | |
| 1546 } | |
| 1547 return false; | |
| 1548 } | |
| 1549 | |
| 1550 bool CSSPropertyParser::isColorKeyword(CSSValueID id) | 1529 bool CSSPropertyParser::isColorKeyword(CSSValueID id) |
| 1551 { | 1530 { |
| 1552 // Named colors and color keywords: | 1531 // Named colors and color keywords: |
| 1553 // | 1532 // |
| 1554 // <named-color> | 1533 // <named-color> |
| 1555 // 'aqua', 'black', 'blue', ..., 'yellow' (CSS3: "basic color keywords") | 1534 // 'aqua', 'black', 'blue', ..., 'yellow' (CSS3: "basic color keywords") |
| 1556 // 'aliceblue', ..., 'yellowgreen' (CSS3: "extended color keywords"
) | 1535 // 'aliceblue', ..., 'yellowgreen' (CSS3: "extended color keywords"
) |
| 1557 // 'transparent' | 1536 // 'transparent' |
| 1558 // | 1537 // |
| 1559 // 'currentcolor' | 1538 // 'currentcolor' |
| (...skipping 3843 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5403 m_valueList->next(); | 5382 m_valueList->next(); |
| 5404 } | 5383 } |
| 5405 if (!parsedValue || (m_valueList->current() && !inShorthand())) | 5384 if (!parsedValue || (m_valueList->current() && !inShorthand())) |
| 5406 return false; | 5385 return false; |
| 5407 | 5386 |
| 5408 addProperty(propId, parsedValue.release(), important); | 5387 addProperty(propId, parsedValue.release(), important); |
| 5409 return true; | 5388 return true; |
| 5410 } | 5389 } |
| 5411 | 5390 |
| 5412 } // namespace blink | 5391 } // namespace blink |
| OLD | NEW |