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 2ec51b646d40123f1b6ffe49813f36cc4793ee12..4d0f7f2c775dd52f243df8a1eafba61d65e0115c 100644 |
--- a/third_party/WebKit/Source/core/paint/BackgroundImageGeometry.cpp |
+++ b/third_party/WebKit/Source/core/paint/BackgroundImageGeometry.cpp |
@@ -17,14 +17,16 @@ namespace blink { |
namespace { |
-// Return the amount of space to leave between image tiles for the background-repeat: space property. |
+// Return the amount of space to leave between image tiles for the |
+// background-repeat: space property. |
inline LayoutUnit getSpaceBetweenImageTiles(LayoutUnit areaSize, |
LayoutUnit tileSize) { |
int numberOfTiles = (areaSize / tileSize).toInt(); |
LayoutUnit space(-1); |
if (numberOfTiles > 1) { |
- // Spec doesn't specify rounding, so use the same method as for background-repeat: round. |
+ // Spec doesn't specify rounding, so use the same method as for |
+ // background-repeat: round. |
space = (areaSize - numberOfTiles * tileSize) / (numberOfTiles - 1); |
} |
@@ -106,11 +108,13 @@ LayoutSize calculateFillTileSize(const LayoutBoxModelObject& obj, |
return tileSize; |
} |
case SizeNone: { |
- // If both values are 'auto' then the intrinsic width and/or height of the image should be used, if any. |
+ // If both values are 'auto' then the intrinsic width and/or height of the |
+ // image should be used, if any. |
if (!imageIntrinsicSize.isEmpty()) |
return imageIntrinsicSize; |
- // If the image has neither an intrinsic width nor an intrinsic height, its size is determined as for 'contain'. |
+ // If the image has neither an intrinsic width nor an intrinsic height, |
+ // its size is determined as for 'contain'. |
type = Contain; |
} |
case Contain: |
@@ -125,9 +129,9 @@ LayoutSize calculateFillTileSize(const LayoutBoxModelObject& obj, |
imageIntrinsicSize.height() |
: 1.0f; |
// Force the dimension that determines the size to exactly match the |
- // positioningAreaSize in that dimension, so that rounding of floating point |
- // approximation to LayoutUnit do not shrink the image to smaller than the |
- // positioningAreaSize. |
+ // positioningAreaSize in that dimension, so that rounding of floating |
+ // point approximation to LayoutUnit do not shrink the image to smaller |
+ // than the positioningAreaSize. |
if (type == Contain) { |
if (horizontalScaleFactor < verticalScaleFactor) |
return LayoutSize( |
@@ -169,12 +173,12 @@ IntPoint accumulatedScrollOffsetForFixedBackground( |
return result; |
} |
-// When we match the sub-pixel fraction of the destination rect in a dimension, we |
-// snap the same way. This commonly occurs when the background is meant to fill the |
-// padding box but there's a border (which in Blink is always stored as an integer). |
-// Otherwise we floor to avoid growing our tile size. Often these tiles are from a |
-// sprite map, and bleeding adjacent sprites is visually worse than clipping the |
-// intended one. |
+// When we match the sub-pixel fraction of the destination rect in a dimension, |
+// we snap the same way. This commonly occurs when the background is meant to |
+// fill the padding box but there's a border (which in Blink is always stored as |
+// an integer). Otherwise we floor to avoid growing our tile size. Often these |
+// tiles are from a sprite map, and bleeding adjacent sprites is visually worse |
+// than clipping the intended one. |
LayoutSize applySubPixelHeuristicToImageSize(const LayoutSize& size, |
const LayoutRect& destination) { |
LayoutSize snappedSize = |
@@ -210,8 +214,9 @@ void BackgroundImageGeometry::setRepeatX(const FillLayer& fillLayer, |
LayoutUnit snappedAvailableWidth, |
LayoutUnit unsnappedAvailableWidth, |
LayoutUnit extraOffset) { |
- // We would like to identify the phase as a fraction of the image size in the absence of snapping, |
- // then re-apply it to the snapped values. This is to handle large positions. |
+ // We would like to identify the phase as a fraction of the image size in the |
+ // absence of snapping, then re-apply it to the snapped values. This is to |
+ // handle large positions. |
if (unsnappedTileWidth) { |
LayoutUnit computedXPosition = roundedMinimumValueForLength( |
fillLayer.xPosition(), unsnappedAvailableWidth); |
@@ -243,8 +248,9 @@ void BackgroundImageGeometry::setRepeatY(const FillLayer& fillLayer, |
LayoutUnit snappedAvailableHeight, |
LayoutUnit unsnappedAvailableHeight, |
LayoutUnit extraOffset) { |
- // We would like to identify the phase as a fraction of the image size in the absence of snapping, |
- // then re-apply it to the snapped values. This is to handle large positions. |
+ // We would like to identify the phase as a fraction of the image size in the |
+ // absence of snapping, then re-apply it to the snapped values. This is to |
+ // handle large positions. |
if (unsnappedTileHeight) { |
LayoutUnit computedYPosition = roundedMinimumValueForLength( |
fillLayer.yPosition(), unsnappedAvailableHeight); |
@@ -329,16 +335,18 @@ void BackgroundImageGeometry::calculate( |
const LayoutBoxModelObject& positioningBox = |
isLayoutView ? static_cast<const LayoutBoxModelObject&>(*rootBox) : obj; |
- // Determine the background positioning area and set destRect to the background painting area. |
- // destRect will be adjusted later if the background is non-repeating. |
- // FIXME: transforms spec says that fixed backgrounds behave like scroll inside transforms. |
+ // Determine the background positioning area and set destRect to the |
+ // background painting area. destRect will be adjusted later if the |
+ // background is non-repeating. |
+ // FIXME: transforms spec says that fixed backgrounds behave like scroll |
+ // inside transforms. |
bool fixedAttachment = fillLayer.attachment() == FixedBackgroundAttachment; |
if (RuntimeEnabledFeatures::fastMobileScrollingEnabled()) { |
- // As a side effect of an optimization to blit on scroll, we do not honor the CSS |
- // property "background-attachment: fixed" because it may result in rendering |
- // artifacts. Note, these artifacts only appear if we are blitting on scroll of |
- // a page that has fixed background images. |
+ // As a side effect of an optimization to blit on scroll, we do not honor |
+ // the CSS property "background-attachment: fixed" because it may result in |
+ // rendering artifacts. Note, these artifacts only appear if we are blitting |
+ // on scroll of a page that has fixed background images. |
fixedAttachment = false; |
} |
@@ -362,15 +370,16 @@ void BackgroundImageGeometry::calculate( |
} |
if (isLayoutView) { |
- // The background of the box generated by the root element covers the entire canvas and will |
- // be painted by the view object, but the we should still use the root element box for |
- // positioning. |
+ // The background of the box generated by the root element covers the |
+ // entire canvas and will be painted by the view object, but the we should |
+ // still use the root element box for positioning. |
positioningAreaSize = |
rootBox->size() - LayoutSize(left + right, top + bottom), |
rootBox->location(); |
- // The input paint rect is specified in root element local coordinate (i.e. a transform |
- // is applied on the context for painting), and is expanded to cover the whole canvas. |
- // Since left/top is relative to the paint rect, we need to offset them back. |
+ // The input paint rect is specified in root element local coordinate |
+ // (i.e. a transform is applied on the context for painting), and is |
+ // expanded to cover the whole canvas. Since left/top is relative to the |
+ // paint rect, we need to offset them back. |
left -= paintRect.x(); |
top -= paintRect.y(); |
} else { |
@@ -402,8 +411,9 @@ void BackgroundImageGeometry::calculate( |
LayoutSize fillTileSize( |
calculateFillTileSize(positioningBox, fillLayer, positioningAreaSize)); |
- // It's necessary to apply the heuristic here prior to any further calculations to avoid |
- // incorrectly using sub-pixel values that won't be present in the painted tile. |
+ // It's necessary to apply the heuristic here prior to any further |
+ // calculations to avoid incorrectly using sub-pixel values that won't be |
+ // present in the painted tile. |
setTileSize(applySubPixelHeuristicToImageSize(fillTileSize, m_destRect)); |
EFillRepeat backgroundRepeatX = fillLayer.repeatX(); |