<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[178045] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/178045">178045</a></dd>
<dt>Author</dt> <dd>bjonesbe@adobe.com</dd>
<dt>Date</dt> <dd>2015-01-07 12:13:07 -0800 (Wed, 07 Jan 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>[CSS Shapes] Content does not wrap with overflow: hidden and reference box different from margin-box
https://bugs.webkit.org/show_bug.cgi?id=138139

Reviewed by David Hyatt.

Source/WebCore:

To determine how much an box needs to shink to avoid a float, the code
was only taking into account the first line of the box. This doesn't
work when the float has a shape, as it can make it seem like there is
more space on the line than there actually is. This patch changes the
calculations to take into account the entire height of the box that
needs to be shrunk, and thus computes the correct amount of space
available.

Test: fast/shapes/shape-outside-floats/shape-overflow-hidden-left-margin.html
      fast/shapes/shape-outside-floats/shape-overflow-hidden-right-margin.html
      fast/shapes/shape-outside-floats/shape-overflow-hidden.html

* rendering/RenderBox.cpp:
(WebCore::RenderBox::shrinkLogicalWidthToAvoidFloats):

LayoutTests:

* fast/shapes/shape-outside-floats/shape-overflow-hidden-expected.html: Added.
* fast/shapes/shape-outside-floats/shape-overflow-hidden-left-margin-expected.html: Added.
* fast/shapes/shape-outside-floats/shape-overflow-hidden-left-margin.html: Added.
* fast/shapes/shape-outside-floats/shape-overflow-hidden-right-margin-expected.html: Added.
* fast/shapes/shape-outside-floats/shape-overflow-hidden-right-margin.html: Added.
* fast/shapes/shape-outside-floats/shape-overflow-hidden.html: Added.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBoxcpp">trunk/Source/WebCore/rendering/RenderBox.cpp</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsfastshapesshapeoutsidefloatsshapeoverflowhiddenexpectedhtml">trunk/LayoutTests/fast/shapes/shape-outside-floats/shape-overflow-hidden-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastshapesshapeoutsidefloatsshapeoverflowhiddenleftmarginexpectedhtml">trunk/LayoutTests/fast/shapes/shape-outside-floats/shape-overflow-hidden-left-margin-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastshapesshapeoutsidefloatsshapeoverflowhiddenleftmarginhtml">trunk/LayoutTests/fast/shapes/shape-outside-floats/shape-overflow-hidden-left-margin.html</a></li>
<li><a href="#trunkLayoutTestsfastshapesshapeoutsidefloatsshapeoverflowhiddenrightmarginexpectedhtml">trunk/LayoutTests/fast/shapes/shape-outside-floats/shape-overflow-hidden-right-margin-expected.html</a></li>
<li><a href="#trunkLayoutTestsfastshapesshapeoutsidefloatsshapeoverflowhiddenrightmarginhtml">trunk/LayoutTests/fast/shapes/shape-outside-floats/shape-overflow-hidden-right-margin.html</a></li>
<li><a href="#trunkLayoutTestsfastshapesshapeoutsidefloatsshapeoverflowhiddenhtml">trunk/LayoutTests/fast/shapes/shape-outside-floats/shape-overflow-hidden.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (178044 => 178045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2015-01-07 19:49:26 UTC (rev 178044)
+++ trunk/LayoutTests/ChangeLog        2015-01-07 20:13:07 UTC (rev 178045)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2015-01-07  Bem Jones-Bey  &lt;bjonesbe@adobe.com&gt;
+
+        [CSS Shapes] Content does not wrap with overflow: hidden and reference box different from margin-box
+        https://bugs.webkit.org/show_bug.cgi?id=138139
+
+        Reviewed by David Hyatt.
+
+        * fast/shapes/shape-outside-floats/shape-overflow-hidden-expected.html: Added.
+        * fast/shapes/shape-outside-floats/shape-overflow-hidden-left-margin-expected.html: Added.
+        * fast/shapes/shape-outside-floats/shape-overflow-hidden-left-margin.html: Added.
+        * fast/shapes/shape-outside-floats/shape-overflow-hidden-right-margin-expected.html: Added.
+        * fast/shapes/shape-outside-floats/shape-overflow-hidden-right-margin.html: Added.
+        * fast/shapes/shape-outside-floats/shape-overflow-hidden.html: Added.
+
</ins><span class="cx"> 2015-01-07  Eric Carlson  &lt;eric.carlson@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         mathml/mathml-in-dashboard.html results are different on mac-mountainlion.
</span></span></pre></div>
<a id="trunkLayoutTestsfastshapesshapeoutsidefloatsshapeoverflowhiddenexpectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/shapes/shape-outside-floats/shape-overflow-hidden-expected.html (0 => 178045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/shapes/shape-outside-floats/shape-overflow-hidden-expected.html                                (rev 0)
+++ trunk/LayoutTests/fast/shapes/shape-outside-floats/shape-overflow-hidden-expected.html        2015-01-07 20:13:07 UTC (rev 178045)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;style&gt;
+.logo {
+    width: 6em;
+    height: 6em;
+    background-color: gray;
+    float: left;
+}
+p { overflow: hidden; }
+&lt;/style&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;div class=&quot;logo&quot;&gt;&lt;/div&gt;
+&lt;p&gt;This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the gre
 y box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box.&lt;/p&gt;  
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastshapesshapeoutsidefloatsshapeoverflowhiddenleftmarginexpectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/shapes/shape-outside-floats/shape-overflow-hidden-left-margin-expected.html (0 => 178045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/shapes/shape-outside-floats/shape-overflow-hidden-left-margin-expected.html                                (rev 0)
+++ trunk/LayoutTests/fast/shapes/shape-outside-floats/shape-overflow-hidden-left-margin-expected.html        2015-01-07 20:13:07 UTC (rev 178045)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;style&gt;
+.logo {
+    width: 6em;
+    height: 6em;
+    background-color: gray;
+    float: left;
+}
+p { overflow: hidden; margin-left: 3em; }
+&lt;/style&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;div class=&quot;logo&quot;&gt;&lt;/div&gt;
+&lt;p&gt;This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the gre
 y box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box.&lt;/p&gt;  
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastshapesshapeoutsidefloatsshapeoverflowhiddenleftmarginhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/shapes/shape-outside-floats/shape-overflow-hidden-left-margin.html (0 => 178045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/shapes/shape-outside-floats/shape-overflow-hidden-left-margin.html                                (rev 0)
+++ trunk/LayoutTests/fast/shapes/shape-outside-floats/shape-overflow-hidden-left-margin.html        2015-01-07 20:13:07 UTC (rev 178045)
</span><span class="lines">@@ -0,0 +1,19 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;style&gt;
+.logo {
+    width: 6em;
+    height: 6em;
+    background-color: gray;
+    float: left;
+    -webkit-shape-outside: inset(1em 0px 0px 0px);
+}
+p { overflow: hidden; margin-left: 3em; }
+&lt;/style&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;div class=&quot;logo&quot;&gt;&lt;/div&gt;
+&lt;p&gt;This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the gre
 y box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box.&lt;/p&gt;  
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastshapesshapeoutsidefloatsshapeoverflowhiddenrightmarginexpectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/shapes/shape-outside-floats/shape-overflow-hidden-right-margin-expected.html (0 => 178045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/shapes/shape-outside-floats/shape-overflow-hidden-right-margin-expected.html                                (rev 0)
+++ trunk/LayoutTests/fast/shapes/shape-outside-floats/shape-overflow-hidden-right-margin-expected.html        2015-01-07 20:13:07 UTC (rev 178045)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;style&gt;
+.logo {
+    width: 6em;
+    height: 6em;
+    background-color: gray;
+    float: right;
+}
+p { overflow: hidden; margin-right: 3em; }
+&lt;/style&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;div class=&quot;logo&quot;&gt;&lt;/div&gt;
+&lt;p&gt;This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the gre
 y box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box.&lt;/p&gt;  
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastshapesshapeoutsidefloatsshapeoverflowhiddenrightmarginhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/shapes/shape-outside-floats/shape-overflow-hidden-right-margin.html (0 => 178045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/shapes/shape-outside-floats/shape-overflow-hidden-right-margin.html                                (rev 0)
+++ trunk/LayoutTests/fast/shapes/shape-outside-floats/shape-overflow-hidden-right-margin.html        2015-01-07 20:13:07 UTC (rev 178045)
</span><span class="lines">@@ -0,0 +1,19 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;style&gt;
+.logo {
+    width: 6em;
+    height: 6em;
+    background-color: gray;
+    float: right;
+    -webkit-shape-outside: inset(1em 0px 0px 0px);
+}
+p { overflow: hidden; margin-right: 3em; }
+&lt;/style&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;div class=&quot;logo&quot;&gt;&lt;/div&gt;
+&lt;p&gt;This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the gre
 y box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box.&lt;/p&gt;  
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastshapesshapeoutsidefloatsshapeoverflowhiddenhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/shapes/shape-outside-floats/shape-overflow-hidden.html (0 => 178045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/shapes/shape-outside-floats/shape-overflow-hidden.html                                (rev 0)
+++ trunk/LayoutTests/fast/shapes/shape-outside-floats/shape-overflow-hidden.html        2015-01-07 20:13:07 UTC (rev 178045)
</span><span class="lines">@@ -0,0 +1,19 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;style&gt;
+.logo {
+    width: 6em;
+    height: 6em;
+    background-color: gray;
+    float: left;
+    -webkit-shape-outside: inset(1em 0px 0px 0px);
+}
+p { overflow: hidden; }
+&lt;/style&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;div class=&quot;logo&quot;&gt;&lt;/div&gt;
+&lt;p&gt;This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the gre
 y box. This paragraph should be next to the grey box. This paragraph should be next to the grey box. This paragraph should be next to the grey box.&lt;/p&gt;  
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (178044 => 178045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-01-07 19:49:26 UTC (rev 178044)
+++ trunk/Source/WebCore/ChangeLog        2015-01-07 20:13:07 UTC (rev 178045)
</span><span class="lines">@@ -1,3 +1,25 @@
</span><ins>+2015-01-07  Bem Jones-Bey  &lt;bjonesbe@adobe.com&gt;
+
+        [CSS Shapes] Content does not wrap with overflow: hidden and reference box different from margin-box
+        https://bugs.webkit.org/show_bug.cgi?id=138139
+
+        Reviewed by David Hyatt.
+
+        To determine how much an box needs to shink to avoid a float, the code
+        was only taking into account the first line of the box. This doesn't
+        work when the float has a shape, as it can make it seem like there is
+        more space on the line than there actually is. This patch changes the
+        calculations to take into account the entire height of the box that
+        needs to be shrunk, and thus computes the correct amount of space
+        available.
+
+        Test: fast/shapes/shape-outside-floats/shape-overflow-hidden-left-margin.html
+              fast/shapes/shape-outside-floats/shape-overflow-hidden-right-margin.html
+              fast/shapes/shape-outside-floats/shape-overflow-hidden.html
+
+        * rendering/RenderBox.cpp:
+        (WebCore::RenderBox::shrinkLogicalWidthToAvoidFloats):
+
</ins><span class="cx"> 2015-01-07  Commit Queue  &lt;commit-queue@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Unreviewed, rolling out r178039.
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (178044 => 178045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBox.cpp        2015-01-07 19:49:26 UTC (rev 178044)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp        2015-01-07 20:13:07 UTC (rev 178045)
</span><span class="lines">@@ -1801,7 +1801,8 @@
</span><span class="cx">         containingBlockRegion = cb-&gt;clampToStartAndEndRegions(region);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    LayoutUnit result = cb-&gt;availableLogicalWidthForLineInRegion(logicalTopPosition, false, containingBlockRegion) - childMarginStart - childMarginEnd;
</del><ins>+    LayoutUnit logicalHeight = cb-&gt;logicalHeightForChild(*this);
+    LayoutUnit result = cb-&gt;availableLogicalWidthForLineInRegion(logicalTopPosition, false, containingBlockRegion, logicalHeight) - childMarginStart - childMarginEnd;
</ins><span class="cx"> 
</span><span class="cx">     // We need to see if margins on either the start side or the end side can contain the floats in question. If they can,
</span><span class="cx">     // then just using the line width is inaccurate. In the case where a float completely fits, we don't need to use the line
</span><span class="lines">@@ -1811,7 +1812,7 @@
</span><span class="cx">     if (childMarginStart &gt; 0) {
</span><span class="cx">         LayoutUnit startContentSide = cb-&gt;startOffsetForContent(containingBlockRegion);
</span><span class="cx">         LayoutUnit startContentSideWithMargin = startContentSide + childMarginStart;
</span><del>-        LayoutUnit startOffset = cb-&gt;startOffsetForLineInRegion(logicalTopPosition, false, containingBlockRegion);
</del><ins>+        LayoutUnit startOffset = cb-&gt;startOffsetForLineInRegion(logicalTopPosition, false, containingBlockRegion, logicalHeight);
</ins><span class="cx">         if (startOffset &gt; startContentSideWithMargin)
</span><span class="cx">             result += childMarginStart;
</span><span class="cx">         else
</span><span class="lines">@@ -1821,7 +1822,7 @@
</span><span class="cx">     if (childMarginEnd &gt; 0) {
</span><span class="cx">         LayoutUnit endContentSide = cb-&gt;endOffsetForContent(containingBlockRegion);
</span><span class="cx">         LayoutUnit endContentSideWithMargin = endContentSide + childMarginEnd;
</span><del>-        LayoutUnit endOffset = cb-&gt;endOffsetForLineInRegion(logicalTopPosition, false, containingBlockRegion);
</del><ins>+        LayoutUnit endOffset = cb-&gt;endOffsetForLineInRegion(logicalTopPosition, false, containingBlockRegion, logicalHeight);
</ins><span class="cx">         if (endOffset &gt; endContentSideWithMargin)
</span><span class="cx">             result += childMarginEnd;
</span><span class="cx">         else
</span></span></pre>
</div>
</div>

</body>
</html>