Chromium Code Reviews| Index: third_party/WebKit/Source/core/css/CSSCalculationValue.cpp |
| diff --git a/third_party/WebKit/Source/core/css/CSSCalculationValue.cpp b/third_party/WebKit/Source/core/css/CSSCalculationValue.cpp |
| index b1de7219ff9af28f94b857a8c11157c4d59ecd18..c0d7e43041a8819a8bbd05f68ca1e168b336a4ed 100644 |
| --- a/third_party/WebKit/Source/core/css/CSSCalculationValue.cpp |
| +++ b/third_party/WebKit/Source/core/css/CSSCalculationValue.cpp |
| @@ -124,6 +124,8 @@ static bool hasDoubleValue(CSSPrimitiveValue::UnitType type) |
| case CSSPrimitiveValue::UnitType::Calc: |
| case CSSPrimitiveValue::UnitType::CalcPercentageWithNumber: |
| case CSSPrimitiveValue::UnitType::CalcPercentageWithLength: |
| + case CSSPrimitiveValue::UnitType::CalcLengthWithNumber: |
| + case CSSPrimitiveValue::UnitType::CalcPercentageWithLengthAndNumber: |
| case CSSPrimitiveValue::UnitType::ValueID: |
| case CSSPrimitiveValue::UnitType::QuirkyEms: |
| return false; |
| @@ -205,6 +207,9 @@ public: |
| ASSERT(m_value->isPercentage()); |
| value.percent += m_value->getDoubleValue() * multiplier; |
| break; |
| + case CalcNumber: |
|
alancutter (OOO until 2018)
2016/07/06 07:45:46
This is not true for border-image-width (which doe
|
| + value.pixels += m_value->getDoubleValue() * multiplier; |
| + break; |
| default: |
| ASSERT_NOT_REACHED(); |
| } |
| @@ -231,6 +236,8 @@ public: |
| case CalcPercentLength: |
| case CalcPercentNumber: |
| case CalcTime: |
| + case CalcLengthNumber: |
| + case CalcPercentLengthNumber: |
| case CalcOther: |
| ASSERT_NOT_REACHED(); |
| break; |
| @@ -277,15 +284,17 @@ private: |
| }; |
| static const CalculationCategory addSubtractResult[CalcOther][CalcOther] = { |
| -// CalcNumber CalcLength CalcPercent CalcPercentNumber CalcPercentLength CalcAngle CalcTime CalcFrequency |
| -/* CalcNumber */ { CalcNumber, CalcOther, CalcPercentNumber, CalcPercentNumber, CalcOther, CalcOther, CalcOther, CalcOther }, |
| -/* CalcLength */ { CalcOther, CalcLength, CalcPercentLength, CalcOther, CalcPercentLength, CalcOther, CalcOther, CalcOther }, |
| -/* CalcPercent */ { CalcPercentNumber, CalcPercentLength, CalcPercent, CalcPercentNumber, CalcPercentLength, CalcOther, CalcOther, CalcOther }, |
| -/* CalcPercentNumber */ { CalcPercentNumber, CalcOther, CalcPercentNumber, CalcPercentNumber, CalcOther, CalcOther, CalcOther, CalcOther }, |
| -/* CalcPercentLength */ { CalcOther, CalcPercentLength, CalcPercentLength, CalcOther, CalcPercentLength, CalcOther, CalcOther, CalcOther }, |
| -/* CalcAngle */ { CalcOther, CalcOther, CalcOther, CalcOther, CalcOther, CalcAngle, CalcOther, CalcOther }, |
| -/* CalcTime */ { CalcOther, CalcOther, CalcOther, CalcOther, CalcOther, CalcOther, CalcTime, CalcOther }, |
| -/* CalcFrequency */ { CalcOther, CalcOther, CalcOther, CalcOther, CalcOther, CalcOther, CalcOther, CalcFrequency } |
| +// CalcNumber CalcLength CalcPercent CalcPercentNumber CalcPercentLength CalcAngle CalcTime CalcFrequency CalcLengthNumber CalcPercentLengthNumber |
| +/* CalcNumber */ { CalcNumber, CalcLengthNumber, CalcPercentNumber, CalcPercentNumber, CalcOther, CalcOther, CalcOther, CalcOther, CalcLengthNumber, CalcPercentLengthNumber }, |
| +/* CalcLength */ { CalcLengthNumber, CalcLength, CalcPercentLength, CalcOther, CalcPercentLength, CalcOther, CalcOther, CalcOther, CalcLengthNumber, CalcPercentLengthNumber }, |
| +/* CalcPercent */ { CalcPercentNumber, CalcPercentLength, CalcPercent, CalcPercentNumber, CalcPercentLength, CalcOther, CalcOther, CalcOther, CalcPercentLengthNumber, CalcPercentLengthNumber }, |
| +/* CalcPercentNumber */ { CalcPercentNumber, CalcPercentLengthNumber, CalcPercentNumber, CalcPercentNumber, CalcPercentLengthNumber, CalcOther, CalcOther, CalcOther, CalcOther, CalcPercentLengthNumber }, |
| +/* CalcPercentLength */ { CalcPercentLengthNumber, CalcPercentLength, CalcPercentLength, CalcPercentLengthNumber, CalcPercentLength, CalcOther, CalcOther, CalcOther, CalcOther, CalcPercentLengthNumber }, |
| +/* CalcAngle */ { CalcOther, CalcOther, CalcOther, CalcOther, CalcOther, CalcAngle, CalcOther, CalcOther, CalcOther, CalcOther }, |
| +/* CalcTime */ { CalcOther, CalcOther, CalcOther, CalcOther, CalcOther, CalcOther, CalcTime, CalcOther, CalcOther, CalcOther }, |
| +/* CalcFrequency */ { CalcOther, CalcOther, CalcOther, CalcOther, CalcOther, CalcOther, CalcOther, CalcFrequency, CalcOther, CalcOther }, |
| +/* CalcLengthNumber */ { CalcLengthNumber, CalcLengthNumber, CalcPercentLengthNumber, CalcPercentLengthNumber, CalcPercentLengthNumber, CalcOther, CalcOther, CalcOther, CalcLengthNumber, CalcPercentLengthNumber }, |
| +/* CalcPercentLengthNumber */ { CalcPercentLengthNumber, CalcPercentLengthNumber, CalcPercentLengthNumber, CalcPercentLengthNumber, CalcPercentLengthNumber, CalcOther, CalcOther, CalcOther, CalcPercentLengthNumber, CalcPercentLengthNumber } |
| }; |
| static CalculationCategory determineCategory(const CSSCalcExpressionNode& leftSide, const CSSCalcExpressionNode& rightSide, CalcOperator op) |
| @@ -519,6 +528,8 @@ public: |
| return CSSPrimitiveValue::UnitType::Hertz; |
| case CalcPercentLength: |
| case CalcPercentNumber: |
| + case CalcLengthNumber: |
| + case CalcPercentLengthNumber: |
| case CalcOther: |
| return CSSPrimitiveValue::UnitType::Unknown; |
| } |