Title: [119507] trunk
Revision
119507
Author
[email protected]
Date
2012-06-05 11:32:10 -0700 (Tue, 05 Jun 2012)

Log Message

Change overrideSizes to be content-box instead of border-box
https://bugs.webkit.org/show_bug.cgi?id=88116

Reviewed by Tony Chang.

Source/WebCore:

Previously, the code used border-box everywhere except for one place
where it used content-box when setting the override size. Conversely,
it subtracted the borderAndPaddingSize everywhere it grabbed the override
size except for one.

Instead, make the override size override the content-box size.
Converging on using the border-box size would be tricky given RenderTableCell's
tricky management of intrinsic padding.

There is no behavior change except in RenderBox::availableLogicalHeightUsing,
which fixes a table test.

* rendering/RenderBox.cpp:
(WebCore::RenderBox::setOverrideLogicalContentHeight):
(WebCore::RenderBox::setOverrideLogicalContentWidth):
(WebCore::RenderBox::overrideLogicalContentWidth):
(WebCore::RenderBox::overrideLogicalContentHeight):
(WebCore::RenderBox::computeLogicalWidthInRegion):
(WebCore::RenderBox::computeLogicalHeight):
(WebCore::RenderBox::computePercentageLogicalHeight):
(WebCore::RenderBox::availableLogicalHeightUsing):
We were incorrectly subtracting the borderAndPaddingLogicalWidth instead
of the borderAndPaddingLogicalHeight.

* rendering/RenderBox.h:
(RenderBox):
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
(WebCore::RenderDeprecatedFlexibleBox::allowedChildFlex):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeAvailableFreeSpace):
(WebCore::RenderFlexibleBox::setLogicalOverrideSize):
(WebCore::RenderFlexibleBox::applyStretchAlignmentToChild):
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::setOverrideHeightFromRowHeight):

LayoutTests:

* fast/table/padding-height-and-override-height-expected.txt:
* fast/table/padding-height-and-override-height.html:
Tests the change in RenderBox::availableLogicalHeightUsing to correctly subtract the
borderAndPaddingLogicalHeight instead of the borderAndPaddingLogicalWidth.
* platform/chromium-linux/tables/mozilla/bugs/bug131020-expected.png:
* platform/chromium-win/tables/mozilla/bugs/bug131020-expected.txt:
The new results are more correct. The table cell had 2px too much padding-top and padding-bottom before.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (119506 => 119507)


--- trunk/LayoutTests/ChangeLog	2012-06-05 18:28:47 UTC (rev 119506)
+++ trunk/LayoutTests/ChangeLog	2012-06-05 18:32:10 UTC (rev 119507)
@@ -1,3 +1,18 @@
+2012-06-01  Ojan Vafai  <[email protected]>
+
+        Change overrideSizes to be content-box instead of border-box
+        https://bugs.webkit.org/show_bug.cgi?id=88116
+
+        Reviewed by Tony Chang.
+
+        * fast/table/padding-height-and-override-height-expected.txt:
+        * fast/table/padding-height-and-override-height.html:
+        Tests the change in RenderBox::availableLogicalHeightUsing to correctly subtract the
+        borderAndPaddingLogicalHeight instead of the borderAndPaddingLogicalWidth.
+        * platform/chromium-linux/tables/mozilla/bugs/bug131020-expected.png:
+        * platform/chromium-win/tables/mozilla/bugs/bug131020-expected.txt:
+        The new results are more correct. The table cell had 2px too much padding-top and padding-bottom before.
+
 2012-06-05  Tim Horton  <[email protected]>
 
         http/tests/media/remove-while-loading.html times out on mac-lion-wk2

Added: trunk/LayoutTests/fast/table/padding-height-and-override-height-expected.txt (0 => 119507)


--- trunk/LayoutTests/fast/table/padding-height-and-override-height-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/table/padding-height-and-override-height-expected.txt	2012-06-05 18:32:10 UTC (rev 119507)
@@ -0,0 +1,3 @@
+PASS document.getElementById('cell-contents').offsetHeight is 78
+FAIL document.getElementById('cell-contents').offsetWidth should be 88. Was 98.
+
Property changes on: trunk/LayoutTests/fast/table/padding-height-and-override-height-expected.txt
___________________________________________________________________

