Changeset 179724 in webkit
- Timestamp:
- Feb 5, 2015, 4:53:37 PM (12 years ago)
- Location:
- branches/safari-600.1.4.15-branch
- Files:
-
- 10 edited
- 2 copied
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/fast/multicol/table-dynamic-movement-expected.html (copied) (copied from trunk/LayoutTests/fast/multicol/table-dynamic-movement-expected.html )
-
LayoutTests/fast/multicol/table-dynamic-movement.html (copied) (copied from trunk/LayoutTests/fast/multicol/table-dynamic-movement.html )
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/rendering/RenderBlock.cpp (modified) (2 diffs)
-
Source/WebCore/rendering/RenderBlock.h (modified) (1 diff)
-
Source/WebCore/rendering/RenderBlockFlow.cpp (modified) (4 diffs)
-
Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp (modified) (3 diffs)
-
Source/WebCore/rendering/RenderTable.cpp (modified) (1 diff)
-
Source/WebCore/rendering/RenderTable.h (modified) (1 diff)
-
Source/WebCore/rendering/RenderTableRow.cpp (modified) (1 diff)
-
Source/WebCore/rendering/RenderTableSection.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/safari-600.1.4.15-branch/LayoutTests/ChangeLog
r179722 r179724 1 2015-02-05 Lucas Forschler <lforschler@apple.com> 2 3 Merge r179627 4 5 2015-02-03 David Hyatt <hyatt@apple.com> 6 7 Tables don't repaginate properly when the pagination height changes or the pagination offset changes. 8 https://bugs.webkit.org/show_bug.cgi?id=141207 9 <rdar://problem/18387659> 10 11 Reviewed by Dean Jackson. 12 13 * fast/multicol/table-dynamic-movement-expected.html: Added. 14 * fast/multicol/table-dynamic-movement.html: Added. 15 16 2015-02-04 Said Abou-Hallawa <sabouhallawa@apple.com> 17 18 When using SVG as an image, we should load datauri images when these images are not in the image cache. 19 https://bugs.webkit.org/show_bug.cgi?id=99677. 20 21 Reviewed by Darin Adler. 22 23 * svg/as-image/resources/image-with-nested-data-uri-images.svg: Added. 24 This SVG has a tree of depth = 5 of nested data URI images. All the data URI images are 25 SVG images expect the innermost one which is a png data URI image. 26 27 * svg/as-image/resources/image-with-nested-rects.svg: Added. 28 This SVG produces the same drawing as image-with-nested-data-uri-images.svg does but 29 it uses <rect> SVG elements instead. 30 31 * svg/as-image/svg-image-with-data-uri-background-expected.html: Added. 32 * svg/as-image/svg-image-with-data-uri-background.html: Added. 33 Test the data URI SVG as a css background image. 34 35 * svg/as-image/svg-image-with-data-uri-from-canvas-expected.html: Added. 36 * svg/as-image/svg-image-with-data-uri-from-canvas.html: Added. 37 Test the data URI image when it is the result of drawing an SVG image on a canvas object. 38 39 * svg/as-image/svg-image-with-data-uri-images-disabled-expected.html: Added. 40 * svg/as-image/svg-image-with-data-uri-images-disabled.html: Added. 41 Ensure the data uri images are not loaded if imagesEnabled is turned off. 42 43 * svg/as-image/svg-image-with-data-uri-reloading-expected.html: Added. 44 * svg/as-image/svg-image-with-data-uri-reloading.html: Added. 45 Test the data URI SVG when reloading the page. 46 47 * svg/as-image/svg-image-with-data-uri-use-data-uri-expected.svg: Added. 48 * svg/as-image/svg-image-with-data-uri-use-data-uri.svg: Added. 49 Test the data URI image when it is referenced from an SVG <use> tag. 50 51 * svg/as-image/svg-image-with-svg-data-uri-expected.html: Added. 52 * svg/as-image/svg-image-with-svg-data-uri.html: Added. 53 Test the data URI image when it is referenced from an HTML <img> tag. 54 1 55 2015-02-05 Lucas Forschler <lforschler@apple.com> 2 56 -
branches/safari-600.1.4.15-branch/Source/WebCore/ChangeLog
r179722 r179724 1 2015-02-05 Lucas Forschler <lforschler@apple.com> 2 3 Merge r179627 4 5 2015-02-03 David Hyatt <hyatt@apple.com> 6 7 Tables don't repaginate properly when the pagination height changes or the pagination offset changes. 8 https://bugs.webkit.org/show_bug.cgi?id=141207 9 <rdar://problem/18387659> 10 11 Reviewed by Dean Jackson. 12 13 Added fast/multicol/table-dynamic-movement.html 14 15 Change markForPaginationRelayoutIfNeeded to be called always and to check needsLayout inside it. 16 17 Make RenderTable override markForPaginationRelayoutIfNeeded and also dirty the sections if the table 18 ended up getting marked for relayout. 19 20 Make sure rows do the right thing as well. 21 22 * rendering/RenderBlock.cpp: 23 (WebCore::RenderBlock::layoutPositionedObjects): 24 (WebCore::RenderBlock::markForPaginationRelayoutIfNeeded): 25 * rendering/RenderBlock.h: 26 * rendering/RenderBlockFlow.cpp: 27 (WebCore::RenderBlockFlow::layoutBlockChild): 28 (WebCore::RenderBlockFlow::adjustBlockChildForPagination): 29 (WebCore::RenderBlockFlow::positionNewFloats): 30 * rendering/RenderDeprecatedFlexibleBox.cpp: 31 (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox): 32 (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox): 33 * rendering/RenderTable.cpp: 34 (WebCore::RenderTable::markForPaginationRelayoutIfNeeded): 35 * rendering/RenderTable.h: 36 * rendering/RenderTableRow.cpp: 37 (WebCore::RenderTableRow::layout): 38 * rendering/RenderTableSection.cpp: 39 (WebCore::RenderTableSection::layout): 40 1 41 2015-02-05 Lucas Forschler <lforschler@apple.com> 2 42 -
branches/safari-600.1.4.15-branch/Source/WebCore/rendering/RenderBlock.cpp
r179071 r179724 1433 1433 r.setPreferredLogicalWidthsDirty(true, MarkOnlyThis); 1434 1434 1435 if (!r.needsLayout()) 1436 r.markForPaginationRelayoutIfNeeded(); 1435 r.markForPaginationRelayoutIfNeeded(); 1437 1436 1438 1437 // We don't have to do a full layout. We just have to update our position. Try that first. If we have shrink-to-fit width … … 1482 1481 void RenderBlock::markForPaginationRelayoutIfNeeded() 1483 1482 { 1484 ASSERT(!needsLayout()); 1485 if (needsLayout()) 1483 if (needsLayout() || !view().layoutState()->isPaginated()) 1486 1484 return; 1487 1485 -
branches/safari-600.1.4.15-branch/Source/WebCore/rendering/RenderBlock.h
r169385 r179724 115 115 116 116 void markPositionedObjectsForLayout(); 117 virtual void markForPaginationRelayoutIfNeeded() override final;117 virtual void markForPaginationRelayoutIfNeeded() override; 118 118 119 119 // FIXME-BLOCKFLOW: Remove virtualizaion when all of the line layout code has been moved out of RenderBlock -
branches/safari-600.1.4.15-branch/Source/WebCore/rendering/RenderBlockFlow.cpp
r179071 r179724 706 706 } 707 707 708 if (!child.needsLayout()) 709 child.markForPaginationRelayoutIfNeeded(); 708 child.markForPaginationRelayoutIfNeeded(); 710 709 711 710 bool childHadLayout = child.everHadLayout(); … … 745 744 if (!child.avoidsFloats() && childBlockFlow->containsFloats()) 746 745 childBlockFlow->markAllDescendantsWithFloatsForLayout(); 747 if (!child.needsLayout()) 748 child.markForPaginationRelayoutIfNeeded(); 746 child.markForPaginationRelayoutIfNeeded(); 749 747 } 750 748 } … … 1544 1542 if (!child.avoidsFloats() && childRenderBlock->containsFloats()) 1545 1543 toRenderBlockFlow(childRenderBlock)->markAllDescendantsWithFloatsForLayout(); 1546 if (!child.needsLayout()) 1547 child.markForPaginationRelayoutIfNeeded(); 1544 child.markForPaginationRelayoutIfNeeded(); 1548 1545 } 1549 1546 … … 2429 2426 estimateRegionRangeForBoxChild(childBox); 2430 2427 2428 childBox.markForPaginationRelayoutIfNeeded(); 2429 childBox.layoutIfNeeded(); 2430 2431 2431 LayoutState* layoutState = view().layoutState(); 2432 2432 bool isPaginated = layoutState->isPaginated(); 2433 if (isPaginated && !childBox.needsLayout())2434 childBox.markForPaginationRelayoutIfNeeded();2435 2436 childBox.layoutIfNeeded();2437 2438 2433 if (isPaginated) { 2439 2434 // If we are unsplittable and don't fit, then we need to move down. -
branches/safari-600.1.4.15-branch/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp
r170774 r179724 424 424 child->computeAndSetBlockDirectionMargins(this); 425 425 426 if (!child->needsLayout()) 427 child->markForPaginationRelayoutIfNeeded(); 426 child->markForPaginationRelayoutIfNeeded(); 428 427 429 428 // Apply the child's current layout delta. … … 500 499 child->setChildNeedsLayout(MarkOnlyThis); 501 500 502 if (!child->needsLayout()) 503 child->markForPaginationRelayoutIfNeeded(); 501 child->markForPaginationRelayoutIfNeeded(); 504 502 505 503 layoutChildIfNeededApplyingDelta(child, childLayoutDelta); … … 745 743 setHeight(height() + child->marginTop()); 746 744 747 if (!child->needsLayout()) 748 child->markForPaginationRelayoutIfNeeded(); 745 child->markForPaginationRelayoutIfNeeded(); 749 746 750 747 // Now do a layout. -
branches/safari-600.1.4.15-branch/Source/WebCore/rendering/RenderTable.cpp
r170774 r179724 1541 1541 } 1542 1542 1543 } 1543 void RenderTable::markForPaginationRelayoutIfNeeded() 1544 { 1545 if (!view().layoutState()->isPaginated() || (!view().layoutState()->pageLogicalHeightChanged() && (!view().layoutState()->pageLogicalHeight() || view().layoutState()->pageLogicalOffset(this, logicalTop()) == pageLogicalOffset()))) 1546 return; 1547 1548 // When a table moves, we have to dirty all of the sections too. 1549 if (!needsLayout()) 1550 setChildNeedsLayout(MarkOnlyThis); 1551 for (auto& child : childrenOfType<RenderTableSection>(*this)) { 1552 if (!child.needsLayout()) 1553 child.setChildNeedsLayout(MarkOnlyThis); 1554 } 1555 } 1556 1557 } -
branches/safari-600.1.4.15-branch/Source/WebCore/rendering/RenderTable.h
r166489 r179724 276 276 LayoutUnit offsetWidthForColumn(const RenderTableCol&) const; 277 277 LayoutUnit offsetHeightForColumn(const RenderTableCol&) const; 278 278 279 virtual void markForPaginationRelayoutIfNeeded() override final; 280 279 281 protected: 280 282 virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle) override final; -
branches/safari-600.1.4.15-branch/Source/WebCore/rendering/RenderTableRow.cpp
r170774 r179724 169 169 170 170 for (RenderTableCell* cell = firstCell(); cell; cell = cell->nextCell()) { 171 if (!cell->needsLayout() && paginated && view().layoutState()->pageLogicalHeight() && view().layoutState()->pageLogicalOffset(cell, cell->logicalTop()) != cell->pageLogicalOffset())171 if (!cell->needsLayout() && paginated && (view().layoutState()->pageLogicalHeightChanged() || (view().layoutState()->pageLogicalHeight() && view().layoutState()->pageLogicalOffset(cell, cell->logicalTop()) != cell->pageLogicalOffset()))) 172 172 cell->setChildNeedsLayout(MarkOnlyThis); 173 173 -
branches/safari-600.1.4.15-branch/Source/WebCore/rendering/RenderTableSection.cpp
r170774 r179724 392 392 393 393 LayoutStateMaintainer statePusher(view(), *this, locationOffset(), hasTransform() || hasReflection() || style().isFlippedBlocksWritingMode()); 394 394 bool paginated = view().layoutState()->isPaginated(); 395 395 396 const Vector<int>& columnPos = table()->columnPositions(); 396 397 397 398 for (unsigned r = 0; r < m_grid.size(); ++r) { 398 399 Row& row = m_grid[r].row; … … 417 418 } 418 419 419 if (RenderTableRow* rowRenderer = m_grid[r].rowRenderer) 420 if (RenderTableRow* rowRenderer = m_grid[r].rowRenderer) { 421 if (!rowRenderer->needsLayout() && paginated && view().layoutState()->pageLogicalHeightChanged()) 422 rowRenderer->setChildNeedsLayout(MarkOnlyThis); 423 420 424 rowRenderer->layoutIfNeeded(); 425 } 421 426 } 422 427
Note:
See TracChangeset
for help on using the changeset viewer.