Chromium Code Reviews| Index: Source/core/rendering/RenderBox.cpp |
| diff --git a/Source/core/rendering/RenderBox.cpp b/Source/core/rendering/RenderBox.cpp |
| index 356f8d868f1f483623db8d66f6b639b43fb3d2ac..a70a75e403ddf77bdf9cfd77b34795285488ece1 100644 |
| --- a/Source/core/rendering/RenderBox.cpp |
| +++ b/Source/core/rendering/RenderBox.cpp |
| @@ -1763,7 +1763,7 @@ void RenderBox::mapRectToPaintInvalidationBacking(const RenderLayerModelObject* |
| } |
| if (paintInvalidationContainer == this) { |
| - if (paintInvalidationContainer->style()->isFlippedBlocksWritingMode()) |
| + if (paintInvalidationContainer->style()->slowIsFlippedBlocksWritingMode()) |
| flipForWritingMode(rect); |
| return; |
| } |
| @@ -2918,7 +2918,7 @@ static void computeLogicalLeftPositionedOffset(LayoutUnit& logicalLeftPos, const |
| { |
| // Deal with differing writing modes here. Our offset needs to be in the containing block's coordinate space. If the containing block is flipped |
| // along this axis, then we need to flip the coordinate. This can only happen if the containing block is both a flipped mode and perpendicular to us. |
| - if (containerBlock->isHorizontalWritingMode() != child->isHorizontalWritingMode() && containerBlock->style()->isFlippedBlocksWritingMode()) { |
| + if (containerBlock->isHorizontalWritingMode() != child->isHorizontalWritingMode() && containerBlock->style()->slowIsFlippedBlocksWritingMode()) { |
| logicalLeftPos = containerLogicalWidth - logicalWidthValue - logicalLeftPos; |
| logicalLeftPos += (child->isHorizontalWritingMode() ? containerBlock->borderRight() : containerBlock->borderBottom()); |
| } else { |
| @@ -3229,12 +3229,12 @@ static void computeLogicalTopPositionedOffset(LayoutUnit& logicalTopPos, const R |
| { |
| // Deal with differing writing modes here. Our offset needs to be in the containing block's coordinate space. If the containing block is flipped |
| // along this axis, then we need to flip the coordinate. This can only happen if the containing block is both a flipped mode and perpendicular to us. |
| - if ((child->style()->isFlippedBlocksWritingMode() && child->isHorizontalWritingMode() != containerBlock->isHorizontalWritingMode()) |
| - || (child->style()->isFlippedBlocksWritingMode() != containerBlock->style()->isFlippedBlocksWritingMode() && child->isHorizontalWritingMode() == containerBlock->isHorizontalWritingMode())) |
| + if ((child->style()->slowIsFlippedBlocksWritingMode() && child->isHorizontalWritingMode() != containerBlock->isHorizontalWritingMode()) |
| + || (child->style()->slowIsFlippedBlocksWritingMode() != containerBlock->style()->slowIsFlippedBlocksWritingMode() && child->isHorizontalWritingMode() == containerBlock->isHorizontalWritingMode())) |
| logicalTopPos = containerLogicalHeight - logicalHeightValue - logicalTopPos; |
| // Our offset is from the logical bottom edge in a flipped environment, e.g., right for vertical-rl and bottom for horizontal-bt. |
| - if (containerBlock->style()->isFlippedBlocksWritingMode() && child->isHorizontalWritingMode() == containerBlock->isHorizontalWritingMode()) { |
| + if (containerBlock->style()->slowIsFlippedBlocksWritingMode() && child->isHorizontalWritingMode() == containerBlock->isHorizontalWritingMode()) { |
|
chrishtr
2014/10/28 18:18:21
Are cases like this ones that didn't make the metr
|
| if (child->isHorizontalWritingMode()) |
| logicalTopPos += containerBlock->borderBottom(); |
| else |
| @@ -4339,7 +4339,9 @@ LayoutUnit RenderBox::offsetTop() const |
| LayoutPoint RenderBox::flipForWritingModeForChild(const RenderBox* child, const LayoutPoint& point) const |
| { |
| - if (!style()->isFlippedBlocksWritingMode()) |
| + if (!UNLIKELY(document().containsAnyRareWritingMode())) |
| + return point; |
| + if (!style()->slowIsFlippedBlocksWritingMode()) |
| return point; |
| // The child is going to add in its x() and y(), so we have to make sure it ends up in |
| @@ -4349,63 +4351,15 @@ LayoutPoint RenderBox::flipForWritingModeForChild(const RenderBox* child, const |
| return LayoutPoint(point.x() + width() - child->width() - (2 * child->x()), point.y()); |
| } |
| -void RenderBox::flipForWritingMode(LayoutRect& rect) const |
| -{ |
| - if (!style()->isFlippedBlocksWritingMode()) |
| - return; |
| - |
| - if (isHorizontalWritingMode()) |
| - rect.setY(height() - rect.maxY()); |
| - else |
| - rect.setX(width() - rect.maxX()); |
| -} |
| - |
| -LayoutUnit RenderBox::flipForWritingMode(LayoutUnit position) const |
| -{ |
| - if (!style()->isFlippedBlocksWritingMode()) |
| - return position; |
| - return logicalHeight() - position; |
| -} |
| - |
| -LayoutPoint RenderBox::flipForWritingMode(const LayoutPoint& position) const |
| -{ |
| - if (!style()->isFlippedBlocksWritingMode()) |
| - return position; |
| - return isHorizontalWritingMode() ? LayoutPoint(position.x(), height() - position.y()) : LayoutPoint(width() - position.x(), position.y()); |
| -} |
| - |
| LayoutPoint RenderBox::flipForWritingModeIncludingColumns(const LayoutPoint& point) const |
| { |
| - if (!hasColumns() || !style()->isFlippedBlocksWritingMode()) |
| + if (!UNLIKELY(document().containsAnyRareWritingMode())) |
| + return point; |
| + if (!hasColumns() || !style()->slowIsFlippedBlocksWritingMode()) |
| return flipForWritingMode(point); |
| return toRenderBlock(this)->flipForWritingModeIncludingColumns(point); |
| } |
| -LayoutSize RenderBox::flipForWritingMode(const LayoutSize& offset) const |
| -{ |
| - if (!style()->isFlippedBlocksWritingMode()) |
| - return offset; |
| - return isHorizontalWritingMode() ? LayoutSize(offset.width(), height() - offset.height()) : LayoutSize(width() - offset.width(), offset.height()); |
| -} |
| - |
| -FloatPoint RenderBox::flipForWritingMode(const FloatPoint& position) const |
| -{ |
| - if (!style()->isFlippedBlocksWritingMode()) |
| - return position; |
| - return isHorizontalWritingMode() ? FloatPoint(position.x(), height() - position.y()) : FloatPoint(width() - position.x(), position.y()); |
| -} |
| - |
| -void RenderBox::flipForWritingMode(FloatRect& rect) const |
| -{ |
| - if (!style()->isFlippedBlocksWritingMode()) |
| - return; |
| - |
| - if (isHorizontalWritingMode()) |
| - rect.setY(height() - rect.maxY()); |
| - else |
| - rect.setX(width() - rect.maxX()); |
| -} |
| - |
| LayoutPoint RenderBox::topLeftLocation() const |
| { |
| RenderBlock* containerBlock = containingBlock(); |