Modified: trunk/LayoutTests/ChangeLog (207342 => 207343)
--- trunk/LayoutTests/ChangeLog 2016-10-14 16:17:47 UTC (rev 207342)
+++ trunk/LayoutTests/ChangeLog 2016-10-14 16:23:18 UTC (rev 207343)
@@ -1,3 +1,13 @@
+2016-10-14 Manuel Rego Casasnovas <r...@igalia.com>
+
+ [css-grid] Changing the argument on fit-content() doesn't cause the grid to be relayout
+ https://bugs.webkit.org/show_bug.cgi?id=163434
+
+ Reviewed by Sergio Villar Senin.
+
+ * fast/css-grid-layout/grid-change-fit-content-argument-expected.txt: Added.
+ * fast/css-grid-layout/grid-change-fit-content-argument.html: Added.
+
2016-10-14 Joseph Pecoraro <pecor...@apple.com>
test262: Failure with RegExp.prototype.compile when pattern is undefined
Added: trunk/LayoutTests/fast/css-grid-layout/grid-change-fit-content-argument-expected.txt (0 => 207343)
--- trunk/LayoutTests/fast/css-grid-layout/grid-change-fit-content-argument-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-change-fit-content-argument-expected.txt 2016-10-14 16:23:18 UTC (rev 207343)
@@ -0,0 +1,11 @@
+This test checks that grid-template-{rows|columns} with fit-content() tracks recomputes the tracks when the fit-content() argument is modified.
+XXXX XXX XX X X
+PASS
+PASS
+PASS
+PASS
+XXXX XXX XX X X
+PASS
+PASS
+PASS
+PASS
Added: trunk/LayoutTests/fast/css-grid-layout/grid-change-fit-content-argument.html (0 => 207343)
--- trunk/LayoutTests/fast/css-grid-layout/grid-change-fit-content-argument.html (rev 0)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-change-fit-content-argument.html 2016-10-14 16:23:18 UTC (rev 207343)
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<link href="" rel="stylesheet">
+<link href="" rel="stylesheet">
+<style>
+.grid {
+ position: relative;
+ justify-content: start;
+ align-content: start;
+ font: 25px/1 Ahem;
+}
+</style>
+<script src=""
+<script>
+function setGridTemplate(id, gridTemplateRows, gridTemplateColumns)
+{
+ var gridElement = document.getElementById(id);
+ gridElement.style.gridTemplateRows = gridTemplateRows;
+ gridElement.style.gridTemplateColumns = gridTemplateColumns;
+}
+
+function testGridItemDefinitions(gridItemData)
+{
+ var item = document.getElementById(gridItemData.id);
+ item.setAttribute("data-expected-width", gridItemData.width);
+ item.setAttribute("data-expected-height", gridItemData.height);
+ item.setAttribute("data-offset-x", gridItemData.x);
+ item.setAttribute("data-offset-y", gridItemData.y);
+
+ checkLayout(".grid");
+}
+
+function testChangingGridDefinitions()
+{
+ // Test changing the argument of fit-content() tracks.
+ setGridTemplate("grid1", "none", "fit-content(100px)");
+ testGridItemDefinitions({"id": "item1", "width": "100", "height": "100", "x": "0", "y": "0" });
+
+ setGridTemplate("grid1", "none", "fit-content(150px)");
+ testGridItemDefinitions({"id": "item1", "width": "150", "height": "75", "x": "0", "y": "0" });
+
+ setGridTemplate("grid2", "fit-content(100px)", "none");
+ testGridItemDefinitions({"id": "item2", "width": "100", "height": "100", "x": "0", "y": "0" });
+
+ setGridTemplate("grid2", "fit-content(150px)", "none");
+ testGridItemDefinitions({"id": "item2", "width": "75", "height": "150", "x": "0", "y": "0" });
+}
+
+window.addEventListener("load", testChangingGridDefinitions, false);
+</script>
+
+<div>This test checks that grid-template-{rows|columns} with fit-content() tracks recomputes the tracks when the fit-content() argument is modified.</div>
+
+<div id="grid1" class="grid fit-content">
+ <div id="item1" class="autoRowAutoColumn">XXXX XXX XX X X</div>
+</div>
+
+<div id="grid2" class="grid fit-content">
+ <div id="item2" class="autoRowAutoColumn verticalLR">XXXX XXX XX X X</div>
+</div>
Modified: trunk/Source/WebCore/ChangeLog (207342 => 207343)
--- trunk/Source/WebCore/ChangeLog 2016-10-14 16:17:47 UTC (rev 207342)
+++ trunk/Source/WebCore/ChangeLog 2016-10-14 16:23:18 UTC (rev 207343)
@@ -1,3 +1,23 @@
+2016-10-14 Manuel Rego Casasnovas <r...@igalia.com>
+
+ [css-grid] Changing the argument on fit-content() doesn't cause the grid to be relayout
+ https://bugs.webkit.org/show_bug.cgi?id=163434
+
+ Reviewed by Sergio Villar Senin.
+
+ When fit-content() was implemented a new attribute
+ m_fitContentTrackBreadth was added to GridTrackSize.
+ However we forgot to include it in the == operator implementation,
+ so we were missing the changes on that value.
+
+ Now if you change the argument of a fit-content() track,
+ the track size is properly recomputed.
+
+ Test: fast/css-grid-layout/grid-change-fit-content-argument.html
+
+ * rendering/style/GridTrackSize.h:
+ (WebCore::GridTrackSize::operator==): Check m_fitContentTrackBreadth.
+
2016-10-14 Commit Queue <commit-qu...@webkit.org>
Unreviewed, rolling out r207317.
Modified: trunk/Source/WebCore/rendering/style/GridTrackSize.h (207342 => 207343)
--- trunk/Source/WebCore/rendering/style/GridTrackSize.h 2016-10-14 16:17:47 UTC (rev 207342)
+++ trunk/Source/WebCore/rendering/style/GridTrackSize.h 2016-10-14 16:23:18 UTC (rev 207343)
@@ -93,7 +93,8 @@
bool operator==(const GridTrackSize& other) const
{
- return m_type == other.m_type && m_minTrackBreadth == other.m_minTrackBreadth && m_maxTrackBreadth == other.m_maxTrackBreadth;
+ return m_type == other.m_type && m_minTrackBreadth == other.m_minTrackBreadth && m_maxTrackBreadth == other.m_maxTrackBreadth
+ && m_fitContentTrackBreadth == other.m_fitContentTrackBreadth;
}
void cacheMinMaxTrackBreadthTypes()