Title: [263509] trunk
Revision
263509
Author
[email protected]
Date
2020-06-25 08:19:40 -0700 (Thu, 25 Jun 2020)

Log Message

[LFC][TFC] Use the flexing value as the base for the available horizontal space distribution
https://bugs.webkit.org/show_bug.cgi?id=213599

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/table-min-max-flex-distribution-simple.html

* layout/tableformatting/TableLayout.cpp:
(WebCore::Layout::TableFormattingContext::TableLayout::distributedHorizontalSpace):

LayoutTests:

* fast/layoutformattingcontext/table-fixed-width-with-max-distribution.html:
* fast/layoutformattingcontext/table-min-max-flex-distribution-simple-expected.html: Added.
* fast/layoutformattingcontext/table-min-max-flex-distribution-simple.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (263508 => 263509)


--- trunk/LayoutTests/ChangeLog	2020-06-25 15:03:40 UTC (rev 263508)
+++ trunk/LayoutTests/ChangeLog	2020-06-25 15:19:40 UTC (rev 263509)
@@ -1,3 +1,14 @@
+2020-06-25  Zalan Bujtas  <[email protected]>
+
+        [LFC][TFC] Use the flexing value as the base for the available horizontal space distribution
+        https://bugs.webkit.org/show_bug.cgi?id=213599
+
+        Reviewed by Antti Koivisto.
+
+        * fast/layoutformattingcontext/table-fixed-width-with-max-distribution.html:
+        * fast/layoutformattingcontext/table-min-max-flex-distribution-simple-expected.html: Added.
+        * fast/layoutformattingcontext/table-min-max-flex-distribution-simple.html: Added.
+
 2020-06-25  Karl Rackler  <[email protected]>
 
         Remove expectation for fast/canvas/canvas-blending-fill-style.html as they are passing. 

Modified: trunk/LayoutTests/fast/layoutformattingcontext/table-fixed-width-with-max-distribution.html (263508 => 263509)


--- trunk/LayoutTests/fast/layoutformattingcontext/table-fixed-width-with-max-distribution.html	2020-06-25 15:03:40 UTC (rev 263508)
+++ trunk/LayoutTests/fast/layoutformattingcontext/table-fixed-width-with-max-distribution.html	2020-06-25 15:19:40 UTC (rev 263509)
@@ -16,7 +16,6 @@
 <tr><td style="width: 22px"></td><td style="width: 22px; height: 20px;">iiiiiiii</td></tr>
 </table>
 
-</style>
 <table>
 <tr><td style="width: 22px"></td><td>iiiiiiii iiiiiiii</td></tr>
 <tr><td style="width: 22px"></td><td style="height: 20px;">iiiiiiii</td></tr>

Added: trunk/LayoutTests/fast/layoutformattingcontext/table-min-max-flex-distribution-simple-expected.html (0 => 263509)


--- trunk/LayoutTests/fast/layoutformattingcontext/table-min-max-flex-distribution-simple-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/layoutformattingcontext/table-min-max-flex-distribution-simple-expected.html	2020-06-25 15:19:40 UTC (rev 263509)
@@ -0,0 +1,9 @@
+<!DOCTYPE html><!-- webkit-test-runner [ internal:LayoutFormattingContextEnabled=true internal:LayoutFormattingContextIntegrationEnabled=false ] -->
+<style>
+div {
+  width: 77px;
+  height: 52px;
+  outline: 1px solid green;
+}
+</style>
+<div></div>

Added: trunk/LayoutTests/fast/layoutformattingcontext/table-min-max-flex-distribution-simple.html (0 => 263509)


--- trunk/LayoutTests/fast/layoutformattingcontext/table-min-max-flex-distribution-simple.html	                        (rev 0)
+++ trunk/LayoutTests/fast/layoutformattingcontext/table-min-max-flex-distribution-simple.html	2020-06-25 15:19:40 UTC (rev 263509)
@@ -0,0 +1,13 @@
+<!DOCTYPE html> <!-- webkit-test-runner [ internal:LayoutFormattingContextEnabled=true internal:LayoutFormattingContextIntegrationEnabled=false ] -->
+<style>
+table {
+    width: 60px;
+    font-size: 20px;
+    outline: 1px solid green;
+    color: white;
+}
+
+</style>
+<table>
+<tr><td>iii iiiiiii</td><td>iiiii i</td>
+</table>

