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

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

Issue 893193005: Remove duplicated CSSValueNone checks (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 10 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 | « no previous file | 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 1176 matching lines...) Expand 10 before | Expand all | Expand 10 after
1187 addProperty(propId, list.release(), important); 1187 addProperty(propId, list.release(), important);
1188 return true; 1188 return true;
1189 } 1189 }
1190 1190
1191 case CSSPropertyMotion: 1191 case CSSPropertyMotion:
1192 // <motion-path> && <motion-position> && <motion-rotation> 1192 // <motion-path> && <motion-position> && <motion-rotation>
1193 ASSERT(RuntimeEnabledFeatures::cssMotionPathEnabled()); 1193 ASSERT(RuntimeEnabledFeatures::cssMotionPathEnabled());
1194 return parseShorthand(propId, parsingShorthandForProperty(CSSPropertyMot ion), important); 1194 return parseShorthand(propId, parsingShorthandForProperty(CSSPropertyMot ion), important);
1195 case CSSPropertyMotionPath: 1195 case CSSPropertyMotionPath:
1196 ASSERT(RuntimeEnabledFeatures::cssMotionPathEnabled()); 1196 ASSERT(RuntimeEnabledFeatures::cssMotionPathEnabled());
1197 parsedValue = parseMotionPath(); 1197 if (id == CSSValueNone)
1198 validPrimitive = true;
1199 else
1200 parsedValue = parseMotionPath();
1198 break; 1201 break;
1199 case CSSPropertyMotionPosition: 1202 case CSSPropertyMotionPosition:
1200 ASSERT(RuntimeEnabledFeatures::cssMotionPathEnabled()); 1203 ASSERT(RuntimeEnabledFeatures::cssMotionPathEnabled());
1201 validPrimitive = (!id && validUnit(value, FLength | FPercent | FNonNeg)) ; 1204 validPrimitive = (!id && validUnit(value, FLength | FPercent | FNonNeg)) ;
1202 break; 1205 break;
1203 case CSSPropertyMotionRotation: 1206 case CSSPropertyMotionRotation:
1204 ASSERT(RuntimeEnabledFeatures::cssMotionPathEnabled()); 1207 ASSERT(RuntimeEnabledFeatures::cssMotionPathEnabled());
1205 parsedValue = parseMotionRotation(); 1208 parsedValue = parseMotionRotation();
1206 break; 1209 break;
1207 1210
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after
1509 validPrimitive = true; 1512 validPrimitive = true;
1510 } else if (value->unit == CSSParserValue::Function) { 1513 } else if (value->unit == CSSParserValue::Function) {
1511 parsedValue = parseBasicShape(); 1514 parsedValue = parseBasicShape();
1512 } else if (value->unit == CSSPrimitiveValue::CSS_URI) { 1515 } else if (value->unit == CSSPrimitiveValue::CSS_URI) {
1513 parsedValue = CSSPrimitiveValue::create(value->string, CSSPrimitiveV alue::CSS_URI); 1516 parsedValue = CSSPrimitiveValue::create(value->string, CSSPrimitiveV alue::CSS_URI);
1514 addProperty(propId, parsedValue.release(), important); 1517 addProperty(propId, parsedValue.release(), important);
1515 return true; 1518 return true;
1516 } 1519 }
1517 break; 1520 break;
1518 case CSSPropertyShapeOutside: 1521 case CSSPropertyShapeOutside:
1519 parsedValue = parseShapeProperty(propId); 1522 if (id == CSSValueNone)
1523 validPrimitive = true;
1524 else
1525 parsedValue = parseShapeProperty(propId);
1520 break; 1526 break;
1521 case CSSPropertyShapeMargin: 1527 case CSSPropertyShapeMargin:
1522 validPrimitive = (!id && validUnit(value, FLength | FPercent | FNonNeg)) ; 1528 validPrimitive = (!id && validUnit(value, FLength | FPercent | FNonNeg)) ;
1523 break; 1529 break;
1524 case CSSPropertyShapeImageThreshold: 1530 case CSSPropertyShapeImageThreshold:
1525 validPrimitive = (!id && validUnit(value, FNumber)); 1531 validPrimitive = (!id && validUnit(value, FNumber));
1526 break; 1532 break;
1527 1533
1528 case CSSPropertyTouchAction: 1534 case CSSPropertyTouchAction:
1529 parsedValue = parseTouchAction(); 1535 parsedValue = parseTouchAction();
1530 break; 1536 break;
1531 1537
1532 case CSSPropertyScrollBlocksOn: 1538 case CSSPropertyScrollBlocksOn:
1533 parsedValue = parseScrollBlocksOn(); 1539 if (id == CSSValueNone)
1540 validPrimitive = true;
1541 else
1542 parsedValue = parseScrollBlocksOn();
1534 break; 1543 break;
1535 1544
1536 case CSSPropertyAlignContent: 1545 case CSSPropertyAlignContent:
1537 parsedValue = parseContentDistributionOverflowPosition(); 1546 parsedValue = parseContentDistributionOverflowPosition();
1538 break; 1547 break;
1539 1548
1540 case CSSPropertyAlignSelf: 1549 case CSSPropertyAlignSelf:
1541 ASSERT(RuntimeEnabledFeatures::cssGridLayoutEnabled()); 1550 ASSERT(RuntimeEnabledFeatures::cssGridLayoutEnabled());
1542 return parseItemPositionOverflowPosition(propId, important); 1551 return parseItemPositionOverflowPosition(propId, important);
1543 1552
(...skipping 2860 matching lines...) Expand 10 before | Expand all | Expand 10 after
4404 return true; 4413 return true;
4405 default: 4414 default:
4406 break; 4415 break;
4407 } 4416 }
4408 4417
4409 return false; 4418 return false;
4410 } 4419 }
4411 4420
4412 PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseShapeProperty(CSSProper tyID propId) 4421 PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseShapeProperty(CSSProper tyID propId)
4413 { 4422 {
4414 CSSParserValue* value = m_valueList->current();
4415 CSSValueID valueId = value->id;
4416
4417 if (valueId == CSSValueNone) {
4418 RefPtrWillBeRawPtr<CSSPrimitiveValue> keywordValue = parseValidPrimitive (valueId, value);
4419 m_valueList->next();
4420 return keywordValue.release();
4421 }
4422
4423 RefPtrWillBeRawPtr<CSSValue> imageValue = nullptr; 4423 RefPtrWillBeRawPtr<CSSValue> imageValue = nullptr;
4424 if (valueId != CSSValueNone && parseFillImage(m_valueList, imageValue)) { 4424 if (parseFillImage(m_valueList, imageValue)) {
4425 m_valueList->next(); 4425 m_valueList->next();
4426 return imageValue.release(); 4426 return imageValue.release();
4427 } 4427 }
4428 4428
4429 return parseBasicShapeAndOrBox(); 4429 return parseBasicShapeAndOrBox();
4430 } 4430 }
4431 4431
4432 PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseBasicShapeAndOrBox() 4432 PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseBasicShapeAndOrBox()
4433 { 4433 {
4434 CSSParserValue* value = m_valueList->current(); 4434 CSSParserValue* value = m_valueList->current();
(...skipping 3051 matching lines...) Expand 10 before | Expand all | Expand 10 after
7486 } 7486 }
7487 7487
7488 if (list->length()) 7488 if (list->length())
7489 return list.release(); 7489 return list.release();
7490 7490
7491 return nullptr; 7491 return nullptr;
7492 } 7492 }
7493 7493
7494 PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseScrollBlocksOn() 7494 PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseScrollBlocksOn()
7495 { 7495 {
7496 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated() ;
7496 CSSParserValue* value = m_valueList->current(); 7497 CSSParserValue* value = m_valueList->current();
7497 if (value->id == CSSValueNone) {
7498 m_valueList->next();
7499 return cssValuePool().createIdentifierValue(CSSValueNone);
7500 }
7501
7502 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated() ;
7503 while (value) { 7498 while (value) {
7504 switch (value->id) { 7499 switch (value->id) {
7505 case CSSValueStartTouch: 7500 case CSSValueStartTouch:
7506 case CSSValueWheelEvent: 7501 case CSSValueWheelEvent:
7507 case CSSValueScrollEvent: { 7502 case CSSValueScrollEvent: {
7508 RefPtrWillBeRawPtr<CSSValue> flagValue = cssValuePool().createIdenti fierValue(value->id); 7503 RefPtrWillBeRawPtr<CSSValue> flagValue = cssValuePool().createIdenti fierValue(value->id);
7509 if (list->hasValue(flagValue.get())) 7504 if (list->hasValue(flagValue.get()))
7510 return nullptr; 7505 return nullptr;
7511 list->append(flagValue.release()); 7506 list->append(flagValue.release());
7512 break; 7507 break;
(...skipping 1013 matching lines...) Expand 10 before | Expand all | Expand 10 after
8526 8521
8527 argNumber++; 8522 argNumber++;
8528 } 8523 }
8529 8524
8530 return transformValue.release(); 8525 return transformValue.release();
8531 } 8526 }
8532 8527
8533 PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseMotionPath() 8528 PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseMotionPath()
8534 { 8529 {
8535 CSSParserValue* value = m_valueList->current(); 8530 CSSParserValue* value = m_valueList->current();
8536 if (value->id == CSSValueNone) {
8537 m_valueList->next();
8538 return cssValuePool().createIdentifierValue(CSSValueNone);
8539 }
8540 8531
8541 // FIXME: Add support for <url>, <basic-shape>, <geometry-box>. 8532 // FIXME: Add support for <url>, <basic-shape>, <geometry-box>.
8542 if (value->unit != CSSParserValue::Function || value->function->id != CSSVal uePath) 8533 if (value->unit != CSSParserValue::Function || value->function->id != CSSVal uePath)
8543 return nullptr; 8534 return nullptr;
8544 8535
8545 // FIXME: Add support for <fill-rule>. 8536 // FIXME: Add support for <fill-rule>.
8546 CSSParserValueList* functionArgs = value->function->args.get(); 8537 CSSParserValueList* functionArgs = value->function->args.get();
8547 if (!functionArgs || functionArgs->size() != 1 || !functionArgs->current()) 8538 if (!functionArgs || functionArgs->size() != 1 || !functionArgs->current())
8548 return nullptr; 8539 return nullptr;
8549 8540
(...skipping 28 matching lines...) Expand all
8578 } 8569 }
8579 } 8570 }
8580 8571
8581 if (!list->length()) 8572 if (!list->length())
8582 return nullptr; 8573 return nullptr;
8583 8574
8584 return list.release(); 8575 return list.release();
8585 } 8576 }
8586 8577
8587 } // namespace blink 8578 } // namespace blink
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698