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

Unified Diff: third_party/WebKit/Source/core/css/CSSCalculationValue.cpp

Issue 1835403003: Allow number-percentage calc() in border-image-slice (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Another approach Created 4 years, 8 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 side-by-side diff with in-line comments
Download patch
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 8020556cc20db8a1ae541be5f3c5271cfe34a30d..b9b505df679ab0bf8a83b83b19d4f675a741b697 100644
--- a/third_party/WebKit/Source/core/css/CSSCalculationValue.cpp
+++ b/third_party/WebKit/Source/core/css/CSSCalculationValue.cpp
@@ -198,6 +198,9 @@ public:
void accumulatePixelsAndPercent(const CSSToLengthConversionData& conversionData, PixelsAndPercent& value, float multiplier) const override
{
switch (m_category) {
+ case CalcNumber:
+ value.pixels += m_value->getFloatValue() * multiplier;
+ break;
case CalcLength:
value.pixels += m_value->computeLength<float>(conversionData) * multiplier;
break;
@@ -719,10 +722,10 @@ CSSCalcExpressionNode* CSSCalcValue::createExpressionNode(CSSCalcExpressionNode*
return CSSCalcBinaryOperation::create(leftSide, rightSide, op);
}
-CSSCalcExpressionNode* CSSCalcValue::createExpressionNode(double pixels, double percent)
+CSSCalcExpressionNode* CSSCalcValue::createExpressionNode(double pixels, double percent, bool unitless)
{
return createExpressionNode(
- createExpressionNode(CSSPrimitiveValue::create(pixels, CSSPrimitiveValue::UnitType::Pixels), pixels == trunc(pixels)),
+ createExpressionNode(CSSPrimitiveValue::create(pixels, unitless ? CSSPrimitiveValue::UnitType::Number : CSSPrimitiveValue::UnitType::Pixels), pixels == trunc(pixels)),
createExpressionNode(CSSPrimitiveValue::create(percent, CSSPrimitiveValue::UnitType::Percentage), percent == trunc(percent)),
CalcAdd);
}

Powered by Google App Engine
This is Rietveld 408576698