Changeset 167602 in webkit


Ignore:
Timestamp:
Apr 21, 2014 12:05:23 PM (10 years ago)
Author:
hyatt@apple.com
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 <ap@apple.com> 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:
Location:
trunk
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r167601 r167602  
    1313        * http/tests/cache/resources/subresource-failover-to-network.cgi:
    1414        * http/tests/cache/subresource-failover-to-network.html:
     15
     162014-04-21  David Hyatt  <hyatt@apple.com>
     17
     18        [New Multicolumn] Column balancing is slow on float-multicol.html
     19        https://bugs.webkit.org/show_bug.cgi?id=131801
     20
     21        Reviewed by Enrica Casucci.
     22
     23        * fast/multicol/tall-float-expected.html: Added.
     24        * fast/multicol/tall-float.html: Added.
    1525
    16262014-04-21  David Hyatt  <hyatt@apple.com>
  • trunk/Source/WebCore/ChangeLog

    r167598 r167602  
     12014-04-21  David Hyatt  <hyatt@apple.com>
     2
     3        [New Multicolumn] Column balancing is slow on float-multicol.html
     4        https://bugs.webkit.org/show_bug.cgi?id=131801
     5
     6        Reviewed by Enrica Casucci.
     7
     8        Added fast/multicol/tall-float.html
     9
     10        * rendering/RenderBlock.cpp:
     11        (WebCore::RenderBlock::expandsToEncloseOverhangingFloats):
     12        Make RenderFlowThreads expand to encompass floats. Also from Morten's patch for
     13        Blink (#361551).
     14
     15        * rendering/RenderBlockFlow.cpp:
     16        (WebCore::RenderBlockFlow::computeOverflow):
     17        Fix a bug where the new multi-column code was adding in overflow for floats
     18        when it should not. This was resulting in the creation of scrollbars when none
     19        should exist. This is my own addition.
     20
     21        (WebCore::RenderBlockFlow::addOverhangingFloats):
     22        Make RenderFlowThreads and RenderRegions ignore overhanging float additions. This
     23        comes from Morten's patch for Blink (#361551).
     24
    1252014-04-21  Darin Adler  <darin@apple.com>
    226
  • trunk/Source/WebCore/rendering/RenderBlock.cpp

    r167404 r167602  
    14731473{
    14741474    return isInlineBlockOrInlineTable() || isFloatingOrOutOfFlowPositioned() || hasOverflowClip() || (parent() && parent()->isFlexibleBoxIncludingDeprecated())
    1475            || hasColumns() || isTableCell() || isTableCaption() || isFieldset() || isWritingModeRoot() || isRoot();
    1476 }
    1477 
     1475        || hasColumns() || isTableCell() || isTableCaption() || isFieldset() || isWritingModeRoot() || isRoot() || isRenderFlowThread();
     1476}
    14781477
    14791478LayoutUnit RenderBlock::computeStartPositionDeltaForChildAvoidingFloats(const RenderBox& child, LayoutUnit childMarginStart, RenderRegion* region)
  • trunk/Source/WebCore/rendering/RenderBlockFlow.cpp

    r167463 r167602  
    19681968    RenderBlock::computeOverflow(oldClientAfterEdge, recomputeFloats);
    19691969
    1970     if (!hasColumns() && (recomputeFloats || isRoot() || expandsToEncloseOverhangingFloats() || hasSelfPaintingLayer()))
     1970    if (!hasColumns() && !multiColumnFlowThread() && (recomputeFloats || isRoot() || expandsToEncloseOverhangingFloats() || hasSelfPaintingLayer()))
    19711971        addOverflowFromFloats();
    19721972}
     
    24232423{
    24242424    // Prevent floats from being added to the canvas by the root element, e.g., <html>.
    2425     if (child.hasOverflowClip() || !child.containsFloats() || child.isRoot() || child.hasColumns() || child.isWritingModeRoot())
     2425    if (child.hasOverflowClip() || !child.containsFloats() || child.isRoot() || child.hasColumns() || child.isWritingModeRoot() || child.isRenderFlowThread() || child.isRenderRegion())
    24262426        return 0;
    24272427
Note: See TracChangeset for help on using the changeset viewer.