| Index: Source/core/rendering/RenderBlockFlow.cpp | 
| diff --git a/Source/core/rendering/RenderBlockFlow.cpp b/Source/core/rendering/RenderBlockFlow.cpp | 
| index 0ba9db53f96bedf52594e9b82265d1789dc50d87..0ce41d0edfdc69d6c6387122b54936320971ec4e 100644 | 
| --- a/Source/core/rendering/RenderBlockFlow.cpp | 
| +++ b/Source/core/rendering/RenderBlockFlow.cpp | 
| @@ -342,11 +342,6 @@ inline bool RenderBlockFlow::layoutBlockFlow(bool relayoutChildren, LayoutUnit & | 
|  | 
| LayoutStateMaintainer statePusher(*this, locationOffset(), pageLogicalHeight, pageLogicalHeightChanged, columnInfo()); | 
|  | 
| -    // Regions changing widths can force us to relayout our children. | 
| -    RenderFlowThread* flowThread = flowThreadContainingBlock(); | 
| -    if (updateRegionsAndShapesLogicalSize(flowThread)) | 
| -        relayoutChildren = true; | 
| - | 
| // We use four values, maxTopPos, maxTopNeg, maxBottomPos, and maxBottomNeg, to track | 
| // our current maximal positive and negative margins. These values are used when we | 
| // are collapsed with adjacent blocks, so for example, if you have block A and B | 
| @@ -441,7 +436,7 @@ inline bool RenderBlockFlow::layoutBlockFlow(bool relayoutChildren, LayoutUnit & | 
|  | 
| layoutPositionedObjects(relayoutChildren || isRoot(), oldLeft != logicalLeft() ? ForcedLayoutAfterContainingBlockMoved : DefaultLayout); | 
|  | 
| -    updateRegionsAndShapesAfterChildLayout(flowThread, heightChanged); | 
| +    computeRegionRangeForBlock(flowThreadContainingBlock()); | 
|  | 
| // Add overflow from children (unless we're multi-column, since in that case all our child overflow is clipped anyway). | 
| computeOverflow(oldClientAfterEdge); | 
| @@ -613,7 +608,6 @@ void RenderBlockFlow::layoutBlockChild(RenderBox* child, MarginInfo& marginInfo, | 
| determineLogicalLeftPositionForChild(child, ApplyLayoutDelta); | 
|  | 
| LayoutSize childOffset = child->location() - oldRect.location(); | 
| -    relayoutShapeDescendantIfMoved(childRenderBlock, childOffset); | 
|  | 
| // Update our height now that the child has been placed in the correct position. | 
| setLogicalHeight(logicalHeight() + logicalHeightForChild(child)); | 
| @@ -2143,29 +2137,7 @@ LayoutPoint RenderBlockFlow::computeLogicalLocationForFloat(const FloatingObject | 
| RenderBox* childBox = floatingObject->renderer(); | 
| LayoutUnit logicalLeftOffset = logicalLeftOffsetForContent(); // Constant part of left offset. | 
| LayoutUnit logicalRightOffset; // Constant part of right offset. | 
| -    // FIXME Bug 102948: This only works for shape outside directly set on this block. | 
| -    ShapeInsideInfo* shapeInsideInfo = this->layoutShapeInsideInfo(); | 
| -    // FIXME: Implement behavior for right floats. | 
| -    if (shapeInsideInfo) { | 
| -        LayoutSize floatLogicalSize = logicalSizeForFloat(floatingObject); | 
| -        // floatingObject's logicalSize doesn't contain the actual height at this point, so we need to calculate it | 
| -        floatLogicalSize.setHeight(logicalHeightForChild(childBox) + marginBeforeForChild(childBox) + marginAfterForChild(childBox)); | 
| - | 
| -        // FIXME: If the float doesn't fit in the shape we should push it under the content box | 
| -        logicalTopOffset = shapeInsideInfo->computeFirstFitPositionForFloat(floatLogicalSize); | 
| -        if (logicalHeight() > logicalTopOffset) | 
| -            logicalTopOffset = logicalHeight(); | 
| - | 
| -        SegmentList segments = shapeInsideInfo->computeSegmentsForLine(logicalTopOffset, floatLogicalSize.height()); | 
| -        // FIXME: Add support for shapes with multiple segments. | 
| -        if (segments.size() >= 1) { | 
| -            // The segment offsets are relative to the content box. | 
| -            logicalRightOffset = logicalLeftOffset + segments[0].logicalRight; | 
| -            logicalLeftOffset += segments[0].logicalLeft; | 
| -        } | 
| -    } else { | 
| -        logicalRightOffset = logicalRightOffsetForContent(); | 
| -    } | 
| +    logicalRightOffset = logicalRightOffsetForContent(); | 
|  | 
| LayoutUnit floatLogicalWidth = min(logicalWidthForFloat(floatingObject), logicalRightOffset - logicalLeftOffset); // The width we look for. | 
|  | 
|  |