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

Unified Diff: third_party/WebKit/Source/core/paint/BackgroundImageGeometry.cpp

Issue 1660863002: Force all LayoutUnit construction to be explicit (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Also fix LayoutRectTest.cpp Created 4 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/paint/BackgroundImageGeometry.cpp
diff --git a/third_party/WebKit/Source/core/paint/BackgroundImageGeometry.cpp b/third_party/WebKit/Source/core/paint/BackgroundImageGeometry.cpp
index c10a2d255469345531b8a9000d61f34faad35e6f..5de58bf6baff7f948809727fb61ab65e331606cb 100644
--- a/third_party/WebKit/Source/core/paint/BackgroundImageGeometry.cpp
+++ b/third_party/WebKit/Source/core/paint/BackgroundImageGeometry.cpp
@@ -21,7 +21,7 @@ namespace {
inline LayoutUnit getSpaceBetweenImageTiles(LayoutUnit areaSize, LayoutUnit tileSize)
{
int numberOfTiles = areaSize / tileSize;
- LayoutUnit space = -1;
+ LayoutUnit space(-1);
if (numberOfTiles > 1) {
// Spec doesn't specify rounding, so use the same method as for background-repeat: round.
@@ -63,12 +63,12 @@ LayoutSize calculateFillTileSize(const LayoutBoxModelObject& obj, const FillLaye
Length layerHeight = fillLayer.size().size.height();
if (layerWidth.isFixed())
- tileSize.setWidth(layerWidth.value());
+ tileSize.setWidth(LayoutUnit(layerWidth.value()));
else if (layerWidth.hasPercent())
tileSize.setWidth(valueForLength(layerWidth, positioningAreaSize.width()));
if (layerHeight.isFixed())
- tileSize.setHeight(layerHeight.value());
+ tileSize.setHeight(LayoutUnit(layerHeight.value()));
else if (layerHeight.hasPercent())
tileSize.setHeight(valueForLength(layerHeight, positioningAreaSize.height()));
@@ -78,14 +78,14 @@ LayoutSize calculateFillTileSize(const LayoutBoxModelObject& obj, const FillLaye
if (imageIntrinsicSize.height()) {
LayoutUnit adjustedWidth = imageIntrinsicSize.width() * tileSize.height() / imageIntrinsicSize.height();
if (imageIntrinsicSize.width() >= 1 && adjustedWidth < 1)
- adjustedWidth = 1;
+ adjustedWidth = LayoutUnit(1);
tileSize.setWidth(adjustedWidth);
}
} else if (!layerWidth.isAuto() && layerHeight.isAuto()) {
if (imageIntrinsicSize.width()) {
LayoutUnit adjustedHeight = imageIntrinsicSize.height() * tileSize.width() / imageIntrinsicSize.width();
if (imageIntrinsicSize.height() >= 1 && adjustedHeight < 1)
- adjustedHeight = 1;
+ adjustedHeight = LayoutUnit(1);
tileSize.setHeight(adjustedHeight);
}
} else if (layerWidth.isAuto() && layerHeight.isAuto()) {
@@ -107,11 +107,12 @@ LayoutSize calculateFillTileSize(const LayoutBoxModelObject& obj, const FillLaye
case Contain:
case Cover: {
float horizontalScaleFactor = imageIntrinsicSize.width()
- ? positioningAreaSize.width().toFloat() / imageIntrinsicSize.width() : 1;
+ ? positioningAreaSize.width().toFloat() / imageIntrinsicSize.width() : 1.0f;
float verticalScaleFactor = imageIntrinsicSize.height()
- ? positioningAreaSize.height().toFloat() / imageIntrinsicSize.height() : 1;
+ ? positioningAreaSize.height().toFloat() / imageIntrinsicSize.height() : 1.0f;
float scaleFactor = type == Contain ? std::min(horizontalScaleFactor, verticalScaleFactor) : std::max(horizontalScaleFactor, verticalScaleFactor);
- return LayoutSize(std::max<LayoutUnit>(1, imageIntrinsicSize.width() * scaleFactor), std::max<LayoutUnit>(1, imageIntrinsicSize.height() * scaleFactor));
+ return LayoutSize(std::max(1.0f, imageIntrinsicSize.width() * scaleFactor),
+ std::max(1.0f, imageIntrinsicSize.height() * scaleFactor));
}
}
@@ -221,10 +222,10 @@ void BackgroundImageGeometry::calculate(const LayoutBoxModelObject& obj, const L
LayoutUnit bottom;
// Scroll and Local.
if (fillLayer.origin() != BorderFillBox) {
- left = positioningBox.borderLeft();
- right = positioningBox.borderRight();
- top = positioningBox.borderTop();
- bottom = positioningBox.borderBottom();
+ left = LayoutUnit(positioningBox.borderLeft());
+ right = LayoutUnit(positioningBox.borderRight());
+ top = LayoutUnit(positioningBox.borderTop());
+ bottom = LayoutUnit(positioningBox.borderBottom());
if (fillLayer.origin() == ContentFillBox) {
left += positioningBox.paddingLeft();
right += positioningBox.paddingRight();
@@ -293,7 +294,8 @@ void BackgroundImageGeometry::calculate(const LayoutBoxModelObject& obj, const L
setTileSize(fillTileSize);
setImageContainerSize(fillTileSize);
- setPhaseX(tileSize().width() ? tileSize().width() - fmodf((computedXPosition + left), tileSize().width()) : 0.0f);
+ setPhaseX(tileSize().width() ? LayoutUnit(tileSize().width() - fmodf((computedXPosition + left), tileSize().width()))
+ : LayoutUnit());
setSpaceSize(LayoutSize());
}
@@ -310,13 +312,15 @@ void BackgroundImageGeometry::calculate(const LayoutBoxModelObject& obj, const L
setTileSize(fillTileSize);
setImageContainerSize(fillTileSize);
- setPhaseY(tileSize().height() ? tileSize().height() - fmodf((computedYPosition + top), tileSize().height()) : 0.0f);
+ setPhaseY(tileSize().height() ? LayoutUnit(tileSize().height() - fmodf((computedYPosition + top), tileSize().height()))
+ : LayoutUnit());
setSpaceSize(LayoutSize());
}
if (backgroundRepeatX == RepeatFill) {
LayoutUnit xOffset = fillLayer.backgroundXOrigin() == RightEdge ? availableWidth - computedXPosition : computedXPosition;
- setPhaseX(tileSize().width() ? tileSize().width() - fmodf((xOffset + left), tileSize().width()) : 0.0f);
+ setPhaseX(tileSize().width() ? LayoutUnit(tileSize().width() - fmodf((xOffset + left), tileSize().width()))
+ : LayoutUnit());
setSpaceSize(LayoutSize());
} else if (backgroundRepeatX == SpaceFill && fillTileSize.width() > LayoutUnit()) {
LayoutUnit space = getSpaceBetweenImageTiles(positioningAreaSize.width(), tileSize().width());
@@ -325,7 +329,7 @@ void BackgroundImageGeometry::calculate(const LayoutBoxModelObject& obj, const L
if (space >= LayoutUnit()) {
computedXPosition = roundedMinimumValueForLength(Length(), availableWidth);
setSpaceSize(LayoutSize(space, LayoutUnit()));
- setPhaseX(actualWidth ? actualWidth - fmodf((computedXPosition + left), actualWidth) : 0.0f);
+ setPhaseX(actualWidth ? LayoutUnit(actualWidth - fmodf((computedXPosition + left), actualWidth)) : LayoutUnit());
} else {
backgroundRepeatX = NoRepeatFill;
}
@@ -338,7 +342,8 @@ void BackgroundImageGeometry::calculate(const LayoutBoxModelObject& obj, const L
if (backgroundRepeatY == RepeatFill) {
LayoutUnit yOffset = fillLayer.backgroundYOrigin() == BottomEdge ? availableHeight - computedYPosition : computedYPosition;
- setPhaseY(tileSize().height() ? tileSize().height() - fmodf((yOffset + top), tileSize().height()) : 0.0f);
+ setPhaseY(tileSize().height() ? LayoutUnit(tileSize().height() - fmodf((yOffset + top), tileSize().height()))
+ : LayoutUnit());
setSpaceSize(LayoutSize(spaceSize().width(), LayoutUnit()));
} else if (backgroundRepeatY == SpaceFill && fillTileSize.height() > LayoutUnit()) {
LayoutUnit space = getSpaceBetweenImageTiles(positioningAreaSize.height(), tileSize().height());
@@ -347,7 +352,7 @@ void BackgroundImageGeometry::calculate(const LayoutBoxModelObject& obj, const L
if (space >= LayoutUnit()) {
computedYPosition = roundedMinimumValueForLength(Length(), availableHeight);
setSpaceSize(LayoutSize(spaceSize().width(), space));
- setPhaseY(actualHeight ? actualHeight - fmodf((computedYPosition + top), actualHeight) : 0.0f);
+ setPhaseY(actualHeight ? LayoutUnit(actualHeight - fmodf((computedYPosition + top), actualHeight)) : LayoutUnit());
} else {
backgroundRepeatY = NoRepeatFill;
}

Powered by Google App Engine
This is Rietveld 408576698