Added: svn:eol-style

Added: trunk/LayoutTests/fast/table/padding-height-and-override-height.html (0 => 119507)


--- trunk/LayoutTests/fast/table/padding-height-and-override-height.html	                        (rev 0)
+++ trunk/LayoutTests/fast/table/padding-height-and-override-height.html	2012-06-05 18:32:10 UTC (rev 119507)
@@ -0,0 +1,14 @@
+<table style="width:100px; height: 100px; border: 1px solid;" cellspacing=0 cellpadding=0>
+  <tr> 
+    <td style="padding:10px 5px"><img id='cell-contents' style="width: 100%; height: 100%; border:5px solid blue"></td>
+  </tr>
+</table>
+<script src=""
+<script>
+shouldBe("document.getElementById('cell-contents').offsetHeight", "78");
+// FIXME: We currently get 98 for this value. It appears we don't take left/right padding
+// into account for the widths of the contents of table cells.
+// We do still offset the contents by the padding, so they end up overflowing the table cell.
+// Firefox 12 has the same crazy behavior. Is this a bug or are tables just crazy?
+shouldBe("document.getElementById('cell-contents').offsetWidth", "88");
+</script>
Property changes on: trunk/LayoutTests/fast/table/padding-height-and-override-height.html
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Modified: trunk/LayoutTests/platform/chromium/TestExpectations (119506 => 119507)


--- trunk/LayoutTests/platform/chromium/TestExpectations	2012-06-05 18:28:47 UTC (rev 119506)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2012-06-05 18:32:10 UTC (rev 119507)
@@ -3796,4 +3796,7 @@
 
 BUGWK88131 DEBUG : fast/dom/HTMLMeterElement/meter-element-crash.html = PASS TEXT
 
+// Needs rebaseline after the bots cycle.
+BUG_OJAN WIN MAC : tables/mozilla/bugs/bug131020.html = PASS FAIL
+
 BUG_EAE WIN MAC : fast/sub-pixel/float-containing-block-with-margin.html = PASS FAIL

Modified: trunk/LayoutTests/platform/chromium-linux/tables/mozilla/bugs/bug131020-expected.png


(Binary files differ)

Modified: trunk/LayoutTests/platform/chromium-win/tables/mozilla/bugs/bug131020-expected.txt (119506 => 119507)


