<!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>[193413] 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/193413">193413</a></dd>
<dt>Author</dt> <dd>svillar@igalia.com</dd>
<dt>Date</dt> <dd>2015-12-04 03:14:49 -0800 (Fri, 04 Dec 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>[css-grid] Fix height computation of grid items with borders inside fr tracks
https://bugs.webkit.org/show_bug.cgi?id=151798

Reviewed by Zalan Bujtas.

Source/WebCore:

Since <a href="http://trac.webkit.org/projects/webkit/changeset/192154">r192154</a> we run a second pass of the track sizing
algorithm whenever the height of the grid is indefinite in
order to properly compute row sizes. The available space
passed to the track sizing algorithm must not contain neither
borders nor paddings, otherwise it will think that it has more
space available than the existing one. We should use the
height of the content box instead.

Test: fast/css-grid-layout/grid-item-with-border-in-fr.html

* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutBlock):

LayoutTests:

* fast/css-grid-layout/grid-item-with-border-in-fr-expected.txt: Added.
* fast/css-grid-layout/grid-item-with-border-in-fr.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="#trunkSourceWebCorerenderingRenderGridcpp">trunk/Source/WebCore/rendering/RenderGrid.cpp</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsfastcssgridlayoutgriditemwithborderinfrexpectedtxt">trunk/LayoutTests/fast/css-grid-layout/grid-item-with-border-in-fr-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastcssgridlayoutgriditemwithborderinfrhtml">trunk/LayoutTests/fast/css-grid-layout/grid-item-with-border-in-fr.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (193412 => 193413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2015-12-04 07:45:05 UTC (rev 193412)
+++ trunk/LayoutTests/ChangeLog        2015-12-04 11:14:49 UTC (rev 193413)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2015-12-03  Sergio Villar Senin  &lt;svillar@igalia.com&gt;
+
+        [css-grid] Fix height computation of grid items with borders inside fr tracks
+        https://bugs.webkit.org/show_bug.cgi?id=151798
+
+        Reviewed by Zalan Bujtas.
+
+        * fast/css-grid-layout/grid-item-with-border-in-fr-expected.txt: Added.
+        * fast/css-grid-layout/grid-item-with-border-in-fr.html: Added.
+
</ins><span class="cx"> 2015-12-03  Brady Eidson  &lt;beidson@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Modern IDB: Fix up tests that refer to non-standard IDBVersionChangeEvent.dataLoss.
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssgridlayoutgriditemwithborderinfrexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css-grid-layout/grid-item-with-border-in-fr-expected.txt (0 => 193413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/grid-item-with-border-in-fr-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-item-with-border-in-fr-expected.txt        2015-12-04 11:14:49 UTC (rev 193413)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+X
+PASS
+PASS
+PASS
</ins><span class="cx">Property changes on: trunk/LayoutTests/fast/css-grid-layout/grid-item-with-border-in-fr-expected.txt
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<a id="trunkLayoutTestsfastcssgridlayoutgriditemwithborderinfrhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css-grid-layout/grid-item-with-border-in-fr.html (0 => 193413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/grid-item-with-border-in-fr.html                                (rev 0)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-item-with-border-in-fr.html        2015-12-04 11:14:49 UTC (rev 193413)
</span><span class="lines">@@ -0,0 +1,63 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+
+&lt;link href=&quot;../css-intrinsic-dimensions/resources/width-keyword-classes.css&quot; rel=&quot;stylesheet&quot;&gt;
+&lt;link href=&quot;resources/grid.css&quot; rel=&quot;stylesheet&quot;&gt;
+&lt;style&gt;
+.frGrid {
+    -webkit-grid: 1fr / 1fr;
+    font: 50px/1 Ahem;
+    border: 50px solid magenta;
+    width: 300px;
+}
+
+.item {
+    border: 50px solid rgba(0, 255, 250, 0.5);
+}
+
+.borderMargin {
+    border: 20px solid blue;
+    margin: 30px;
+}
+
+.frRowsGrid {
+    -webkit-grid-auto-columns: 100px;
+    -webkit-grid-auto-rows: minmax(0, 1fr);
+}
+
+.frColsGrid {
+    -webkit-grid-auto-columns: minmax(0, 1fr);
+    -webkit-grid-auto-rows: 100px;
+}
+
+span {
+    background: yellow;
+    border: 10px solid;
+}
+
+.child {
+    height:40px;
+    width:40px;
+}
+
+&lt;/style&gt;
+&lt;script src=&quot;../../resources/check-layout.js&quot;&gt;&lt;/script&gt;
+
+&lt;body onload=&quot;checkLayout('.grid')&quot;&gt;
+
+&lt;div class=&quot;grid frGrid&quot; data-expected-width=&quot;400&quot; data-expected-height=&quot;250&quot; data-expected-client-width=&quot;300&quot; data-expected-client-height=&quot;150&quot;&gt;
+    &lt;div class=&quot;item&quot; data-expected-width=&quot;300&quot; data-expected-height=&quot;150&quot; data-expected-client-width=&quot;200&quot; data-expected-client-height=&quot;50&quot;&gt;X&lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;grid borderMargin fit-content frRowsGrid&quot; data-expected-width=&quot;140&quot; data-expected-height=&quot;100&quot; data-expected-client-width=&quot;100&quot; data-expected-client-height=&quot;60&quot;&gt;
+    &lt;span data-expected-width=&quot;100&quot; data-expected-height=&quot;60&quot; data-expected-client-width=&quot;80&quot; data-expected-client-height=&quot;40&quot;&gt;
+        &lt;div class=&quot;child&quot;&gt;&lt;/div&gt;
+    &lt;/span&gt;
+&lt;/div&gt;
+
+&lt;div class=&quot;grid borderMargin fit-content frColsGrid&quot; data-expected-width=&quot;100&quot; data-expected-height=&quot;140&quot; data-expected-client-width=&quot;60&quot; data-expected-client-height=&quot;100&quot;&gt;
+    &lt;span data-expected-width=&quot;60&quot; data-expected-height=&quot;100&quot; data-expected-client-width=&quot;40&quot; data-expected-client-height=&quot;80&quot;&gt;
+        &lt;div class=&quot;child&quot;&gt;&lt;/div&gt;
+    &lt;/span&gt;
+&lt;/div&gt;
+
+&lt;/body&gt;
</ins><span class="cx">Property changes on: trunk/LayoutTests/fast/css-grid-layout/grid-item-with-border-in-fr.html
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svnmimetype"></a>
<div class="addfile"><h4>Added: svn:mime-type</h4></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (193412 => 193413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-12-04 07:45:05 UTC (rev 193412)
+++ trunk/Source/WebCore/ChangeLog        2015-12-04 11:14:49 UTC (rev 193413)
</span><span class="lines">@@ -1,3 +1,23 @@
</span><ins>+2015-12-03  Sergio Villar Senin  &lt;svillar@igalia.com&gt;
+
+        [css-grid] Fix height computation of grid items with borders inside fr tracks
+        https://bugs.webkit.org/show_bug.cgi?id=151798
+
+        Reviewed by Zalan Bujtas.
+
+        Since r192154 we run a second pass of the track sizing
+        algorithm whenever the height of the grid is indefinite in
+        order to properly compute row sizes. The available space
+        passed to the track sizing algorithm must not contain neither
+        borders nor paddings, otherwise it will think that it has more
+        space available than the existing one. We should use the
+        height of the content box instead.
+
+        Test: fast/css-grid-layout/grid-item-with-border-in-fr.html
+
+        * rendering/RenderGrid.cpp:
+        (WebCore::RenderGrid::layoutBlock):
+
</ins><span class="cx"> 2015-12-03  Brady Eidson  &lt;beidson@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Modern IDB: storage/indexeddb/cursor-index-delete.html fails.
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderGridcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderGrid.cpp (193412 => 193413)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderGrid.cpp        2015-12-04 07:45:05 UTC (rev 193412)
+++ trunk/Source/WebCore/rendering/RenderGrid.cpp        2015-12-04 11:14:49 UTC (rev 193413)
</span><span class="lines">@@ -376,7 +376,7 @@
</span><span class="cx">     // The above call might have changed the grid's logical height depending on min|max height restrictions.
</span><span class="cx">     // Update the sizes of the rows whose size depends on the logical height (also on definite|indefinite sizes).
</span><span class="cx">     if (logicalHeightWasIndefinite)
</span><del>-        computeTrackSizesForDirection(ForRows, sizingData, logicalHeight());
</del><ins>+        computeTrackSizesForDirection(ForRows, sizingData, contentLogicalHeight());
</ins><span class="cx"> 
</span><span class="cx">     // Grid container should have the minimum height of a line if it's editable. That does not affect track sizing though.
</span><span class="cx">     if (hasLineIfEmpty()) {
</span></span></pre>
</div>
</div>

</body>
</html>