Title: [167602] trunk
- Revision
- 167602
- Author
- [email protected]
- Date
- 2014-04-21 12:05:23 -0700 (Mon, 21 Apr 2014)
Log Message
Source/WebCore: [New Multicolumn] Column balancing is slow on float-multicol.html
https://bugs.webkit.org/show_bug.cgi?id=131801
Reviewed by Enrica Casucci.
Added fast/multicol/tall-float.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::expandsToEncloseOverhangingFloats):
Make RenderFlowThreads expand to encompass floats. Also from Morten's patch for
Blink (#361551).
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::computeOverflow):
Fix a bug where the new multi-column code was adding in overflow for floats
when it should not. This was resulting in the creation of scrollbars when none
should exist. This is my own addition.
(WebCore::RenderBlockFlow::addOverhangingFloats):
Make RenderFlowThreads and RenderRegions ignore overhanging float additions. This
comes from Morten's patch for Blink (#361551).
LayoutTests: http/tests/cache/subresource-failover-to-network.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=131936
Patch by Alexey Proskuryakov <[email protected]> on 2014-04-21
Reviewed by Brady Eidson.
The test was racy, because it was unintentionally queuing TestRunner operations
twice. Also, it failed to clean up its cookie.
Rewrote to not use TestRunner queuing, making the test work in browser.
* http/tests/cache/resources/subresource-failover-to-network.cgi:
* http/tests/cache/subresource-failover-to-network.html:
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (167601 => 167602)
--- trunk/LayoutTests/ChangeLog 2014-04-21 18:55:14 UTC (rev 167601)
+++ trunk/LayoutTests/ChangeLog 2014-04-21 19:05:23 UTC (rev 167602)
@@ -15,6 +15,16 @@
2014-04-21 David Hyatt <[email protected]>
+ [New Multicolumn] Column balancing is slow on float-multicol.html
+ https://bugs.webkit.org/show_bug.cgi?id=131801
+
+ Reviewed by Enrica Casucci.
+
+ * fast/multicol/tall-float-expected.html: Added.
+ * fast/multicol/tall-float.html: Added.
+
+2014-04-21 David Hyatt <[email protected]>
+
[New Multicolumn] Pagination mode messed up with non-inline axis and reversed direction.
https://bugs.webkit.org/show_bug.cgi?id=131811
Added: trunk/LayoutTests/fast/multicol/tall-float-expected.html (0 => 167602)
--- trunk/LayoutTests/fast/multicol/tall-float-expected.html (rev 0)
+++ trunk/LayoutTests/fast/multicol/tall-float-expected.html 2014-04-21 19:05:23 UTC (rev 167602)
@@ -0,0 +1,15 @@
+ <!DOCTYPE html>
+ <html>
+ <head>
+ <script>
+ if (window.internals)
+ internals.settings.setRegionBasedColumnsEnabled(true);
+ </script>
+ </head>
+ <body>
+ <p>There should be no red below.</p>
+ <div style="-webkit-columns:3; columns:3; -webkit-column-gap:0; column-gap:0; background:yellow;">
+ hest<br>hest<br>hest<br>hest<br>hest<br>hest<br>hest<br>hest<br>hest<br>
+ </div>
+ </body>
+ </html>
\ No newline at end of file
Added: trunk/LayoutTests/fast/multicol/tall-float.html (0 => 167602)
--- trunk/LayoutTests/fast/multicol/tall-float.html (rev 0)
+++ trunk/LayoutTests/fast/multicol/tall-float.html 2014-04-21 19:05:23 UTC (rev 167602)
@@ -0,0 +1,16 @@
+ <!DOCTYPE html>
+ <html>
+ <head>
+ <script>
+ if (window.internals)
+ internals.settings.setRegionBasedColumnsEnabled(true);
+ </script>
+ </head>
+ <body>
+ <p>There should be no red below.</p>
+ <div style="-webkit-columns:3; columns:3; -webkit-column-gap:0; column-gap:0; background:red;">
+ <div style="float:left; width:100%; background:yellow;"> hest<br>hest<br>hest<br>hest<br>hest<br>hest<br>hest<br>hest<br>hest<br>
+ </div>
+ </div>
+ </body>
+ </html>
\ No newline at end of file
Modified: trunk/Source/WebCore/ChangeLog (167601 => 167602)
--- trunk/Source/WebCore/ChangeLog 2014-04-21 18:55:14 UTC (rev 167601)
+++ trunk/Source/WebCore/ChangeLog 2014-04-21 19:05:23 UTC (rev 167602)
@@ -1,3 +1,27 @@
+2014-04-21 David Hyatt <[email protected]>
+
+ [New Multicolumn] Column balancing is slow on float-multicol.html
+ https://bugs.webkit.org/show_bug.cgi?id=131801
+
+ Reviewed by Enrica Casucci.
+
+ Added fast/multicol/tall-float.html
+
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::expandsToEncloseOverhangingFloats):
+ Make RenderFlowThreads expand to encompass floats. Also from Morten's patch for
+ Blink (#361551).
+
+ * rendering/RenderBlockFlow.cpp:
+ (WebCore::RenderBlockFlow::computeOverflow):
+ Fix a bug where the new multi-column code was adding in overflow for floats
+ when it should not. This was resulting in the creation of scrollbars when none
+ should exist. This is my own addition.
+
+ (WebCore::RenderBlockFlow::addOverhangingFloats):
+ Make RenderFlowThreads and RenderRegions ignore overhanging float additions. This
+ comes from Morten's patch for Blink (#361551).
+
2014-04-21 Darin Adler <[email protected]>
REGRESSION (r160908): Safari doesn't draw rotated images properly first time
Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (167601 => 167602)
--- trunk/Source/WebCore/rendering/RenderBlock.cpp 2014-04-21 18:55:14 UTC (rev 167601)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp 2014-04-21 19:05:23 UTC (rev 167602)
@@ -1472,10 +1472,9 @@
bool RenderBlock::expandsToEncloseOverhangingFloats() const
{
return isInlineBlockOrInlineTable() || isFloatingOrOutOfFlowPositioned() || hasOverflowClip() || (parent() && parent()->isFlexibleBoxIncludingDeprecated())
- || hasColumns() || isTableCell() || isTableCaption() || isFieldset() || isWritingModeRoot() || isRoot();
+ || hasColumns() || isTableCell() || isTableCaption() || isFieldset() || isWritingModeRoot() || isRoot() || isRenderFlowThread();
}
-
LayoutUnit RenderBlock::computeStartPositionDeltaForChildAvoidingFloats(const RenderBox& child, LayoutUnit childMarginStart, RenderRegion* region)
{
LayoutUnit startPosition = startOffsetForContent(region);
Modified: trunk/Source/WebCore/rendering/RenderBlockFlow.cpp (167601 => 167602)
--- trunk/Source/WebCore/rendering/RenderBlockFlow.cpp 2014-04-21 18:55:14 UTC (rev 167601)
+++ trunk/Source/WebCore/rendering/RenderBlockFlow.cpp 2014-04-21 19:05:23 UTC (rev 167602)
@@ -1967,7 +1967,7 @@
{
RenderBlock::computeOverflow(oldClientAfterEdge, recomputeFloats);
- if (!hasColumns() && (recomputeFloats || isRoot() || expandsToEncloseOverhangingFloats() || hasSelfPaintingLayer()))
+ if (!hasColumns() && !multiColumnFlowThread() && (recomputeFloats || isRoot() || expandsToEncloseOverhangingFloats() || hasSelfPaintingLayer()))
addOverflowFromFloats();
}
@@ -2422,7 +2422,7 @@
LayoutUnit RenderBlockFlow::addOverhangingFloats(RenderBlockFlow& child, bool makeChildPaintOtherFloats)
{
// Prevent floats from being added to the canvas by the root element, e.g., <html>.
- if (child.hasOverflowClip() || !child.containsFloats() || child.isRoot() || child.hasColumns() || child.isWritingModeRoot())
+ if (child.hasOverflowClip() || !child.containsFloats() || child.isRoot() || child.hasColumns() || child.isWritingModeRoot() || child.isRenderFlowThread() || child.isRenderRegion())
return 0;
LayoutUnit childLogicalTop = child.logicalTop();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes