Changeset 147245 in webkit


Ignore:
Timestamp:
Mar 29, 2013 1:12:16 PM (11 years ago)
Author:
ojan@chromium.org
Message:

min-width/max-width of min-content/max-content don't work correctly if width is specified
https://bugs.webkit.org/show_bug.cgi?id=106143

Reviewed by Tony Chang.

Source/WebCore:

Test: fast/css-intrinsic-dimensions/intrinsic-sized-blocks.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::computeIntrinsicLogicalWidths):
Expose this so that we don't use the preferred widths when calculating intrinsic width
values since the preferred width will be the regular width value if it is set.
Also, simplified the logic around table cells and scrollbar widths. The old code was
wrong and unnecessarily complicated.

(WebCore::RenderBlock::computePreferredLogicalWidths):
Use the new computeIntrinsicLogicalWidths method.

(WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
(WebCore::RenderBlock::computeBlockPreferredLogicalWidths):
Pass in the min/max values as out params so they can be called from computeIntrinsicLogicalWidths.
Also, make computeBlockPreferredLogicalWidths const.

  • rendering/RenderBlock.h:

LayoutTests:

  • css3/flexbox/box-sizing.html:

The old result was incorrectly using the preferred width as the min-content width of the flex items.
The new result is correctly resolving the min-content width to 0 and allowing the flex items to shrink.

  • fast/css-intrinsic-dimensions/intrinsic-sized-blocks-expected.txt: Added.
  • fast/css-intrinsic-dimensions/intrinsic-sized-blocks.html: Added.
  • platform/chromium-win/fast/table/overflowHidden-expected.txt:

The new result correctly adds the scrollbar width to the table cell intrinsic width.
The pixel result doesn't need ot be updated because the elements that changed are below
the fold, so they don't show up in the png.

  • platform/chromium/TestExpectations:
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/qt/TestExpectations:

Add tests that will need rebaselines.

  • scrollbars/custom-scrollbar-table-cell-expected.png:

The new result correctly adds the scrollbar width to the table cell intrinsic width.

Location:
trunk
Files:
2 added
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r147243 r147245  
     12013-03-19  Ojan Vafai  <ojan@chromium.org>
     2
     3        min-width/max-width of min-content/max-content don't work correctly if width is specified
     4        https://bugs.webkit.org/show_bug.cgi?id=106143
     5
     6        Reviewed by Tony Chang.
     7
     8        * css3/flexbox/box-sizing.html:
     9        The old result was incorrectly using the preferred width as the min-content width of the flex items.
     10        The new result is correctly resolving the min-content width to 0 and allowing the flex items to shrink.
     11
     12        * fast/css-intrinsic-dimensions/intrinsic-sized-blocks-expected.txt: Added.
     13        * fast/css-intrinsic-dimensions/intrinsic-sized-blocks.html: Added.
     14        * platform/chromium-win/fast/table/overflowHidden-expected.txt:
     15        The new result correctly adds the scrollbar width to the table cell intrinsic width.
     16        The pixel result doesn't need ot be updated because the elements that changed are below
     17        the fold, so they don't show up in the png.
     18
     19        * platform/chromium/TestExpectations:
     20        * platform/efl/TestExpectations:
     21        * platform/gtk/TestExpectations:
     22        * platform/mac/TestExpectations:
     23        * platform/qt/TestExpectations:
     24        Add tests that will need rebaselines.
     25
     26        * scrollbars/custom-scrollbar-table-cell-expected.png:
     27        The new result correctly adds the scrollbar width to the table cell intrinsic width.
     28
     29
    1302013-03-29  Timothy Hatcher  <timothy@apple.com>
    231
  • trunk/LayoutTests/css3/flexbox/box-sizing.html

    r130979 r147245  
    4949<h3>flex-flow: default, orange box has width: auto, flex-box has box-sizing: border-box</h3>
    5050<div class="flexbox border-box">
    51     <div></div><div></div><div></div>
     51    <div data-expected-width=30></div>
     52    <div data-expected-width=30></div>
     53    <div data-expected-width=30></div>
    5254</div>
    5355
  • trunk/LayoutTests/platform/chromium-win/fast/table/overflowHidden-expected.txt

    r117821 r147245  
    119119        RenderBR {BR} at (0,0) size 0x19
    120120        RenderBR {BR} at (0,20) size 0x19
    121       RenderTable {TABLE} at (0,2210) size 418x112 [border: (2px outset #808080)]
    122         RenderTableSection {TBODY} at (2,2) size 414x108
    123           RenderTableRow {TR} at (0,2) size 414x104
    124             RenderTableCell {TD} at (308,2) size 104x104 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
     121      RenderTable {TABLE} at (0,2210) size 433x112 [border: (2px outset #808080)]
     122        RenderTableSection {TBODY} at (2,2) size 429x108
     123          RenderTableRow {TR} at (0,2) size 429x104
     124            RenderTableCell {TD} at (323,2) size 104x104 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
    125125              RenderBlock {DIV} at (2,2) size 100x100 [bgcolor=#800080]
    126126      RenderBlock (anonymous) at (0,2322) size 769x40
     
    184184        RenderText {#text} at (0,0) size 141x19
    185185          text run at (0,0) width 141: "Test with overflow:auto"
    186 layer at (12,2222) size 304x104 clip at (13,2223) size 287x87 scrollWidth 601
    187   RenderTableCell {TD} at (2,44) size 304x19 [bgcolor=#808080] [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
     186layer at (12,2222) size 319x104 clip at (13,2223) size 302x87 scrollWidth 601
     187  RenderTableCell {TD} at (2,44) size 319x19 [bgcolor=#808080] [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
    188188    RenderBlock {DIV} at (2,-18) size 300x20 [bgcolor=#00FF00]
    189189      RenderBlock {DIV} at (0,0) size 600x20 [bgcolor=#008000]
  • trunk/LayoutTests/platform/chromium/TestExpectations

    r147195 r147245  
    37663766Bug(leviw) fast/text/shaping/shaping-selection-rect.html [ Failure ]
    37673767
     3768Bug(ojan) [ Mac Win ] fast/table/overflowHidden.html [ ImageOnlyFailure Failure ]
     3769Bug(ojan) [ Mac Win ] scrollbars/custom-scrollbar-table-cell.html [ ImageOnlyFailure Failure ]
     3770
    37683771# Flaky tests
    37693772webkit.org/b/112598 [ Win Mac Linux ] http/tests/security/mixedContent/insecure-audio-video-in-main-frame.html [ Failure Pass ]
  • trunk/LayoutTests/platform/efl/TestExpectations

    r147116 r147245  
    17941794webkit.org/b/111058 plugins/plugin-clip-subframe.html [ Failure ]
    17951795
     1796Bug(ojan) fast/table/overflowHidden.html [ ImageOnlyFailure Failure ]
     1797Bug(ojan) scrollbars/custom-scrollbar-table-cell.html [ ImageOnlyFailure Failure ]
    17961798
    17971799# Newly added tests in r144190 are failing.
  • trunk/LayoutTests/platform/gtk/TestExpectations

    r147201 r147245  
    13691369webkit.org/b/111606 fast/repaint/border-fit-lines.html [ Failure ]
    13701370
     1371Bug(ojan) fast/table/overflowHidden.html [ ImageOnlyFailure Failure ]
     1372Bug(ojan) scrollbars/custom-scrollbar-table-cell.html [ ImageOnlyFailure Failure ]
     1373
    13711374webkit.org/b/112109 fast/box-shadow/box-shadow-with-zero-radius.html [ ImageOnlyFailure ]
    13721375
  • trunk/LayoutTests/platform/mac/TestExpectations

    r147243 r147245  
    14511451webkit.org/b/111606 fast/repaint/border-fit-lines.html [ Failure Pass ]
    14521452
     1453Bug(ojan) fast/table/overflowHidden.html [ ImageOnlyFailure Failure ]
     1454Bug(ojan) scrollbars/custom-scrollbar-table-cell.html [ ImageOnlyFailure Failure ]
    14531455
    14541456# Flakey
  • trunk/LayoutTests/platform/qt/TestExpectations

    r147203 r147245  
    27032703webkit.org/b/111016 http/tests/loading/promote-img-preload-priority.html [ Failure ]
    27042704
     2705Bug(ojan) fast/table/overflowHidden.html [ ImageOnlyFailure Failure ]
     2706Bug(ojan) scrollbars/custom-scrollbar-table-cell.html [ ImageOnlyFailure Failure ]
    27052707
    27062708# Border-fit should happen at layout time rather than paint time
  • trunk/LayoutTests/scrollbars/custom-scrollbar-table-cell.html

    r126591 r147245  
    4242<!--
    4343    Bug 93903: Crash in RenderTableCell::borderTop() due to custom scrollbars after r124168
    44     This test has PASSED if there are 2 grey custom scrollbars with a black thumb on each div below.
    45     Note that currently the right scrollbar is missing due to https://bugs.webkit.org/show_bug.cgi?id=94054
     44    This test has PASSED if there are 2 grey custom scrollbars and each block is 216x216px.
    4645-->
    4746<div class="scroll-cell"><div class="overflowing"></div></div>
  • trunk/Source/WebCore/ChangeLog

    r147244 r147245  
     12013-03-19  Ojan Vafai  <ojan@chromium.org>
     2
     3        min-width/max-width of min-content/max-content don't work correctly if width is specified
     4        https://bugs.webkit.org/show_bug.cgi?id=106143
     5
     6        Reviewed by Tony Chang.
     7
     8        Test: fast/css-intrinsic-dimensions/intrinsic-sized-blocks.html
     9
     10        * rendering/RenderBlock.cpp:
     11        (WebCore::RenderBlock::computeIntrinsicLogicalWidths):
     12        Expose this so that we don't use the preferred widths when calculating intrinsic width
     13        values since the preferred width will be the regular width value if it is set.
     14        Also, simplified the logic around table cells and scrollbar widths. The old code was
     15        wrong and unnecessarily complicated.
     16
     17        (WebCore::RenderBlock::computePreferredLogicalWidths):
     18        Use the new computeIntrinsicLogicalWidths method.
     19
     20        (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
     21        (WebCore::RenderBlock::computeBlockPreferredLogicalWidths):
     22        Pass in the min/max values as out params so they can be called from computeIntrinsicLogicalWidths.
     23        Also, make computeBlockPreferredLogicalWidths const.
     24
     25        * rendering/RenderBlock.h:
     26
    1272013-03-29  Joshua Bell  <jsbell@chromium.org>
    228
  • trunk/Source/WebCore/rendering/RenderBlock.cpp

    r146726 r147245  
    57515751}
    57525752
     5753void RenderBlock::computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const
     5754{
     5755    if (childrenInline()) {
     5756        // FIXME: Remove this const_cast.
     5757        const_cast<RenderBlock*>(this)->computeInlinePreferredLogicalWidths(minLogicalWidth, maxLogicalWidth);
     5758    } else
     5759        computeBlockPreferredLogicalWidths(minLogicalWidth, maxLogicalWidth);
     5760
     5761    maxLogicalWidth = max(minLogicalWidth, maxLogicalWidth);
     5762
     5763    if (!style()->autoWrap() && childrenInline()) {
     5764        minLogicalWidth = maxLogicalWidth;
     5765        // A horizontal marquee with inline children has no minimum width.
     5766        if (layer() && layer()->marquee() && layer()->marquee()->isHorizontal())
     5767            minLogicalWidth = 0;
     5768    }
     5769
     5770    if (isTableCell()) {
     5771        Length tableCellWidth = toRenderTableCell(this)->styleOrColLogicalWidth();
     5772        if (tableCellWidth.isFixed() && tableCellWidth.value() > 0)
     5773            maxLogicalWidth = max(minLogicalWidth, adjustContentBoxLogicalWidthForBoxSizing(tableCellWidth.value()));
     5774    }
     5775
     5776    int scrollbarWidth = instrinsicScrollbarLogicalWidth();
     5777    maxLogicalWidth += scrollbarWidth;
     5778    minLogicalWidth += scrollbarWidth;
     5779}
     5780
    57535781void RenderBlock::computePreferredLogicalWidths()
    57545782{
     
    57565784
    57575785    updateFirstLetter();
     5786
     5787    m_minPreferredLogicalWidth = 0;
     5788    m_maxPreferredLogicalWidth = 0;
    57585789
    57595790    RenderStyle* styleToUse = style();
     
    57615792        && !(isDeprecatedFlexItem() && !styleToUse->logicalWidth().intValue()))
    57625793        m_minPreferredLogicalWidth = m_maxPreferredLogicalWidth = adjustContentBoxLogicalWidthForBoxSizing(styleToUse->logicalWidth().value());
    5763     else {
    5764         m_minPreferredLogicalWidth = 0;
    5765         m_maxPreferredLogicalWidth = 0;
    5766 
    5767         if (childrenInline())
    5768             computeInlinePreferredLogicalWidths();
    5769         else
    5770             computeBlockPreferredLogicalWidths();
    5771 
    5772         m_maxPreferredLogicalWidth = max(m_minPreferredLogicalWidth, m_maxPreferredLogicalWidth);
    5773 
    5774         if (!styleToUse->autoWrap() && childrenInline()) {
    5775             m_minPreferredLogicalWidth = m_maxPreferredLogicalWidth;
    5776            
    5777             // A horizontal marquee with inline children has no minimum width.
    5778             if (layer() && layer()->marquee() && layer()->marquee()->isHorizontal())
    5779                 m_minPreferredLogicalWidth = 0;
    5780         }
    5781 
    5782         int scrollbarWidth = instrinsicScrollbarLogicalWidth();
    5783         m_maxPreferredLogicalWidth += scrollbarWidth;
    5784 
    5785         if (isTableCell()) {
    5786             Length w = toRenderTableCell(this)->styleOrColLogicalWidth();
    5787             if (w.isFixed() && w.value() > 0) {
    5788                 m_maxPreferredLogicalWidth = max(m_minPreferredLogicalWidth, adjustContentBoxLogicalWidthForBoxSizing(w.value()));
    5789                 scrollbarWidth = 0;
    5790             }
    5791         }
    5792        
    5793         m_minPreferredLogicalWidth += scrollbarWidth;
    5794     }
     5794    else
     5795        computeIntrinsicLogicalWidths(m_minPreferredLogicalWidth, m_maxPreferredLogicalWidth);
    57955796   
    57965797    if (styleToUse->logicalMinWidth().isFixed() && styleToUse->logicalMinWidth().value() > 0) {
     
    59405941
    59415942
    5942 void RenderBlock::computeInlinePreferredLogicalWidths()
     5943void RenderBlock::computeInlinePreferredLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth)
    59435944{
    59445945    float inlineMax = 0;
     
    60626063                bool canBreakReplacedElement = !child->isImage() || allowImagesToBreak;
    60636064                if ((canBreakReplacedElement && (autoWrap || oldAutoWrap) && (!isPrevChildInlineFlow || shouldBreakLineAfterText)) || clearPreviousFloat) {
    6064                     updatePreferredWidth(m_minPreferredLogicalWidth, inlineMin);
     6065                    updatePreferredWidth(minLogicalWidth, inlineMin);
    60656066                    inlineMin = 0;
    60666067                }
     
    60686069                // If we're supposed to clear the previous float, then terminate maxwidth as well.
    60696070                if (clearPreviousFloat) {
    6070                     updatePreferredWidth(m_maxPreferredLogicalWidth, inlineMax);
     6071                    updatePreferredWidth(maxLogicalWidth, inlineMax);
    60716072                    inlineMax = 0;
    60726073                }
     
    60906091                if (!autoWrap || !canBreakReplacedElement || (isPrevChildInlineFlow && !shouldBreakLineAfterText)) {
    60916092                    if (child->isFloating())
    6092                         updatePreferredWidth(m_minPreferredLogicalWidth, childMin);
     6093                        updatePreferredWidth(minLogicalWidth, childMin);
    60936094                    else
    60946095                        inlineMin += childMin;
    60956096                } else {
    60966097                    // Now check our line.
    6097                     updatePreferredWidth(m_minPreferredLogicalWidth, childMin);
     6098                    updatePreferredWidth(minLogicalWidth, childMin);
    60986099
    60996100                    // Now start a new line.
     
    61026103
    61036104                if (autoWrap && canBreakReplacedElement && isPrevChildInlineFlow) {
    6104                     updatePreferredWidth(m_minPreferredLogicalWidth, inlineMin);
     6105                    updatePreferredWidth(minLogicalWidth, inlineMin);
    61056106                    inlineMin = 0;
    61066107                }
     
    61176118
    61186119                if (t->isWordBreak()) {
    6119                     updatePreferredWidth(m_minPreferredLogicalWidth, inlineMin);
     6120                    updatePreferredWidth(minLogicalWidth, inlineMin);
    61206121                    inlineMin = 0;
    61216122                    continue;
     
    61416142                if (!hasBreak && childMax == 0) {
    61426143                    if (autoWrap && (beginWS || endWS)) {
    6143                         updatePreferredWidth(m_minPreferredLogicalWidth, inlineMin);
     6144                        updatePreferredWidth(minLogicalWidth, inlineMin);
    61446145                        inlineMin = 0;
    61456146                    }
     
    61846185                    if (beginWS)
    61856186                        // Go ahead and end the current line.
    6186                         updatePreferredWidth(m_minPreferredLogicalWidth, inlineMin);
     6187                        updatePreferredWidth(minLogicalWidth, inlineMin);
    61876188                    else {
    61886189                        inlineMin += beginMin;
    6189                         updatePreferredWidth(m_minPreferredLogicalWidth, inlineMin);
     6190                        updatePreferredWidth(minLogicalWidth, inlineMin);
    61906191                        childMin -= ti;
    61916192                    }
     
    61966197                        // We end in whitespace, which means we can go ahead
    61976198                        // and end our current line.
    6198                         updatePreferredWidth(m_minPreferredLogicalWidth, inlineMin);
     6199                        updatePreferredWidth(minLogicalWidth, inlineMin);
    61996200                        inlineMin = 0;
    62006201                        shouldBreakLineAfterText = false;
    62016202                    } else {
    6202                         updatePreferredWidth(m_minPreferredLogicalWidth, inlineMin);
     6203                        updatePreferredWidth(minLogicalWidth, inlineMin);
    62036204                        inlineMin = endMin;
    62046205                        shouldBreakLineAfterText = true;
     
    62086209                if (hasBreak) {
    62096210                    inlineMax += beginMax;
    6210                     updatePreferredWidth(m_maxPreferredLogicalWidth, inlineMax);
    6211                     updatePreferredWidth(m_maxPreferredLogicalWidth, childMax);
     6211                    updatePreferredWidth(maxLogicalWidth, inlineMax);
     6212                    updatePreferredWidth(maxLogicalWidth, childMax);
    62126213                    inlineMax = endMax;
    62136214                    addedTextIndent = true;
     
    62206221                stripFrontSpaces = true;
    62216222        } else {
    6222             updatePreferredWidth(m_minPreferredLogicalWidth, inlineMin);
    6223             updatePreferredWidth(m_maxPreferredLogicalWidth, inlineMax);
     6223            updatePreferredWidth(minLogicalWidth, inlineMin);
     6224            updatePreferredWidth(maxLogicalWidth, inlineMax);
    62246225            inlineMin = inlineMax = 0;
    62256226            stripFrontSpaces = true;
     
    62396240        stripTrailingSpace(inlineMax, inlineMin, trailingSpaceChild);
    62406241
    6241     updatePreferredWidth(m_minPreferredLogicalWidth, inlineMin);
    6242     updatePreferredWidth(m_maxPreferredLogicalWidth, inlineMax);
    6243 }
    6244 
    6245 void RenderBlock::computeBlockPreferredLogicalWidths()
     6242    updatePreferredWidth(minLogicalWidth, inlineMin);
     6243    updatePreferredWidth(maxLogicalWidth, inlineMax);
     6244}
     6245
     6246void RenderBlock::computeBlockPreferredLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const
    62466247{
    62476248    RenderStyle* styleToUse = style();
     
    62626263            LayoutUnit floatTotalWidth = floatLeftWidth + floatRightWidth;
    62636264            if (childStyle->clear() & CLEFT) {
    6264                 m_maxPreferredLogicalWidth = max(floatTotalWidth, m_maxPreferredLogicalWidth);
     6265                maxLogicalWidth = max(floatTotalWidth, maxLogicalWidth);
    62656266                floatLeftWidth = 0;
    62666267            }
    62676268            if (childStyle->clear() & CRIGHT) {
    6268                 m_maxPreferredLogicalWidth = max(floatTotalWidth, m_maxPreferredLogicalWidth);
     6269                maxLogicalWidth = max(floatTotalWidth, maxLogicalWidth);
    62696270                floatRightWidth = 0;
    62706271            }
     
    62976298
    62986299        LayoutUnit w = childMinPreferredLogicalWidth + margin;
    6299         m_minPreferredLogicalWidth = max(w, m_minPreferredLogicalWidth);
     6300        minLogicalWidth = max(w, minLogicalWidth);
    63006301       
    63016302        // IE ignores tables for calculation of nowrap. Makes some sense.
    63026303        if (nowrap && !child->isTable())
    6303             m_maxPreferredLogicalWidth = max(w, m_maxPreferredLogicalWidth);
     6304            maxLogicalWidth = max(w, maxLogicalWidth);
    63046305
    63056306        w = childMaxPreferredLogicalWidth + margin;
     
    63196320            }
    63206321            else
    6321                 m_maxPreferredLogicalWidth = max(floatLeftWidth + floatRightWidth, m_maxPreferredLogicalWidth);
     6322                maxLogicalWidth = max(floatLeftWidth + floatRightWidth, maxLogicalWidth);
    63226323            floatLeftWidth = floatRightWidth = 0;
    63236324        }
     
    63296330                floatRightWidth += w;
    63306331        } else
    6331             m_maxPreferredLogicalWidth = max(w, m_maxPreferredLogicalWidth);
     6332            maxLogicalWidth = max(w, maxLogicalWidth);
    63326333       
    63336334        child = child->nextSibling();
     
    63356336
    63366337    // Always make sure these values are non-negative.
    6337     m_minPreferredLogicalWidth = max<LayoutUnit>(0, m_minPreferredLogicalWidth);
    6338     m_maxPreferredLogicalWidth = max<LayoutUnit>(0, m_maxPreferredLogicalWidth);
    6339 
    6340     m_maxPreferredLogicalWidth = max(floatLeftWidth + floatRightWidth, m_maxPreferredLogicalWidth);
     6338    minLogicalWidth = max<LayoutUnit>(0, minLogicalWidth);
     6339    maxLogicalWidth = max<LayoutUnit>(0, maxLogicalWidth);
     6340
     6341    maxLogicalWidth = max(floatLeftWidth + floatRightWidth, maxLogicalWidth);
    63416342}
    63426343
  • trunk/Source/WebCore/rendering/RenderBlock.h

    r147019 r147245  
    523523    virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction) OVERRIDE;
    524524
    525     virtual void computePreferredLogicalWidths();
     525    virtual void computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const OVERRIDE;
     526    virtual void computePreferredLogicalWidths() OVERRIDE;
    526527
    527528    virtual int firstLineBoxBaseline() const;
     
    900901    virtual bool isPointInOverflowControl(HitTestResult&, const LayoutPoint& locationInContainer, const LayoutPoint& accumulatedOffset);
    901902
    902     void computeInlinePreferredLogicalWidths();
    903     void computeBlockPreferredLogicalWidths();
     903    // FIXME: Make this method const so we can remove the const_cast in computeIntrinsicLogicalWidths.
     904    void computeInlinePreferredLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth);
     905    void computeBlockPreferredLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const;
    904906
    905907    // Obtains the nearest enclosing block (including this block) that contributes a first-line style to our inline
Note: See TracChangeset for help on using the changeset viewer.