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 411 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
422 /* nobreak */ | 422 /* nobreak */ |
423 case CSSPropertyBackgroundColor: // <color> | inherit | 423 case CSSPropertyBackgroundColor: // <color> | inherit |
424 case CSSPropertyBorderTopColor: // <color> | inherit | 424 case CSSPropertyBorderTopColor: // <color> | inherit |
425 case CSSPropertyBorderRightColor: | 425 case CSSPropertyBorderRightColor: |
426 case CSSPropertyBorderBottomColor: | 426 case CSSPropertyBorderBottomColor: |
427 case CSSPropertyBorderLeftColor: | 427 case CSSPropertyBorderLeftColor: |
428 case CSSPropertyWebkitBorderStartColor: | 428 case CSSPropertyWebkitBorderStartColor: |
429 case CSSPropertyWebkitBorderEndColor: | 429 case CSSPropertyWebkitBorderEndColor: |
430 case CSSPropertyWebkitBorderBeforeColor: | 430 case CSSPropertyWebkitBorderBeforeColor: |
431 case CSSPropertyWebkitBorderAfterColor: | 431 case CSSPropertyWebkitBorderAfterColor: |
432 case CSSPropertyTextDecorationColor: // CSS3 text decoration colors | |
433 case CSSPropertyWebkitColumnRuleColor: | 432 case CSSPropertyWebkitColumnRuleColor: |
434 case CSSPropertyWebkitTextEmphasisColor: | 433 case CSSPropertyWebkitTextEmphasisColor: |
435 case CSSPropertyWebkitTextStrokeColor: | 434 case CSSPropertyWebkitTextStrokeColor: |
436 ASSERT(propId != CSSPropertyTextDecorationColor || RuntimeEnabledFeature
s::css3TextDecorationsEnabled()); | |
437 parsedValue = parseColor(m_valueList->current(), acceptQuirkyColors(prop
Id)); | 435 parsedValue = parseColor(m_valueList->current(), acceptQuirkyColors(prop
Id)); |
438 if (parsedValue) | 436 if (parsedValue) |
439 m_valueList->next(); | 437 m_valueList->next(); |
440 break; | 438 break; |
441 | 439 |
442 case CSSPropertyCursor: { | 440 case CSSPropertyCursor: { |
443 // Grammar defined by CSS3 UI and modified by CSS4 images: | 441 // Grammar defined by CSS3 UI and modified by CSS4 images: |
444 // [ [<image> [<x> <y>]?,]* | 442 // [ [<image> [<x> <y>]?,]* |
445 // [ auto | crosshair | default | pointer | progress | move | e-resize |
ne-resize | | 443 // [ auto | crosshair | default | pointer | progress | move | e-resize |
ne-resize | |
446 // nw-resize | n-resize | se-resize | sw-resize | s-resize | w-resize |
ew-resize | | 444 // nw-resize | n-resize | se-resize | sw-resize | s-resize | w-resize |
ew-resize | |
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
651 case CSSPropertyWebkitMarginStart: | 649 case CSSPropertyWebkitMarginStart: |
652 case CSSPropertyWebkitMarginEnd: | 650 case CSSPropertyWebkitMarginEnd: |
653 case CSSPropertyWebkitMarginBefore: | 651 case CSSPropertyWebkitMarginBefore: |
654 case CSSPropertyWebkitMarginAfter: | 652 case CSSPropertyWebkitMarginAfter: |
655 if (id == CSSValueAuto) | 653 if (id == CSSValueAuto) |
656 validPrimitive = true; | 654 validPrimitive = true; |
657 else | 655 else |
658 validPrimitive = validUnit(value, FLength | FPercent | unitless); | 656 validPrimitive = validUnit(value, FLength | FPercent | unitless); |
659 break; | 657 break; |
660 | 658 |
661 case CSSPropertyTextDecoration: | |
662 // Fall through 'text-decoration-line' parsing if CSS 3 Text Decoration | |
663 // is disabled to match CSS 2.1 rules for parsing 'text-decoration'. | |
664 if (RuntimeEnabledFeatures::css3TextDecorationsEnabled()) { | |
665 // [ <text-decoration-line> || <text-decoration-style> || <text-deco
ration-color> ] | inherit | |
666 return parseShorthand(CSSPropertyTextDecoration, textDecorationShort
hand(), important); | |
667 } | |
668 case CSSPropertyWebkitTextDecorationsInEffect: | |
669 case CSSPropertyTextDecorationLine: | |
670 // none | [ underline || overline || line-through || blink ] | inherit | |
671 parsedValue = parseTextDecoration(); | |
672 break; | |
673 | |
674 case CSSPropertyTextUnderlinePosition: | 659 case CSSPropertyTextUnderlinePosition: |
675 // auto | [ under || [ left | right ] ], but we only support auto | unde
r for now | 660 // auto | [ under || [ left | right ] ], but we only support auto | unde
r for now |
676 ASSERT(RuntimeEnabledFeatures::css3TextDecorationsEnabled()); | 661 ASSERT(RuntimeEnabledFeatures::css3TextDecorationsEnabled()); |
677 validPrimitive = (id == CSSValueAuto || id == CSSValueUnder); | 662 validPrimitive = (id == CSSValueAuto || id == CSSValueUnder); |
678 break; | 663 break; |
679 | 664 |
680 case CSSPropertySrc: | 665 case CSSPropertySrc: |
681 case CSSPropertyUnicodeRange: | 666 case CSSPropertyUnicodeRange: |
682 /* @font-face only descriptors */ | 667 /* @font-face only descriptors */ |
683 break; | 668 break; |
(...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1206 case CSSPropertyOrphans: | 1191 case CSSPropertyOrphans: |
1207 case CSSPropertyWidows: | 1192 case CSSPropertyWidows: |
1208 case CSSPropertyWebkitTapHighlightColor: | 1193 case CSSPropertyWebkitTapHighlightColor: |
1209 case CSSPropertyWebkitTextFillColor: | 1194 case CSSPropertyWebkitTextFillColor: |
1210 case CSSPropertyColor: | 1195 case CSSPropertyColor: |
1211 case CSSPropertyZIndex: | 1196 case CSSPropertyZIndex: |
1212 case CSSPropertyTextShadow: | 1197 case CSSPropertyTextShadow: |
1213 case CSSPropertyBoxShadow: | 1198 case CSSPropertyBoxShadow: |
1214 case CSSPropertyWebkitFilter: | 1199 case CSSPropertyWebkitFilter: |
1215 case CSSPropertyBackdropFilter: | 1200 case CSSPropertyBackdropFilter: |
| 1201 case CSSPropertyTextDecorationColor: |
| 1202 case CSSPropertyWebkitTextDecorationsInEffect: |
| 1203 case CSSPropertyTextDecorationLine: |
| 1204 case CSSPropertyTextDecoration: |
1216 validPrimitive = false; | 1205 validPrimitive = false; |
1217 break; | 1206 break; |
1218 | 1207 |
1219 case CSSPropertyScrollSnapPointsX: | 1208 case CSSPropertyScrollSnapPointsX: |
1220 case CSSPropertyScrollSnapPointsY: | 1209 case CSSPropertyScrollSnapPointsY: |
1221 parsedValue = parseScrollSnapPoints(); | 1210 parsedValue = parseScrollSnapPoints(); |
1222 break; | 1211 break; |
1223 case CSSPropertyScrollSnapCoordinate: | 1212 case CSSPropertyScrollSnapCoordinate: |
1224 parsedValue = parseScrollSnapCoordinate(); | 1213 parsedValue = parseScrollSnapCoordinate(); |
1225 break; | 1214 break; |
(...skipping 4163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5389 | 5378 |
5390 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated()
; | 5379 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated()
; |
5391 list->append(xValue.release()); | 5380 list->append(xValue.release()); |
5392 if (yValue) | 5381 if (yValue) |
5393 list->append(yValue.release()); | 5382 list->append(yValue.release()); |
5394 if (zValue) | 5383 if (zValue) |
5395 list->append(zValue.release()); | 5384 list->append(zValue.release()); |
5396 return list.release(); | 5385 return list.release(); |
5397 } | 5386 } |
5398 | 5387 |
5399 PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseTextDecoration() | |
5400 { | |
5401 CSSParserValue* value = m_valueList->current(); | |
5402 if (value && value->id == CSSValueNone) { | |
5403 m_valueList->next(); | |
5404 return cssValuePool().createIdentifierValue(CSSValueNone); | |
5405 } | |
5406 | |
5407 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated()
; | |
5408 bool isValid = true; | |
5409 while (isValid && value) { | |
5410 switch (value->id) { | |
5411 case CSSValueUnderline: | |
5412 case CSSValueOverline: | |
5413 case CSSValueLineThrough: | |
5414 case CSSValueBlink: | |
5415 // TODO(timloh): This will incorrectly accept "blink blink" | |
5416 list->append(cssValuePool().createIdentifierValue(value->id)); | |
5417 break; | |
5418 default: | |
5419 isValid = false; | |
5420 break; | |
5421 } | |
5422 if (isValid) | |
5423 value = m_valueList->next(); | |
5424 } | |
5425 | |
5426 // Values are either valid or in shorthand scope. | |
5427 if (list->length()) | |
5428 return list.release(); | |
5429 return nullptr; | |
5430 } | |
5431 | |
5432 PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseTextEmphasisStyle() | 5388 PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseTextEmphasisStyle() |
5433 { | 5389 { |
5434 RefPtrWillBeRawPtr<CSSPrimitiveValue> fill = nullptr; | 5390 RefPtrWillBeRawPtr<CSSPrimitiveValue> fill = nullptr; |
5435 RefPtrWillBeRawPtr<CSSPrimitiveValue> shape = nullptr; | 5391 RefPtrWillBeRawPtr<CSSPrimitiveValue> shape = nullptr; |
5436 | 5392 |
5437 for (CSSParserValue* value = m_valueList->current(); value; value = m_valueL
ist->next()) { | 5393 for (CSSParserValue* value = m_valueList->current(); value; value = m_valueL
ist->next()) { |
5438 if (value->m_unit == CSSParserValue::String) { | 5394 if (value->m_unit == CSSParserValue::String) { |
5439 if (fill || shape) | 5395 if (fill || shape) |
5440 return nullptr; | 5396 return nullptr; |
5441 m_valueList->next(); | 5397 m_valueList->next(); |
(...skipping 606 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6048 } | 6004 } |
6049 } | 6005 } |
6050 | 6006 |
6051 if (!list->length()) | 6007 if (!list->length()) |
6052 return nullptr; | 6008 return nullptr; |
6053 | 6009 |
6054 return list.release(); | 6010 return list.release(); |
6055 } | 6011 } |
6056 | 6012 |
6057 } // namespace blink | 6013 } // namespace blink |
OLD | NEW |