--- trunk/LayoutTests/platform/chromium-win/tables/mozilla/bugs/bug131020-expected.txt	2012-06-05 18:28:47 UTC (rev 119506)
+++ trunk/LayoutTests/platform/chromium-win/tables/mozilla/bugs/bug131020-expected.txt	2012-06-05 18:32:10 UTC (rev 119507)
@@ -10,10 +10,10 @@
               RenderTable {TABLE} at (2,2) size 790x559 [border: (1px outset #808080)]
                 RenderTableSection {TBODY} at (1,1) size 788x557
                   RenderTableRow {TR} at (0,2) size 788x553
-                    RenderTableCell {TD} at (2,4) size 784x549 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
-                      RenderPartObject {IFRAME} at (2,2) size 790x545 [border: (5px solid #0000FF)]
+                    RenderTableCell {TD} at (2,2) size 784x553 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
+                      RenderPartObject {IFRAME} at (2,2) size 790x549 [border: (5px solid #0000FF)]
                         layer at (0,0) size 765x2016
-                          RenderView at (0,0) size 765x535
+                          RenderView at (0,0) size 765x539
                         layer at (0,0) size 765x2016
                           RenderBlock {HTML} at (0,0) size 765x2016
                             RenderBody {BODY} at (0,0) size 765x2016 [bgcolor=#53799F]

Modified: trunk/LayoutTests/platform/efl/TestExpectations (119506 => 119507)


--- trunk/LayoutTests/platform/efl/TestExpectations	2012-06-05 18:28:47 UTC (rev 119506)
+++ trunk/LayoutTests/platform/efl/TestExpectations	2012-06-05 18:32:10 UTC (rev 119507)
@@ -713,6 +713,9 @@
 // Fails on GTK+ and Qt as well.
 BUGWK86445 : fast/multicol/split-in-top-margin.html = IMAGE
 
+// Needs rebaseline after the bots cycle.
+BUG_OJAN : tables/mozilla/bugs/bug131020.html = PASS FAIL
+
 // These tests do not seem to fail anywhere else.
 BUGWK88030 : fast/multicol/column-break-with-balancing.html = IMAGE
 BUGWK88031 : fast/multicol/span/generated-child-split-flow-crash.html = IMAGE+TEXT

Modified: trunk/LayoutTests/platform/gtk/TestExpectations (119506 => 119507)


--- trunk/LayoutTests/platform/gtk/TestExpectations	2012-06-05 18:28:47 UTC (rev 119506)
+++ trunk/LayoutTests/platform/gtk/TestExpectations	2012-06-05 18:32:10 UTC (rev 119507)
@@ -1302,6 +1302,9 @@
 
 BUGWK88061 : fast/replaced/border-radius-clip.html = TEXT PASS
 
+// Needs rebaseline after the bots cycle.
+BUG_OJAN : tables/mozilla/bugs/bug131020.html = PASS FAIL
+
 BUGWK88138 : http/tests/media/video-buffered.html = TEXT
 
 //////////////////////////////////////////////////////////////////////////////////////////

Modified: trunk/LayoutTests/platform/mac/TestExpectations (119506 => 119507)


--- trunk/LayoutTests/platform/mac/TestExpectations	2012-06-05 18:28:47 UTC (rev 119506)
+++ trunk/LayoutTests/platform/mac/TestExpectations	2012-06-05 18:32:10 UTC (rev 119507)
@@ -245,6 +245,9 @@
 // Requires rebaseline after https://bugs.webkit.org/show_bug.cgi?id=85405
 BUGWK85405 : tables/mozilla/bugs/bug10296-1.html = TEXT
 
+// Needs rebaseline after the bots cycle.
+BUG_OJAN : tables/mozilla/bugs/bug131020.html = PASS FAIL
+
 // Safari needs to be fixed after bug 84195 updated the layout tests
 BUGWK85918 : compositing/backface-visibility/backface-visibility-3d.html = IMAGE
 BUGWK85918 : compositing/backface-visibility/backface-visibility-hierarchical-transform.html = IMAGE

Modified: trunk/LayoutTests/platform/qt/TestExpectations (119506 => 119507)


--- trunk/LayoutTests/platform/qt/TestExpectations	2012-06-05 18:28:47 UTC (rev 119506)
+++ trunk/LayoutTests/platform/qt/TestExpectations	2012-06-05 18:32:10 UTC (rev 119507)
@@ -84,5 +84,8 @@
 // Requires rebaseline after https://bugs.webkit.org/show_bug.cgi?id=85405
 BUGWK85405 SKIP: tables/mozilla/bugs/bug10296-1.html = TEXT
 
+// Needs rebaseline after the bots cycle.
+BUG_OJAN : tables/mozilla/bugs/bug131020.html = PASS FAIL
+
 // LayoutTestController::setAutomaticLinkDetectionEnabled isn't implemented
 BUGWK85463 SKIP : editing/inserting/typing-space-to-trigger-smart-link.html = FAIL

Modified: trunk/Source/WebCore/ChangeLog (119506 => 119507)


--- trunk/Source/WebCore/ChangeLog	2012-06-05 18:28:47 UTC (rev 119506)
+++ trunk/Source/WebCore/ChangeLog	2012-06-05 18:32:10 UTC (rev 119507)
@@ -1,3 +1,48 @@
+2012-06-01  Ojan Vafai  <[email protected]>
+
+        Change overrideSizes to be content-box instead of border-box
+        https://bugs.webkit.org/show_bug.cgi?id=88116
+
+        Reviewed by Tony Chang.
+
+        Previously, the code used border-box everywhere except for one place
+        where it used content-box when setting the override size. Conversely,
+        it subtracted the borderAndPaddingSize everywhere it grabbed the override
+        size except for one.
+
+        Instead, make the override size override the content-box size.
+        Converging on using the border-box size would be tricky given RenderTableCell's
+        tricky management of intrinsic padding.
+
+        There is no behavior change except in RenderBox::availableLogicalHeightUsing,
+        which fixes a table test.
+
+        * rendering/RenderBox.cpp:
+        (WebCore::RenderBox::setOverrideLogicalContentHeight):
+        (WebCore::RenderBox::setOverrideLogicalContentWidth):
+        (WebCore::RenderBox::overrideLogicalContentWidth):
+        (WebCore::RenderBox::overrideLogicalContentHeight):
+        (WebCore::RenderBox::computeLogicalWidthInRegion):
+        (WebCore::RenderBox::computeLogicalHeight):
+        (WebCore::RenderBox::computePercentageLogicalHeight):
+        (WebCore::RenderBox::availableLogicalHeightUsing):
+        We were incorrectly subtracting the borderAndPaddingLogicalWidth instead
+        of the borderAndPaddingLogicalHeight.
+
+        * rendering/RenderBox.h:
+        (RenderBox):
+        * rendering/RenderDeprecatedFlexibleBox.cpp:
+        (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
+        (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
+        (WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
+        (WebCore::RenderDeprecatedFlexibleBox::allowedChildFlex):
+        * rendering/RenderFlexibleBox.cpp:
+        (WebCore::RenderFlexibleBox::computeAvailableFreeSpace):
+        (WebCore::RenderFlexibleBox::setLogicalOverrideSize):
+        (WebCore::RenderFlexibleBox::applyStretchAlignmentToChild):
+        * rendering/RenderTableCell.cpp:
+        (WebCore::RenderTableCell::setOverrideHeightFromRowHeight):
+
 2012-06-05  Andy Estes  <[email protected]>
 
         REGRESSION (r118197): PluginStrategy should be used even if ENABLE(NETSCAPE_PLUGIN_API) is false

Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (119506 => 119507)


--- trunk/Source/WebCore/rendering/RenderBox.cpp	2012-06-05 18:28:47 UTC (rev 119506)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp	2012-06-05 18:32:10 UTC (rev 119507)
@@ -677,14 +677,14 @@
     return gOverrideWidthMap && gOverrideWidthMap->contains(this);
 }
 
-void RenderBox::setOverrideHeight(LayoutUnit height)
+void RenderBox::setOverrideLogicalContentHeight(LayoutUnit height)
 {
     if (!gOverrideHeightMap)
         gOverrideHeightMap = new OverrideSizeMap();
     gOverrideHeightMap->set(this, height);
 }
 
-void RenderBox::setOverrideWidth(LayoutUnit width)
+void RenderBox::setOverrideLogicalContentWidth(LayoutUnit width)
 {
     if (!gOverrideWidthMap)
         gOverrideWidthMap = new OverrideSizeMap();
@@ -699,14 +699,14 @@
         gOverrideWidthMap->remove(this);
 }
 
-LayoutUnit RenderBox::overrideWidth() const
+LayoutUnit RenderBox::overrideLogicalContentWidth() const
 {
-    return hasOverrideWidth() ? gOverrideWidthMap->get(this) : width();
+    return hasOverrideWidth() ? gOverrideWidthMap->get(this) : contentWidth();
 }
 
-LayoutUnit RenderBox::overrideHeight() const
+LayoutUnit RenderBox::overrideLogicalContentHeight() const
 {
-    return hasOverrideHeight() ? gOverrideHeightMap->get(this) : height();
+    return hasOverrideHeight() ? gOverrideHeightMap->get(this) : contentHeight();
 }
 
 LayoutUnit RenderBox::computeBorderBoxLogicalWidth(LayoutUnit width) const
@@ -1649,7 +1649,7 @@
     // FIXME: Account for block-flow in flexible boxes.
     // https://bugs.webkit.org/show_bug.cgi?id=46418
     if (hasOverrideWidth() && parent()->isFlexibleBoxIncludingDeprecated()) {
-        setLogicalWidth(overrideWidth());
+        setLogicalWidth(overrideLogicalContentWidth() + borderAndPaddingLogicalWidth());
         return;
     }
 
@@ -1983,7 +1983,7 @@
         // https://bugs.webkit.org/show_bug.cgi?id=46418
         RenderStyle* styleToUse = style();
         if (hasOverrideHeight() && parent()->isFlexibleBoxIncludingDeprecated())
-            h = Length(overrideHeight() - borderAndPaddingLogicalHeight(), Fixed);
+            h = Length(overrideLogicalContentHeight(), Fixed);
         else if (treatAsReplaced)
             h = Length(computeReplacedLogicalHeight(), Fixed);
         else {
@@ -2122,7 +2122,7 @@
                     return 0;
                 return -1;
             }
-            result = cb->overrideHeight();
+            result = cb->overrideLogicalContentHeight();
             includeBorderPadding = true;
         }
     }
@@ -2286,7 +2286,7 @@
     // artificially.  We're going to rely on this cell getting expanded to some new
     // height, and then when we lay out again we'll use the calculation below.
     if (isTableCell() && (h.isAuto() || h.isPercent()))
-        return overrideHeight() - borderAndPaddingLogicalWidth();
+        return overrideLogicalContentHeight();
 
     if (h.isPercent()) {
         LayoutUnit availableHeight;

Modified: trunk/Source/WebCore/rendering/RenderBox.h (119506 => 119507)


--- trunk/Source/WebCore/rendering/RenderBox.h	2012-06-05 18:28:47 UTC (rev 119506)
+++ trunk/Source/WebCore/rendering/RenderBox.h	2012-06-05 18:32:10 UTC (rev 119507)
@@ -268,12 +268,12 @@
     virtual LayoutUnit minPreferredLogicalWidth() const;
     virtual LayoutUnit maxPreferredLogicalWidth() const;
 
-    LayoutUnit overrideWidth() const;
-    LayoutUnit overrideHeight() const;
+    LayoutUnit overrideLogicalContentWidth() const;
+    LayoutUnit overrideLogicalContentHeight() const;
     bool hasOverrideHeight() const;
     bool hasOverrideWidth() const;
-    void setOverrideHeight(LayoutUnit);
-    void setOverrideWidth(LayoutUnit);
+    void setOverrideLogicalContentHeight(LayoutUnit);
+    void setOverrideLogicalContentWidth(LayoutUnit);
     void clearOverrideSize();
 
     virtual LayoutSize offsetFromContainer(RenderObject*, const LayoutPoint&, bool* offsetDependsOnPoint = 0) const;

Modified: trunk/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp (119506 => 119507)


--- trunk/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp	2012-06-05 18:28:47 UTC (rev 119506)
+++ trunk/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp	2012-06-05 18:32:10 UTC (rev 119507)
@@ -543,7 +543,7 @@
                         if (allowedChildFlex(child, expanding, i)) {
                             LayoutUnit spaceAdd = LayoutUnit(spaceAvailableThisPass * (child->style()->boxFlex() / totalFlex));
                             if (spaceAdd) {
-                                child->setOverrideWidth(child->overrideWidth() + spaceAdd);
+                                child->setOverrideLogicalContentWidth(child->overrideLogicalContentWidth() + spaceAdd);
                                 m_flexingChildren = true;
                                 relayoutChildren = true;
                             }
@@ -560,7 +560,7 @@
                         LayoutUnit spaceAdd = groupRemainingSpace > 0 ? 1 : -1;
                         for (RenderBox* child = iterator.first(); child && groupRemainingSpace; child = iterator.next()) {
                             if (allowedChildFlex(child, expanding, i)) {
-                                child->setOverrideWidth(child->overrideWidth() + spaceAdd);
+                                child->setOverrideLogicalContentWidth(child->overrideLogicalContentWidth() + spaceAdd);
                                 m_flexingChildren = true;
                                 relayoutChildren = true;
                                 remainingSpace -= spaceAdd;
@@ -794,7 +794,7 @@
                         if (allowedChildFlex(child, expanding, i)) {
                             LayoutUnit spaceAdd = static_cast<LayoutUnit>(spaceAvailableThisPass * (child->style()->boxFlex() / totalFlex));
                             if (spaceAdd) {
-                                child->setOverrideHeight(child->overrideHeight() + spaceAdd);
+                                child->setOverrideLogicalContentHeight(child->overrideLogicalContentHeight() + spaceAdd);
                                 m_flexingChildren = true;
                                 relayoutChildren = true;
                             }
@@ -811,7 +811,7 @@
                         LayoutUnit spaceAdd = groupRemainingSpace > 0 ? 1 : -1;
                         for (RenderBox* child = iterator.first(); child && groupRemainingSpace; child = iterator.next()) {
                             if (allowedChildFlex(child, expanding, i)) {
-                                child->setOverrideHeight(child->overrideHeight() + spaceAdd);
+                                child->setOverrideLogicalContentHeight(child->overrideLogicalContentHeight() + spaceAdd);
                                 m_flexingChildren = true;
                                 relayoutChildren = true;
                                 remainingSpace -= spaceAdd;
@@ -925,7 +925,7 @@
             continue;
 
         child->setChildNeedsLayout(true, MarkOnlyThis);
-        child->setOverrideHeight(newHeight);
+        child->setOverrideLogicalContentHeight(newHeight - child->borderAndPaddingHeight());
         m_flexingChildren = true;
         child->layoutIfNeeded();
         m_flexingChildren = false;
@@ -1026,7 +1026,7 @@
         if (isHorizontal()) {
             // FIXME: For now just handle fixed values.
             LayoutUnit maxWidth = MAX_LAYOUT_UNIT;
-            LayoutUnit width = child->overrideWidth() - child->borderAndPaddingWidth();
+            LayoutUnit width = child->overrideLogicalContentWidth();
             if (!child->style()->maxWidth().isUndefined() && child->style()->maxWidth().isFixed())
                 maxWidth = child->style()->maxWidth().value();
             else if (child->style()->maxWidth().type() == Intrinsic)
@@ -1039,7 +1039,7 @@
         } else {
             // FIXME: For now just handle fixed values.
             LayoutUnit maxHeight = MAX_LAYOUT_UNIT;
-            LayoutUnit height = child->overrideHeight() - child->borderAndPaddingHeight();
+            LayoutUnit height = child->overrideLogicalContentHeight();
             if (!child->style()->maxHeight().isUndefined() && child->style()->maxHeight().isFixed())
                 maxHeight = child->style()->maxHeight().value();
             if (maxHeight == MAX_LAYOUT_UNIT)
@@ -1051,7 +1051,7 @@
     // FIXME: For now just handle fixed values.
     if (isHorizontal()) {
         LayoutUnit minWidth = child->minPreferredLogicalWidth();
-        LayoutUnit width = child->overrideWidth() - child->borderAndPaddingWidth();
+        LayoutUnit width = child->overrideLogicalContentWidth();
         if (child->style()->minWidth().isFixed())
             minWidth = child->style()->minWidth().value();
         else if (child->style()->minWidth().type() == Intrinsic)
@@ -1064,7 +1064,7 @@
     } else {
         if (child->style()->minHeight().isFixed()) {
             LayoutUnit minHeight = child->style()->minHeight().value();
-            LayoutUnit height = child->overrideHeight() - child->borderAndPaddingHeight();
+            LayoutUnit height = child->overrideLogicalContentHeight();
             LayoutUnit allowedShrinkage = min<LayoutUnit>(0, minHeight - height);
             return allowedShrinkage;
         }

Modified: trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp (119506 => 119507)


--- trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp	2012-06-05 18:28:47 UTC (rev 119506)
+++ trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp	2012-06-05 18:32:10 UTC (rev 119507)
@@ -593,7 +593,7 @@
     if (!isColumnFlow())
         contentExtent = mainAxisContentExtent();
     else if (hasOverrideHeight())
-        contentExtent = overrideHeight() - (logicalHeight() - contentLogicalHeight());
+        contentExtent = overrideLogicalContentHeight();
     else {
         LayoutUnit heightResult = computeContentLogicalHeightUsing(style()->logicalHeight());
         if (heightResult == -1)
@@ -918,11 +918,10 @@
 
 void RenderFlexibleBox::setLogicalOverrideSize(RenderBox* child, LayoutUnit childPreferredSize)
 {
-    // FIXME: Rename setOverrideWidth/setOverrideHeight to setOverrideLogicalWidth/setOverrideLogicalHeight.
     if (hasOrthogonalFlow(child))
-        child->setOverrideHeight(childPreferredSize);
+        child->setOverrideLogicalContentHeight(childPreferredSize - child->borderAndPaddingLogicalHeight());
     else
-        child->setOverrideWidth(childPreferredSize);
+        child->setOverrideLogicalContentWidth(childPreferredSize - child->borderAndPaddingLogicalWidth());
 }
 
 void RenderFlexibleBox::prepareChildForPositionedLayout(RenderBox* child, LayoutUnit mainAxisOffset, LayoutUnit crossAxisOffset, PositionedLayoutMode layoutMode)
@@ -1207,7 +1206,7 @@
 
         // FIXME: Can avoid laying out here in some cases. See https://webkit.org/b/87905.
         if (child->logicalHeight() != logicalHeightBefore) {
-            child->setOverrideHeight(child->logicalHeight());
+            child->setOverrideLogicalContentHeight(child->logicalHeight() - child->borderAndPaddingLogicalHeight());
             child->setLogicalHeight(0);
             child->setChildNeedsLayout(true);
             child->layoutIfNeeded();
@@ -1215,7 +1214,7 @@
     } else if (isColumnFlow() && child->style()->logicalWidth().isAuto() && isMultiline()) {
         // FIXME: Handle min-width and max-width.
         LayoutUnit childWidth = lineCrossAxisExtent - crossAxisMarginExtentForChild(child);
-        child->setOverrideWidth(std::max(ZERO_LAYOUT_UNIT, childWidth));
+        child->setOverrideLogicalContentWidth(std::max(ZERO_LAYOUT_UNIT, childWidth));
         child->setChildNeedsLayout(true);
         child->layoutIfNeeded();
     }

Modified: trunk/Source/WebCore/rendering/RenderTableCell.cpp (119506 => 119507)


--- trunk/Source/WebCore/rendering/RenderTableCell.cpp	2012-06-05 18:28:47 UTC (rev 119506)
+++ trunk/Source/WebCore/rendering/RenderTableCell.cpp	2012-06-05 18:32:10 UTC (rev 119507)
@@ -234,10 +234,10 @@
     return computedCSSPaddingAfter() + intrinsicPaddingAfter();
 }
 
-void RenderTableCell::setOverrideHeightFromRowHeight(LayoutUnit rowHeight)
+void RenderTableCell::setOverrideLogicalContentHeightFromRowHeight(LayoutUnit rowHeight)
 {
     clearIntrinsicPadding();
-    RenderBlock::setOverrideHeight(max<LayoutUnit>(0, rowHeight - borderBefore() - paddingBefore() - borderAfter() - paddingAfter()));
+    setOverrideLogicalContentHeight(max<LayoutUnit>(0, rowHeight - borderAndPaddingLogicalHeight()));
 }
 
 LayoutSize RenderTableCell::offsetFromContainer(RenderObject* o, const LayoutPoint& point, bool* offsetDependsOnPoint) const

Modified: trunk/Source/WebCore/rendering/RenderTableCell.h (119506 => 119507)


--- trunk/Source/WebCore/rendering/RenderTableCell.h	2012-06-05 18:28:47 UTC (rev 119506)
+++ trunk/Source/WebCore/rendering/RenderTableCell.h	2012-06-05 18:32:10 UTC (rev 119507)
@@ -122,7 +122,7 @@
     virtual LayoutUnit paddingBefore() const OVERRIDE;
     virtual LayoutUnit paddingAfter() const OVERRIDE;
 
-    void setOverrideHeightFromRowHeight(LayoutUnit);
+    void setOverrideLogicalContentHeightFromRowHeight(LayoutUnit);
 
     virtual void scrollbarsChanged(bool horizontalScrollbarChanged, bool verticalScrollbarChanged);
 

Modified: trunk/Source/WebCore/rendering/RenderTableSection.cpp (119506 => 119507)


--- trunk/Source/WebCore/rendering/RenderTableSection.cpp	2012-06-05 18:28:47 UTC (rev 119506)
+++ trunk/Source/WebCore/rendering/RenderTableSection.cpp	2012-06-05 18:32:10 UTC (rev 119507)
@@ -606,7 +606,7 @@
                 // Alignment within a cell is based off the calculated
                 // height, which becomes irrelevant once the cell has
                 // been resized based off its percentage.
-                cell->setOverrideHeightFromRowHeight(rHeight);
+                cell->setOverrideLogicalContentHeightFromRowHeight(rHeight);
                 cell->layoutIfNeeded();
 
                 // If the baseline moved, we may have to update the data for our row. Find out the new baseline.
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to