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

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

Issue 1225403010: Reduce usage of CSSParserValueList::size (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fix warning Created 5 years, 4 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
« no previous file with comments | « Source/core/css/parser/CSSPropertyParser.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 446 matching lines...) Expand 10 before | Expand all | Expand 10 after
457 return false; 457 return false;
458 addExpandedPropertyForValue(propId, cssValuePool().createExplicitInitial Value(), important); 458 addExpandedPropertyForValue(propId, cssValuePool().createExplicitInitial Value(), important);
459 return true; 459 return true;
460 } else if (id == CSSValueUnset) { 460 } else if (id == CSSValueUnset) {
461 if (m_valueList->size() != 1) 461 if (m_valueList->size() != 1)
462 return false; 462 return false;
463 addExpandedPropertyForValue(propId, cssValuePool().createUnsetValue(), i mportant); 463 addExpandedPropertyForValue(propId, cssValuePool().createUnsetValue(), i mportant);
464 return true; 464 return true;
465 } 465 }
466 466
467 int num = inShorthand() ? 1 : m_valueList->size();
468
469 if (CSSParserFastPaths::isKeywordPropertyID(propId)) { 467 if (CSSParserFastPaths::isKeywordPropertyID(propId)) {
470 if (!CSSParserFastPaths::isValidKeywordPropertyAndValue(propId, id)) 468 if (!CSSParserFastPaths::isValidKeywordPropertyAndValue(propId, id))
471 return false; 469 return false;
472 if (m_valueList->next() && !inShorthand()) 470 if (m_valueList->next() && !inShorthand())
473 return false; 471 return false;
474 addProperty(propId, cssValuePool().createIdentifierValue(id), important) ; 472 addProperty(propId, cssValuePool().createIdentifierValue(id), important) ;
475 return true; 473 return true;
476 } 474 }
477 475
478 bool validPrimitive = false; 476 bool validPrimitive = false;
(...skipping 20 matching lines...) Expand all
499 validPrimitive = true; 497 validPrimitive = true;
500 else if (value->m_unit == CSSParserValue::Function) 498 else if (value->m_unit == CSSParserValue::Function)
501 parsedValue = parseClipShape(); 499 parsedValue = parseClipShape();
502 break; 500 break;
503 501
504 /* Start of supported CSS properties with validation. This is needed for par seShorthand to work 502 /* Start of supported CSS properties with validation. This is needed for par seShorthand to work
505 * correctly and allows optimization in blink::applyRule(..) 503 * correctly and allows optimization in blink::applyRule(..)
506 */ 504 */
507 case CSSPropertyOverflow: { 505 case CSSPropertyOverflow: {
508 ShorthandScope scope(this, propId); 506 ShorthandScope scope(this, propId);
509 if (num != 1 || !parseValue(CSSPropertyOverflowY, important)) 507 if (!parseValue(CSSPropertyOverflowY, important) || m_valueList->current ())
510 return false; 508 return false;
511 509
512 RefPtrWillBeRawPtr<CSSValue> overflowXValue = nullptr; 510 RefPtrWillBeRawPtr<CSSValue> overflowXValue = nullptr;
513 511
514 // FIXME: -webkit-paged-x or -webkit-paged-y only apply to overflow-y. I f this value has been 512 // FIXME: -webkit-paged-x or -webkit-paged-y only apply to overflow-y. I f this value has been
515 // set using the shorthand, then for now overflow-x will default to auto , but once we implement 513 // set using the shorthand, then for now overflow-x will default to auto , but once we implement
516 // pagination controls, it should default to hidden. If the overflow-y v alue is anything but 514 // pagination controls, it should default to hidden. If the overflow-y v alue is anything but
517 // paged-x or paged-y, then overflow-x and overflow-y should have the sa me value. 515 // paged-x or paged-y, then overflow-x and overflow-y should have the sa me value.
518 if (id == CSSValueWebkitPagedX || id == CSSValueWebkitPagedY) 516 if (id == CSSValueWebkitPagedX || id == CSSValueWebkitPagedY)
519 overflowXValue = cssValuePool().createIdentifierValue(CSSValueAuto); 517 overflowXValue = cssValuePool().createIdentifierValue(CSSValueAuto);
520 else 518 else
521 overflowXValue = m_parsedProperties.last().value(); 519 overflowXValue = m_parsedProperties.last().value();
522 addProperty(CSSPropertyOverflowX, overflowXValue.release(), important); 520 addProperty(CSSPropertyOverflowX, overflowXValue.release(), important);
523 return true; 521 return true;
524 } 522 }
525 523
526 case CSSPropertyTextAlign: 524 case CSSPropertyTextAlign:
527 // left | right | center | justify | -webkit-left | -webkit-right | -web kit-center | -webkit-match-parent 525 // left | right | center | justify | -webkit-left | -webkit-right | -web kit-center | -webkit-match-parent
528 // | start | end | <string> | inherit | -webkit-auto (converted to start ) 526 // | start | end | <string> | inherit | -webkit-auto (converted to start )
529 // FIXME: <string> not supported right now 527 // FIXME: <string> not supported right now
530 if ((id >= CSSValueWebkitAuto && id <= CSSValueWebkitMatchParent) || id == CSSValueStart || id == CSSValueEnd) { 528 if ((id >= CSSValueWebkitAuto && id <= CSSValueWebkitMatchParent) || id == CSSValueStart || id == CSSValueEnd) {
531 validPrimitive = true; 529 validPrimitive = true;
532 } 530 }
533 break; 531 break;
534 532
535 case CSSPropertyFontWeight: { // normal | bold | bolder | lighter | 100 | 2 00 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit 533 case CSSPropertyFontWeight: // normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit
536 if (m_valueList->size() != 1) 534 return parseFontWeight(important) && !m_valueList->next();
537 return false;
538 return parseFontWeight(important);
539 }
540 535
541 case CSSPropertyBorderSpacing: { 536 case CSSPropertyBorderSpacing: {
542 if (num == 1) { 537 ShorthandScope scope(this, CSSPropertyBorderSpacing);
543 ShorthandScope scope(this, CSSPropertyBorderSpacing); 538 if (!parseValue(CSSPropertyWebkitBorderHorizontalSpacing, important))
544 if (!parseValue(CSSPropertyWebkitBorderHorizontalSpacing, important) ) 539 return false;
545 return false; 540 if (!m_valueList->current()) {
546 CSSValue* value = m_parsedProperties.last().value(); 541 CSSValue* value = m_parsedProperties.last().value();
547 addProperty(CSSPropertyWebkitBorderVerticalSpacing, value, important ); 542 addProperty(CSSPropertyWebkitBorderVerticalSpacing, value, important );
548 return true; 543 return true;
549 } 544 }
550 else if (num == 2) { 545 if (!parseValue(CSSPropertyWebkitBorderVerticalSpacing, important))
551 ShorthandScope scope(this, CSSPropertyBorderSpacing); 546 return false;
552 if (!parseValue(CSSPropertyWebkitBorderHorizontalSpacing, important) || !parseValue(CSSPropertyWebkitBorderVerticalSpacing, important)) 547 return !m_valueList->current();
553 return false;
554 return true;
555 }
556 return false;
557 } 548 }
558 case CSSPropertyWebkitBorderHorizontalSpacing: 549 case CSSPropertyWebkitBorderHorizontalSpacing:
559 case CSSPropertyWebkitBorderVerticalSpacing: 550 case CSSPropertyWebkitBorderVerticalSpacing:
560 unitless = FLength | FNonNeg; 551 unitless = FLength | FNonNeg;
561 if (inShorthand() && m_currentShorthand == CSSPropertyBorderSpacing) 552 if (inShorthand() && m_currentShorthand == CSSPropertyBorderSpacing)
562 unitless = unitless | FUnitlessQuirk; 553 unitless = unitless | FUnitlessQuirk;
563 validPrimitive = validUnit(value, unitless); 554 validPrimitive = validUnit(value, unitless);
564 break; 555 break;
565 case CSSPropertyOutlineColor: // <color> | invert | inherit 556 case CSSPropertyOutlineColor: // <color> | invert | inherit
566 // Outline color has "invert" as additional keyword. 557 // Outline color has "invert" as additional keyword.
(...skipping 404 matching lines...) Expand 10 before | Expand all | Expand 10 after
971 if (parseBorderImageWidth(result)) { 962 if (parseBorderImageWidth(result)) {
972 addProperty(propId, result, important); 963 addProperty(propId, result, important);
973 return true; 964 return true;
974 } 965 }
975 break; 966 break;
976 } 967 }
977 case CSSPropertyBorderTopRightRadius: 968 case CSSPropertyBorderTopRightRadius:
978 case CSSPropertyBorderTopLeftRadius: 969 case CSSPropertyBorderTopLeftRadius:
979 case CSSPropertyBorderBottomLeftRadius: 970 case CSSPropertyBorderBottomLeftRadius:
980 case CSSPropertyBorderBottomRightRadius: { 971 case CSSPropertyBorderBottomRightRadius: {
981 if (num != 1 && num != 2)
982 return false;
983 validPrimitive = validUnit(value, FLength | FPercent | FNonNeg); 972 validPrimitive = validUnit(value, FLength | FPercent | FNonNeg);
984 if (!validPrimitive) 973 if (!validPrimitive)
985 return false; 974 return false;
986 RefPtrWillBeRawPtr<CSSPrimitiveValue> parsedValue1 = createPrimitiveNume ricValue(value); 975 RefPtrWillBeRawPtr<CSSPrimitiveValue> parsedValue1 = createPrimitiveNume ricValue(value);
987 RefPtrWillBeRawPtr<CSSPrimitiveValue> parsedValue2 = nullptr; 976 RefPtrWillBeRawPtr<CSSPrimitiveValue> parsedValue2 = nullptr;
988 if (num == 2) { 977 value = m_valueList->next();
989 value = m_valueList->next(); 978 if (value) {
990 validPrimitive = validUnit(value, FLength | FPercent | FNonNeg); 979 validPrimitive = validUnit(value, FLength | FPercent | FNonNeg);
991 if (!validPrimitive) 980 if (!validPrimitive)
992 return false; 981 return false;
993 parsedValue2 = createPrimitiveNumericValue(value); 982 parsedValue2 = createPrimitiveNumericValue(value);
994 } else 983 } else
995 parsedValue2 = parsedValue1; 984 parsedValue2 = parsedValue1;
996 985
986 if (m_valueList->next())
987 return false;
997 addProperty(propId, createPrimitiveValuePair(parsedValue1.release(), par sedValue2.release()), important); 988 addProperty(propId, createPrimitiveValuePair(parsedValue1.release(), par sedValue2.release()), important);
998 return true; 989 return true;
999 } 990 }
1000 case CSSPropertyTabSize: 991 case CSSPropertyTabSize:
1001 // May be specified as a unit-less non-negative integer or length indica ting number of space characters. 992 // May be specified as a unit-less non-negative integer or length indica ting number of space characters.
1002 validPrimitive = validUnit(value, FInteger | FLength | FNonNeg); 993 validPrimitive = validUnit(value, FInteger | FLength | FNonNeg);
1003 break; 994 break;
1004 case CSSPropertyBorderRadius: 995 case CSSPropertyBorderRadius:
1005 case CSSPropertyAliasWebkitBorderRadius: 996 case CSSPropertyAliasWebkitBorderRadius:
1006 return parseBorderRadius(unresolvedProperty, important); 997 return parseBorderRadius(unresolvedProperty, important);
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after
1294 1285
1295 case CSSPropertyGridTemplate: 1286 case CSSPropertyGridTemplate:
1296 ASSERT(RuntimeEnabledFeatures::cssGridLayoutEnabled()); 1287 ASSERT(RuntimeEnabledFeatures::cssGridLayoutEnabled());
1297 return parseGridTemplateShorthand(important); 1288 return parseGridTemplateShorthand(important);
1298 1289
1299 case CSSPropertyGrid: 1290 case CSSPropertyGrid:
1300 ASSERT(RuntimeEnabledFeatures::cssGridLayoutEnabled()); 1291 ASSERT(RuntimeEnabledFeatures::cssGridLayoutEnabled());
1301 return parseGridShorthand(important); 1292 return parseGridShorthand(important);
1302 1293
1303 case CSSPropertyWebkitMarginCollapse: { 1294 case CSSPropertyWebkitMarginCollapse: {
1304 if (num == 1) { 1295 ShorthandScope scope(this, CSSPropertyWebkitMarginCollapse);
1305 ShorthandScope scope(this, CSSPropertyWebkitMarginCollapse); 1296 if (!parseValue(webkitMarginCollapseShorthand().properties()[0], importa nt))
1306 if (!parseValue(webkitMarginCollapseShorthand().properties()[0], imp ortant)) 1297 return false;
1307 return false; 1298 if (!m_valueList->current()) {
1308 CSSValue* value = m_parsedProperties.last().value(); 1299 CSSValue* value = m_parsedProperties.last().value();
1309 addProperty(webkitMarginCollapseShorthand().properties()[1], value, important); 1300 addProperty(webkitMarginCollapseShorthand().properties()[1], value, important);
1310 return true; 1301 return true;
1311 } 1302 }
1312 else if (num == 2) { 1303 if (!parseValue(webkitMarginCollapseShorthand().properties()[1], importa nt))
1313 ShorthandScope scope(this, CSSPropertyWebkitMarginCollapse); 1304 return false;
1314 if (!parseValue(webkitMarginCollapseShorthand().properties()[0], imp ortant) || !parseValue(webkitMarginCollapseShorthand().properties()[1], importan t)) 1305 return !m_valueList->current();
1315 return false;
1316 return true;
1317 }
1318 return false;
1319 } 1306 }
1320 case CSSPropertyWebkitColumnCount: 1307 case CSSPropertyWebkitColumnCount:
1321 parsedValue = parseColumnCount(); 1308 parsedValue = parseColumnCount();
1322 break; 1309 break;
1323 case CSSPropertyWebkitColumnGap: // normal | <length> 1310 case CSSPropertyWebkitColumnGap: // normal | <length>
1324 if (id == CSSValueNormal) 1311 if (id == CSSValueNormal)
1325 validPrimitive = true; 1312 validPrimitive = true;
1326 else 1313 else
1327 validPrimitive = validUnit(value, FLength | FNonNeg); 1314 validPrimitive = validUnit(value, FLength | FNonNeg);
1328 break; 1315 break;
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
1442 // <margin-width>{1,4} | inherit 1429 // <margin-width>{1,4} | inherit
1443 return parse4Values(propId, marginShorthand().properties(), important); 1430 return parse4Values(propId, marginShorthand().properties(), important);
1444 case CSSPropertyPadding: 1431 case CSSPropertyPadding:
1445 // <padding-width>{1,4} | inherit 1432 // <padding-width>{1,4} | inherit
1446 return parse4Values(propId, paddingShorthand().properties(), important); 1433 return parse4Values(propId, paddingShorthand().properties(), important);
1447 case CSSPropertyFlexFlow: 1434 case CSSPropertyFlexFlow:
1448 return parseShorthand(propId, flexFlowShorthand(), important); 1435 return parseShorthand(propId, flexFlowShorthand(), important);
1449 case CSSPropertyFont: 1436 case CSSPropertyFont:
1450 // [ [ 'font-style' || 'font-variant' || 'font-weight' ]? 'font-size' [ / 'line-height' ]? 1437 // [ [ 'font-style' || 'font-variant' || 'font-weight' ]? 'font-size' [ / 'line-height' ]?
1451 // 'font-family' ] | caption | icon | menu | message-box | small-caption | status-bar | inherit 1438 // 'font-family' ] | caption | icon | menu | message-box | small-caption | status-bar | inherit
1452 if (num == 1 && id >= CSSValueCaption && id <= CSSValueStatusBar) { 1439 if (id >= CSSValueCaption && id <= CSSValueStatusBar)
1453 parseSystemFont(important); 1440 return parseSystemFont(important);
1454 return true;
1455 }
1456 return parseFont(important); 1441 return parseFont(important);
1457 case CSSPropertyListStyle: 1442 case CSSPropertyListStyle:
1458 return parseShorthand(propId, listStyleShorthand(), important); 1443 return parseShorthand(propId, listStyleShorthand(), important);
1459 case CSSPropertyWebkitColumns: 1444 case CSSPropertyWebkitColumns:
1460 return parseColumnsShorthand(important); 1445 return parseColumnsShorthand(important);
1461 case CSSPropertyWebkitColumnRule: 1446 case CSSPropertyWebkitColumnRule:
1462 return parseShorthand(propId, webkitColumnRuleShorthand(), important); 1447 return parseShorthand(propId, webkitColumnRuleShorthand(), important);
1463 case CSSPropertyWebkitTextStroke: 1448 case CSSPropertyWebkitTextStroke:
1464 return parseShorthand(propId, webkitTextStrokeShorthand(), important); 1449 return parseShorthand(propId, webkitTextStrokeShorthand(), important);
1465 case CSSPropertyAnimation: 1450 case CSSPropertyAnimation:
(...skipping 3177 matching lines...) Expand 10 before | Expand all | Expand 10 after
4643 4628
4644 // FIXME: http://www.w3.org/TR/2011/WD-css3-fonts-20110324/#font-prop requir es that 4629 // FIXME: http://www.w3.org/TR/2011/WD-css3-fonts-20110324/#font-prop requir es that
4645 // "font-stretch", "font-size-adjust", and "font-kerning" be reset to their initial values 4630 // "font-stretch", "font-size-adjust", and "font-kerning" be reset to their initial values
4646 // but we don't seem to support them at the moment. They should also be adde d here once implemented. 4631 // but we don't seem to support them at the moment. They should also be adde d here once implemented.
4647 if (m_valueList->current()) 4632 if (m_valueList->current())
4648 return false; 4633 return false;
4649 4634
4650 return true; 4635 return true;
4651 } 4636 }
4652 4637
4653 void CSSPropertyParser::parseSystemFont(bool important) 4638 bool CSSPropertyParser::parseSystemFont(bool important)
4654 { 4639 {
4655 ASSERT(m_valueList->size() == 1);
4656 CSSValueID systemFontID = m_valueList->valueAt(0)->id; 4640 CSSValueID systemFontID = m_valueList->valueAt(0)->id;
4657 ASSERT(systemFontID >= CSSValueCaption && systemFontID <= CSSValueStatusBar) ; 4641 ASSERT(systemFontID >= CSSValueCaption && systemFontID <= CSSValueStatusBar) ;
4658 m_valueList->next(); 4642 if (m_valueList->next())
4643 return false;
4659 4644
4660 FontStyle fontStyle = FontStyleNormal; 4645 FontStyle fontStyle = FontStyleNormal;
4661 FontWeight fontWeight = FontWeightNormal; 4646 FontWeight fontWeight = FontWeightNormal;
4662 float fontSize = 0; 4647 float fontSize = 0;
4663 AtomicString fontFamily; 4648 AtomicString fontFamily;
4664 LayoutTheme::theme().systemFont(systemFontID, fontStyle, fontWeight, fontSiz e, fontFamily); 4649 LayoutTheme::theme().systemFont(systemFontID, fontStyle, fontWeight, fontSiz e, fontFamily);
4665 4650
4666 ShorthandScope scope(this, CSSPropertyFont); 4651 ShorthandScope scope(this, CSSPropertyFont);
4667 addProperty(CSSPropertyFontStyle, cssValuePool().createIdentifierValue(fontS tyle == FontStyleItalic ? CSSValueItalic : CSSValueNormal), important); 4652 addProperty(CSSPropertyFontStyle, cssValuePool().createIdentifierValue(fontS tyle == FontStyleItalic ? CSSValueItalic : CSSValueNormal), important);
4668 addProperty(CSSPropertyFontWeight, cssValuePool().createValue(fontWeight), i mportant); 4653 addProperty(CSSPropertyFontWeight, cssValuePool().createValue(fontWeight), i mportant);
4669 addProperty(CSSPropertyFontSize, cssValuePool().createValue(fontSize, CSSPri mitiveValue::UnitType::Pixels), important); 4654 addProperty(CSSPropertyFontSize, cssValuePool().createValue(fontSize, CSSPri mitiveValue::UnitType::Pixels), important);
4670 RefPtrWillBeRawPtr<CSSValueList> fontFamilyList = CSSValueList::createCommaS eparated(); 4655 RefPtrWillBeRawPtr<CSSValueList> fontFamilyList = CSSValueList::createCommaS eparated();
4671 fontFamilyList->append(cssValuePool().createFontFamilyValue(fontFamily)); 4656 fontFamilyList->append(cssValuePool().createFontFamilyValue(fontFamily));
4672 addProperty(CSSPropertyFontFamily, fontFamilyList.release(), important); 4657 addProperty(CSSPropertyFontFamily, fontFamilyList.release(), important);
4673 4658
4674 addProperty(CSSPropertyFontStretch, cssValuePool().createIdentifierValue(CSS ValueNormal), important); 4659 addProperty(CSSPropertyFontStretch, cssValuePool().createIdentifierValue(CSS ValueNormal), important);
4675 addProperty(CSSPropertyFontVariant, cssValuePool().createIdentifierValue(CSS ValueNormal), important); 4660 addProperty(CSSPropertyFontVariant, cssValuePool().createIdentifierValue(CSS ValueNormal), important);
4676 addProperty(CSSPropertyLineHeight, cssValuePool().createIdentifierValue(CSSV alueNormal), important); 4661 addProperty(CSSPropertyLineHeight, cssValuePool().createIdentifierValue(CSSV alueNormal), important);
4662 return true;
4677 } 4663 }
4678 4664
4679 class FontFamilyValueBuilder { 4665 class FontFamilyValueBuilder {
4680 STACK_ALLOCATED(); 4666 STACK_ALLOCATED();
4681 public: 4667 public:
4682 FontFamilyValueBuilder(CSSValueList* list) 4668 FontFamilyValueBuilder(CSSValueList* list)
4683 : m_list(list) 4669 : m_list(list)
4684 { 4670 {
4685 } 4671 }
4686 4672
(...skipping 2746 matching lines...) Expand 10 before | Expand all | Expand 10 after
7433 // TODO(rwlbuis): check there is only one family-name 7419 // TODO(rwlbuis): check there is only one family-name
7434 parsedValue = parseFontFamily(); 7420 parsedValue = parseFontFamily();
7435 break; 7421 break;
7436 case CSSPropertySrc: // This is a list of urls or local references. 7422 case CSSPropertySrc: // This is a list of urls or local references.
7437 parsedValue = parseFontFaceSrc(); 7423 parsedValue = parseFontFaceSrc();
7438 break; 7424 break;
7439 case CSSPropertyUnicodeRange: 7425 case CSSPropertyUnicodeRange:
7440 parsedValue = parseFontFaceUnicodeRange(); 7426 parsedValue = parseFontFaceUnicodeRange();
7441 break; 7427 break;
7442 case CSSPropertyFontWeight: // normal | bold | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 7428 case CSSPropertyFontWeight: // normal | bold | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900
7443 if (m_valueList->size() != 1) 7429 return parseFontWeight(false) && !m_valueList->next();
7444 return false;
7445 return parseFontWeight(false);
7446 case CSSPropertyFontStretch: 7430 case CSSPropertyFontStretch:
7447 case CSSPropertyFontStyle: 7431 case CSSPropertyFontStyle:
7448 if (!CSSParserFastPaths::isValidKeywordPropertyAndValue(propId, id)) 7432 if (!CSSParserFastPaths::isValidKeywordPropertyAndValue(propId, id))
7449 return false; 7433 return false;
7450 addProperty(propId, cssValuePool().createIdentifierValue(id), false); 7434 addProperty(propId, cssValuePool().createIdentifierValue(id), false);
7451 return true; 7435 return true;
7452 case CSSPropertyFontVariant: // normal | small-caps | inherit 7436 case CSSPropertyFontVariant: // normal | small-caps | inherit
7453 return parseFontVariant(false); 7437 return parseFontVariant(false);
7454 case CSSPropertyWebkitFontFeatureSettings: 7438 case CSSPropertyWebkitFontFeatureSettings:
7455 if (id == CSSValueNormal) { 7439 if (id == CSSValueNormal) {
(...skipping 667 matching lines...) Expand 10 before | Expand all | Expand 10 after
8123 } 8107 }
8124 } 8108 }
8125 8109
8126 if (!list->length()) 8110 if (!list->length())
8127 return nullptr; 8111 return nullptr;
8128 8112
8129 return list.release(); 8113 return list.release();
8130 } 8114 }
8131 8115
8132 } // namespace blink 8116 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/css/parser/CSSPropertyParser.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698