Commit dc5d6b23 authored by Fredrik Söderqvist's avatar Fredrik Söderqvist Committed by Commit Bot

Clean up ComputedStyleUtils::ValueForNinePieceImageSlice

Move duplicated CSSValue creation to a helper function and put the
LengthBox in a local variable.

Change-Id: Icf06db6282d7c310717e8f0e9f18b547a9d7be41
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2558339
Commit-Queue: Rune Lillesveen <futhark@chromium.org>
Auto-Submit: Fredrik Söderquist <fs@opera.com>
Reviewed-by: default avatarRune Lillesveen <futhark@chromium.org>
Cr-Commit-Position: refs/heads/master@{#830674}
parent 1ef57027
...@@ -330,69 +330,42 @@ const CSSValue* ComputedStyleUtils::BackgroundPositionYOrWebkitMaskPositionY( ...@@ -330,69 +330,42 @@ const CSSValue* ComputedStyleUtils::BackgroundPositionYOrWebkitMaskPositionY(
return list; return list;
} }
static CSSNumericLiteralValue* ValueForImageSlice(const Length& slice) {
// TODO(alancutter): Make this code aware of calc lengths.
return CSSNumericLiteralValue::Create(
slice.Value(), slice.IsPercentOrCalc()
? CSSPrimitiveValue::UnitType::kPercentage
: CSSPrimitiveValue::UnitType::kNumber);
}
cssvalue::CSSBorderImageSliceValue* cssvalue::CSSBorderImageSliceValue*
ComputedStyleUtils::ValueForNinePieceImageSlice(const NinePieceImage& image) { ComputedStyleUtils::ValueForNinePieceImageSlice(const NinePieceImage& image) {
const LengthBox& slices = image.ImageSlices();
// Create the slices. // Create the slices.
CSSPrimitiveValue* top = nullptr; CSSPrimitiveValue* top = ValueForImageSlice(slices.Top());
CSSPrimitiveValue* right = nullptr; CSSPrimitiveValue* right = nullptr;
CSSPrimitiveValue* bottom = nullptr; CSSPrimitiveValue* bottom = nullptr;
CSSPrimitiveValue* left = nullptr; CSSPrimitiveValue* left = nullptr;
if (slices.Right() == slices.Top() && slices.Bottom() == slices.Top() &&
// TODO(alancutter): Make this code aware of calc lengths. slices.Left() == slices.Top()) {
if (image.ImageSlices().Top().IsPercentOrCalc()) {
top = CSSNumericLiteralValue::Create(
image.ImageSlices().Top().Value(),
CSSPrimitiveValue::UnitType::kPercentage);
} else {
top = CSSNumericLiteralValue::Create(image.ImageSlices().Top().Value(),
CSSPrimitiveValue::UnitType::kNumber);
}
if (image.ImageSlices().Right() == image.ImageSlices().Top() &&
image.ImageSlices().Bottom() == image.ImageSlices().Top() &&
image.ImageSlices().Left() == image.ImageSlices().Top()) {
right = top; right = top;
bottom = top; bottom = top;
left = top; left = top;
} else { } else {
if (image.ImageSlices().Right().IsPercentOrCalc()) { right = ValueForImageSlice(slices.Right());
right = CSSNumericLiteralValue::Create(
image.ImageSlices().Right().Value(),
CSSPrimitiveValue::UnitType::kPercentage);
} else {
right =
CSSNumericLiteralValue::Create(image.ImageSlices().Right().Value(),
CSSPrimitiveValue::UnitType::kNumber);
}
if (image.ImageSlices().Bottom() == image.ImageSlices().Top() && if (slices.Bottom() == slices.Top() && slices.Right() == slices.Left()) {
image.ImageSlices().Right() == image.ImageSlices().Left()) {
bottom = top; bottom = top;
left = right; left = right;
} else { } else {
if (image.ImageSlices().Bottom().IsPercentOrCalc()) { bottom = ValueForImageSlice(slices.Bottom());
bottom = CSSNumericLiteralValue::Create(
image.ImageSlices().Bottom().Value(),
CSSPrimitiveValue::UnitType::kPercentage);
} else {
bottom = CSSNumericLiteralValue::Create(
image.ImageSlices().Bottom().Value(),
CSSPrimitiveValue::UnitType::kNumber);
}
if (image.ImageSlices().Left() == image.ImageSlices().Right()) { if (slices.Left() == slices.Right())
left = right; left = right;
} else { else
if (image.ImageSlices().Left().IsPercentOrCalc()) { left = ValueForImageSlice(slices.Left());
left = CSSNumericLiteralValue::Create(
image.ImageSlices().Left().Value(),
CSSPrimitiveValue::UnitType::kPercentage);
} else {
left = CSSNumericLiteralValue::Create(
image.ImageSlices().Left().Value(),
CSSPrimitiveValue::UnitType::kNumber);
}
}
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment