-
https://bugs.webkit.org/show_bug.cgi?id=46421hyatt@apple.com authored
Reviewed by Dan Bernstein. Added new tests in fast/multicol/vertical-lr and fast/multicol/vertical-rl. Source/WebCore: * css/html.css: Update p, blockquote and h1-h6 to respect directionality so that column layout tests that use those elements work properly. * rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::placeBoxesInBlockDirection): Fix a flipping bug with the computation of lineTopIncludingMargins where it could be incorrectly shrunk in some cases (causing lines to all stack on top of one another). * rendering/InlineTextBox.h: (WebCore::InlineTextBox::calculateBoundaries): Fix calculateBoundaries to be physical rather than logical. * rendering/LayoutState.cpp: (WebCore::LayoutState::addForcedColumnBreak): * rendering/LayoutState.h: Rename childY to childLogicalOffset. * rendering/RenderBlock.cpp: (WebCore::RenderBlock::layoutBlock): (WebCore::RenderBlock::addOverflowFromChildren): (WebCore::RenderBlock::addOverflowFromFloats): (WebCore::RenderBlock::collapseMargins): (WebCore::RenderBlock::estimateLogicalTopPosition): (WebCore::RenderBlock::layoutBlockChild): (WebCore::RenderBlock::markForPaginationRelayoutIfNeeded): (WebCore::RenderBlock::paintColumnRules): (WebCore::RenderBlock::paintColumnContents): (WebCore::RenderBlock::paintFloats): (WebCore::RenderBlock::selectionGaps): (WebCore::RenderBlock::removeFloatingObjectsBelow): (WebCore::RenderBlock::addOverhangingFloats): (WebCore::RenderBlock::hitTestFloats): (WebCore::RenderBlock::hitTestColumns): (WebCore::RenderBlock::calcColumnWidth): (WebCore::RenderBlock::desiredColumnWidth): (WebCore::RenderBlock::columnRectAt): (WebCore::RenderBlock::layoutColumns): (WebCore::RenderBlock::adjustPointToColumnContents): (WebCore::RenderBlock::adjustRectForColumns): (WebCore::RenderBlock::flipForWritingModeIncludingColumns): (WebCore::RenderBlock::adjustForColumns): (WebCore::RenderBlock::adjustForBorderFit): (WebCore::RenderBlock::nextPageLogicalTop): (WebCore::RenderBlock::applyBeforeBreak): (WebCore::RenderBlock::applyAfterBreak): (WebCore::RenderBlock::adjustForUnsplittableChild): (WebCore::RenderBlock::adjustLinePositionForPagination): * rendering/RenderBlock.h: (WebCore::RenderBlock::logicalRightOffsetForContent): (WebCore::RenderBlock::logicalLeftOffsetForContent): (WebCore::RenderBlock::leftForFloatIncludingMargin): (WebCore::RenderBlock::topForFloatIncludingMargin): * rendering/RenderBlockLineLayout.cpp: (WebCore::RenderBlock::layoutInlineChildren): (WebCore::RenderBlock::determineStartPosition): Reworking of all the RenderBlock column functions to support flipping and vertical modes. * rendering/RenderBox.cpp: (WebCore::RenderBox::offsetFromContainer): (WebCore::RenderBox::flipForWritingModeIncludingColumns): Patch offsetFromContainer to be aware of flipped block writing modes when dealing with column layouts. * rendering/RenderBox.h: (WebCore::RenderBox::clientLogicalBottom): Fix a bug in clientLogicalBottom where it didn't add in the right border/padding. * rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::layoutBlock): Better terminology for pagination. * rendering/RenderInline.cpp: (WebCore::RenderInline::offsetFromContainer): (WebCore::RenderInline::mapLocalToContainer): * rendering/RenderLayer.cpp: (WebCore::RenderLayer::paintChildLayerIntoColumns): (WebCore::RenderLayer::hitTestChildLayerColumns): (WebCore::RenderLayer::localBoundingBox): (WebCore::RenderLayer::boundingBox): Patch painting in RenderLayers to be vertical-text-aware. * rendering/RenderObject.cpp: (WebCore::RenderObject::mapLocalToContainer): Add code to be flipped block-aware with columns. * rendering/RenderTable.cpp: (WebCore::RenderTable::layout): * rendering/RenderTableRow.cpp: (WebCore::RenderTableRow::layout): * rendering/RenderTableSection.cpp: (WebCore::RenderTableSection::layoutRows): Fix pagination to use better terminology. * rendering/RenderText.cpp: (WebCore::RenderText::absoluteQuads): (WebCore::RenderText::absoluteQuadsForRange): Fix a bug where vertical text wasn't taken into account. LayoutTests: * fast/multicol/break-properties-expected.txt: * fast/multicol/break-properties.html: * fast/multicol/float-truncation.html: * fast/multicol/vertical-lr: Added. * fast/multicol/vertical-lr/border-padding-pagination.html: Added. * fast/multicol/vertical-lr/break-properties-expected.txt: Added. * fast/multicol/vertical-lr/break-properties.html: Added. * fast/multicol/vertical-lr/column-break-with-balancing.html: Added. * fast/multicol/vertical-lr/column-count-with-rules.html: Added. * fast/multicol/vertical-lr/column-rules.html: Added. * fast/multicol/vertical-lr/float-avoidance.html: Added. * fast/multicol/vertical-lr/float-multicol.html: Added. * fast/multicol/vertical-lr/float-paginate-complex.html: Added. * fast/multicol/vertical-lr/float-paginate.html: Added. * fast/multicol/vertical-lr/float-truncation-expected.txt: Added. * fast/multicol/vertical-lr/float-truncation.html: Added. * fast/multicol/vertical-lr/gap-non-negative-expected.txt: Added. * fast/multicol/vertical-lr/gap-non-negative.html: Added. * fast/multicol/vertical-lr/image-inside-nested-blocks-with-border-expected.txt: Added. * fast/multicol/vertical-lr/image-inside-nested-blocks-with-border.html: Added. * fast/multicol/vertical-lr/nested-columns.html: Added. * fast/multicol/vertical-lr/resources: Added. * fast/multicol/vertical-lr/resources/blimp.png: Added. * fast/multicol/vertical-lr/unsplittable-inline-block.html: Added. * fast/multicol/vertical-rl: Added. * fast/multicol/vertical-rl/border-padding-pagination.html: Added. * fast/multicol/vertical-rl/break-properties-expected.txt: Added. * fast/multicol/vertical-rl/break-properties.html: Added. * fast/multicol/vertical-rl/column-break-with-balancing.html: Added. * fast/multicol/vertical-rl/column-count-with-rules.html: Added. * fast/multicol/vertical-rl/column-rules.html: Added. * fast/multicol/vertical-rl/float-avoidance.html: Added. * fast/multicol/vertical-rl/float-multicol.html: Added. * fast/multicol/vertical-rl/float-paginate-complex.html: Added. * fast/multicol/vertical-rl/float-paginate.html: Added. * fast/multicol/vertical-rl/float-truncation-expected.txt: Added. * fast/multicol/vertical-rl/float-truncation.html: Added. * fast/multicol/vertical-rl/gap-non-negative-expected.txt: Added. * fast/multicol/vertical-rl/gap-non-negative.html: Added. * fast/multicol/vertical-rl/image-inside-nested-blocks-with-border-expected.txt: Added. * fast/multicol/vertical-rl/image-inside-nested-blocks-with-border.html: Added. * fast/multicol/vertical-rl/nested-columns.html: Added. * fast/multicol/vertical-rl/resources: Added. * fast/multicol/vertical-rl/resources/blimp.png: Added. * fast/multicol/vertical-rl/unsplittable-inline-block.html: Added. * platform/mac/fast/multicol/vertical-lr: Added. * platform/mac/fast/multicol/vertical-lr/border-padding-pagination-expected.checksum: Added. * platform/mac/fast/multicol/vertical-lr/border-padding-pagination-expected.png: Added. * platform/mac/fast/multicol/vertical-lr/border-padding-pagination-expected.txt: Added. * platform/mac/fast/multicol/vertical-lr/column-break-with-balancing-expected.checksum: Added. * platform/mac/fast/multicol/vertical-lr/column-break-with-balancing-expected.png: Added. * platform/mac/fast/multicol/vertical-lr/column-break-with-balancing-expected.txt: Added. * platform/mac/fast/multicol/vertical-lr/column-count-with-rules-expected.checksum: Added. * platform/mac/fast/multicol/vertical-lr/column-count-with-rules-expected.png: Added. * platform/mac/fast/multicol/vertical-lr/column-count-with-rules-expected.txt: Added. * platform/mac/fast/multicol/vertical-lr/column-rules-expected.checksum: Added. * platform/mac/fast/multicol/vertical-lr/column-rules-expected.png: Added. * platform/mac/fast/multicol/vertical-lr/column-rules-expected.txt: Added. * platform/mac/fast/multicol/vertical-lr/float-avoidance-expected.checksum: Added. * platform/mac/fast/multicol/vertical-lr/float-avoidance-expected.png: Added. * platform/mac/fast/multicol/vertical-lr/float-avoidance-expected.txt: Added. * platform/mac/fast/multicol/vertical-lr/float-multicol-expected.checksum: Added. * platform/mac/fast/multicol/vertical-lr/float-multicol-expected.png: Added. * platform/mac/fast/multicol/vertical-lr/float-multicol-expected.txt: Added. * platform/mac/fast/multicol/vertical-lr/float-paginate-complex-expected.checksum: Added. * platform/mac/fast/multicol/vertical-lr/float-paginate-complex-expected.png: Added. * platform/mac/fast/multicol/vertical-lr/float-paginate-complex-expected.txt: Added. * platform/mac/fast/multicol/vertical-lr/float-paginate-expected.checksum: Added. * platform/mac/fast/multicol/vertical-lr/float-paginate-expected.png: Added. * platform/mac/fast/multicol/vertical-lr/float-paginate-expected.txt: Added. * platform/mac/fast/multicol/vertical-lr/nested-columns-expected.checksum: Added. * platform/mac/fast/multicol/vertical-lr/nested-columns-expected.png: Added. * platform/mac/fast/multicol/vertical-lr/nested-columns-expected.txt: Added. * platform/mac/fast/multicol/vertical-lr/unsplittable-inline-block-expected.checksum: Added. * platform/mac/fast/multicol/vertical-lr/unsplittable-inline-block-expected.png: Added. * platform/mac/fast/multicol/vertical-lr/unsplittable-inline-block-expected.txt: Added. * platform/mac/fast/multicol/vertical-rl: Added. * platform/mac/fast/multicol/vertical-rl/border-padding-pagination-expected.checksum: Added. * platform/mac/fast/multicol/vertical-rl/border-padding-pagination-expected.png: Added. * platform/mac/fast/multicol/vertical-rl/border-padding-pagination-expected.txt: Added. * platform/mac/fast/multicol/vertical-rl/column-break-with-balancing-expected.checksum: Added. * platform/mac/fast/multicol/vertical-rl/column-break-with-balancing-expected.png: Added. * platform/mac/fast/multicol/vertical-rl/column-break-with-balancing-expected.txt: Added. * platform/mac/fast/multicol/vertical-rl/column-count-with-rules-expected.checksum: Added. * platform/mac/fast/multicol/vertical-rl/column-count-with-rules-expected.png: Added. * platform/mac/fast/multicol/vertical-rl/column-count-with-rules-expected.txt: Added. * platform/mac/fast/multicol/vertical-rl/column-rules-expected.checksum: Added. * platform/mac/fast/multicol/vertical-rl/column-rules-expected.png: Added. * platform/mac/fast/multicol/vertical-rl/column-rules-expected.txt: Added. * platform/mac/fast/multicol/vertical-rl/float-avoidance-expected.checksum: Added. * platform/mac/fast/multicol/vertical-rl/float-avoidance-expected.png: Added. * platform/mac/fast/multicol/vertical-rl/float-avoidance-expected.txt: Added. * platform/mac/fast/multicol/vertical-rl/float-multicol-expected.checksum: Added. * platform/mac/fast/multicol/vertical-rl/float-multicol-expected.png: Added. * platform/mac/fast/multicol/vertical-rl/float-multicol-expected.txt: Added. * platform/mac/fast/multicol/vertical-rl/float-paginate-complex-expected.checksum: Added. * platform/mac/fast/multicol/vertical-rl/float-paginate-complex-expected.png: Added. * platform/mac/fast/multicol/vertical-rl/float-paginate-complex-expected.txt: Added. * platform/mac/fast/multicol/vertical-rl/float-paginate-expected.checksum: Added. * platform/mac/fast/multicol/vertical-rl/float-paginate-expected.png: Added. * platform/mac/fast/multicol/vertical-rl/float-paginate-expected.txt: Added. * platform/mac/fast/multicol/vertical-rl/nested-columns-expected.checksum: Added. * platform/mac/fast/multicol/vertical-rl/nested-columns-expected.png: Added. * platform/mac/fast/multicol/vertical-rl/nested-columns-expected.txt: Added. * platform/mac/fast/multicol/vertical-rl/unsplittable-inline-block-expected.checksum: Added. * platform/mac/fast/multicol/vertical-rl/unsplittable-inline-block-expected.png: Added. * platform/mac/fast/multicol/vertical-rl/unsplittable-inline-block-expected.txt: Added. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@76726 268f45cc-cd09-0410-ab3c-d52691b4dbfc
61bbedf5