Index: third_party/WebKit/Source/core/css/BasicShapeFunctions.cpp |
diff --git a/third_party/WebKit/Source/core/css/BasicShapeFunctions.cpp b/third_party/WebKit/Source/core/css/BasicShapeFunctions.cpp |
index cb148ab6d336cbe57bc69fc04dfc67c2f72c7e6b..a1c7989088026f29210d1cadb9987342a244dd6a 100644 |
--- a/third_party/WebKit/Source/core/css/BasicShapeFunctions.cpp |
+++ b/third_party/WebKit/Source/core/css/BasicShapeFunctions.cpp |
@@ -41,18 +41,29 @@ namespace blink { |
static CSSValue* valueForCenterCoordinate(const ComputedStyle& style, const BasicShapeCenterCoordinate& center, EBoxOrient orientation) |
{ |
if (center.getDirection() == BasicShapeCenterCoordinate::TopLeft) |
- return CSSPrimitiveValue::create(center.length(), style); |
+ return CSSPrimitiveValue::create(center.length(), style.effectiveZoom()); |
CSSValueID keyword = orientation == HORIZONTAL ? CSSValueRight : CSSValueBottom; |
- return CSSValuePair::create(CSSPrimitiveValue::createIdentifier(keyword), CSSPrimitiveValue::create(center.length(), style), CSSValuePair::DropIdenticalValues); |
+ return CSSValuePair::create( |
+ CSSPrimitiveValue::createIdentifier(keyword), |
+ CSSPrimitiveValue::create(center.length(), style.effectiveZoom()), |
+ CSSValuePair::DropIdenticalValues); |
+} |
+ |
+static CSSValuePair* valueForLengthSize(const LengthSize& lengthSize, const ComputedStyle& style) |
+{ |
+ return CSSValuePair::create( |
+ CSSPrimitiveValue::create(lengthSize.width(), style.effectiveZoom()), |
+ CSSPrimitiveValue::create(lengthSize.height(), style.effectiveZoom()), |
+ CSSValuePair::KeepIdenticalValues); |
} |
static CSSPrimitiveValue* basicShapeRadiusToCSSValue(const ComputedStyle& style, const BasicShapeRadius& radius) |
{ |
switch (radius.type()) { |
case BasicShapeRadius::Value: |
- return CSSPrimitiveValue::create(radius.value(), style); |
+ return CSSPrimitiveValue::create(radius.value(), style.effectiveZoom()); |
case BasicShapeRadius::ClosestSide: |
return CSSPrimitiveValue::createIdentifier(CSSValueClosestSide); |
case BasicShapeRadius::FarthestSide: |
@@ -91,24 +102,26 @@ CSSValue* valueForBasicShape(const ComputedStyle& style, const BasicShape* basic |
polygonValue->setWindRule(polygon->getWindRule()); |
const Vector<Length>& values = polygon->values(); |
- for (unsigned i = 0; i < values.size(); i += 2) |
- polygonValue->appendPoint(CSSPrimitiveValue::create(values.at(i), style), CSSPrimitiveValue::create(values.at(i + 1), style)); |
- |
+ for (unsigned i = 0; i < values.size(); i += 2) { |
+ polygonValue->appendPoint( |
+ CSSPrimitiveValue::create(values.at(i), style.effectiveZoom()), |
+ CSSPrimitiveValue::create(values.at(i + 1), style.effectiveZoom())); |
+ } |
return polygonValue; |
} |
case BasicShape::BasicShapeInsetType: { |
const BasicShapeInset* inset = toBasicShapeInset(basicShape); |
CSSBasicShapeInsetValue* insetValue = CSSBasicShapeInsetValue::create(); |
- insetValue->setTop(CSSPrimitiveValue::create(inset->top(), style)); |
- insetValue->setRight(CSSPrimitiveValue::create(inset->right(), style)); |
- insetValue->setBottom(CSSPrimitiveValue::create(inset->bottom(), style)); |
- insetValue->setLeft(CSSPrimitiveValue::create(inset->left(), style)); |
+ insetValue->setTop(CSSPrimitiveValue::create(inset->top(), style.effectiveZoom())); |
+ insetValue->setRight(CSSPrimitiveValue::create(inset->right(), style.effectiveZoom())); |
+ insetValue->setBottom(CSSPrimitiveValue::create(inset->bottom(), style.effectiveZoom())); |
+ insetValue->setLeft(CSSPrimitiveValue::create(inset->left(), style.effectiveZoom())); |
- insetValue->setTopLeftRadius(CSSValuePair::create(inset->topLeftRadius(), style)); |
- insetValue->setTopRightRadius(CSSValuePair::create(inset->topRightRadius(), style)); |
- insetValue->setBottomRightRadius(CSSValuePair::create(inset->bottomRightRadius(), style)); |
- insetValue->setBottomLeftRadius(CSSValuePair::create(inset->bottomLeftRadius(), style)); |
+ insetValue->setTopLeftRadius(valueForLengthSize(inset->topLeftRadius(), style)); |
+ insetValue->setTopRightRadius(valueForLengthSize(inset->topRightRadius(), style)); |
+ insetValue->setBottomRightRadius(valueForLengthSize(inset->bottomRightRadius(), style)); |
+ insetValue->setBottomLeftRadius(valueForLengthSize(inset->bottomLeftRadius(), style)); |
return insetValue; |
} |