Modified: trunk/Source/WebCore/ChangeLog (263508 => 263509)


--- trunk/Source/WebCore/ChangeLog	2020-06-25 15:03:40 UTC (rev 263508)
+++ trunk/Source/WebCore/ChangeLog	2020-06-25 15:19:40 UTC (rev 263509)
@@ -1,3 +1,15 @@
+2020-06-25  Zalan Bujtas  <[email protected]>
+
+        [LFC][TFC] Use the flexing value as the base for the available horizontal space distribution
+        https://bugs.webkit.org/show_bug.cgi?id=213599
+
+        Reviewed by Antti Koivisto.
+
+        Test: fast/layoutformattingcontext/table-min-max-flex-distribution-simple.html
+
+        * layout/tableformatting/TableLayout.cpp:
+        (WebCore::Layout::TableFormattingContext::TableLayout::distributedHorizontalSpace):
+
 2020-06-25  Antoine Quint  <[email protected]>
 
         REGRESSION (r260360): easing curves are broken on JS-originated animations

Modified: trunk/Source/WebCore/layout/tableformatting/TableLayout.cpp (263508 => 263509)


--- trunk/Source/WebCore/layout/tableformatting/TableLayout.cpp	2020-06-25 15:03:40 UTC (rev 263508)
+++ trunk/Source/WebCore/layout/tableformatting/TableLayout.cpp	2020-06-25 15:19:40 UTC (rev 263509)
@@ -238,17 +238,18 @@
 TableFormattingContext::TableLayout::DistributedSpaces TableFormattingContext::TableLayout::distributedHorizontalSpace(LayoutUnit availableHorizontalSpace)
 {
     enum class ColumnWidthBalancingBase { MinimumWidth, MaximumWidth };
-    auto columnWidthBalancingBase = availableHorizontalSpace == m_grid.widthConstraints()->maximum ? ColumnWidthBalancingBase::MaximumWidth : ColumnWidthBalancingBase::MinimumWidth;
+    auto columnWidthBalancingBase = availableHorizontalSpace >= m_grid.widthConstraints()->maximum ? ColumnWidthBalancingBase::MaximumWidth : ColumnWidthBalancingBase::MinimumWidth;
     return distributeAvailableSpace<ColumnSpan>(m_grid, availableHorizontalSpace, [&] (const TableGrid::Slot& slot, size_t columnIndex) {
         auto& column = m_grid.columns().list()[columnIndex];
         auto columnBoxFixedWidth = column.box() ? column.box()->columnWidth().valueOr(0_lu) : 0_lu;
+        auto minimumWidth = std::max<float>(slot.widthConstraints().minimum, columnBoxFixedWidth);
+        auto maximumWidth = std::max<float>(slot.widthConstraints().maximum, columnBoxFixedWidth);
+
         if (columnWidthBalancingBase == ColumnWidthBalancingBase::MinimumWidth) {
-            auto minimumWidth = std::max<float>(slot.widthConstraints().minimum, columnBoxFixedWidth);
-            return GridSpace { minimumWidth, minimumWidth };
+            ASSERT(maximumWidth >= minimumWidth);
+            return GridSpace { minimumWidth, maximumWidth - minimumWidth };
         }
         // When the column has a fixed width cell, the maximum width balancing is based on the minimum width.
-        auto minimumWidth = std::max<float>(slot.widthConstraints().minimum, columnBoxFixedWidth);
-        auto maximumWidth = std::max<float>(slot.widthConstraints().maximum, columnBoxFixedWidth);
         if (column.isFixedWidth())
             return GridSpace { minimumWidth, maximumWidth };
         return GridSpace { maximumWidth, maximumWidth };
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to