Title: [272302] trunk
Revision
272302
Author
[email protected]
Date
2021-02-03 00:42:02 -0800 (Wed, 03 Feb 2021)

Log Message

[css-grid] WPT test css/css-grid/grid-model/grid-box-sizing-001.html fails
https://bugs.webkit.org/show_bug.cgi?id=204578

Patch by Ziran Sun <[email protected]> on 2021-02-03
Reviewed by Javier Fernandez.

LayoutTests/imported/w3c:

All test cases in grid-box-sizing-001.html should pass now due to this change.

* web-platform-tests/css/css-grid/grid-model/grid-box-sizing-001-expected.txt:

Source/WebCore:

For a positioned element that specified both top/bottom should be treated as though
it has a height explicitly specified. Check on this case is missing in
RenderGrid::layoutBlock. This change adds check on hasDefiniteLogicalHeight() and make
sure we have a specific value of logical-height for the positioned elment that has
both top/bottom specified.

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

Modified Paths

Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (272301 => 272302)


--- trunk/LayoutTests/imported/w3c/ChangeLog	2021-02-03 08:30:22 UTC (rev 272301)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2021-02-03 08:42:02 UTC (rev 272302)
@@ -1,3 +1,14 @@
+2021-02-03  Ziran Sun  <[email protected]>
+
+        [css-grid] WPT test css/css-grid/grid-model/grid-box-sizing-001.html fails
+        https://bugs.webkit.org/show_bug.cgi?id=204578
+
+        Reviewed by Javier Fernandez.
+
+        All test cases in grid-box-sizing-001.html should pass now due to this change.
+
+        * web-platform-tests/css/css-grid/grid-model/grid-box-sizing-001-expected.txt:
+
 2021-02-02  Yusuke Suzuki  <[email protected]>
 
         Unreviewed, update expect files for wasm tests

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-model/grid-box-sizing-001-expected.txt (272301 => 272302)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-model/grid-box-sizing-001-expected.txt	2021-02-03 08:30:22 UTC (rev 272301)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-model/grid-box-sizing-001-expected.txt	2021-02-03 08:42:02 UTC (rev 272302)
@@ -3,88 +3,24 @@
 PASS .grid 2
 PASS .grid 3
 PASS .grid 4
-FAIL .grid 5 assert_equals:
-<div class="grid wholeWidth" style="bottom: 0;" data-expected-width="200" data-expected-height="100">
-    <div class="item" data-expected-width="154" data-expected-height="56"></div>
-  </div>
-height expected 56 but got 0
-FAIL .grid 6 assert_equals:
-<div class="grid wholeWidth" style="bottom: 0;" data-expected-width="200" data-expected-height="100">
-    <div class="item" data-expected-width="154" data-expected-height="56"></div>
-  </div>
-height expected 56 but got 0
-FAIL .grid 7 assert_equals:
-<div class="grid wholeWidth" style="bottom: 0; box-sizing: border-box;" data-expected-width="200" data-expected-height="100">
-    <div class="item" data-expected-width="154" data-expected-height="56"></div>
-  </div>
-height expected 56 but got 0
-FAIL .grid 8 assert_equals:
-<div class="grid wholeWidth" style="bottom: 0; box-sizing: border-box;" data-expected-width="200" data-expected-height="100">
-    <div class="item" data-expected-width="154" data-expected-height="56"></div>
-  </div>
-height expected 56 but got 0
+PASS .grid 5
+PASS .grid 6
+PASS .grid 7
+PASS .grid 8
 PASS .grid 9
 PASS .grid 10
 PASS .grid 11
 PASS .grid 12
-FAIL .grid 13 assert_equals:
-<div class="grid wholeHeight" style="width: 200px;" data-expected-width="246" data-expected-height="100">
-    <div class="item" data-expected-width="200" data-expected-height="56"></div>
-  </div>
-height expected 56 but got 0
-FAIL .grid 14 assert_equals:
-<div class="grid wholeHeight" style="min-width: 200px;" data-expected-width="246" data-expected-height="100">
-    <div class="item" data-expected-width="200" data-expected-height="56"></div>
-  </div>
-height expected 56 but got 0
-FAIL .grid 15 assert_equals:
-<div class="grid wholeHeight" style="width: 200px; box-sizing: border-box;" data-expected-width="200" data-expected-height="100">
-    <div class="item" data-expected-width="154" data-expected-height="56"></div>
-  </div>
-height expected 56 but got 0
-FAIL .grid 16 assert_equals:
-<div class="grid wholeHeight" style="min-width: 200px; box-sizing: border-box;" data-expected-width="200" data-expected-height="100">
-    <div class="item" data-expected-width="154" data-expected-height="56"></div>
-  </div>
-height expected 56 but got 0
-FAIL .grid 17 assert_equals:
-<div class="grid wholeHeight" style="right: 0;" data-expected-width="200" data-expected-height="100">
-    <div class="item" data-expected-width="154" data-expected-height="56"></div>
-  </div>
-height expected 56 but got 0
-FAIL .grid 18 assert_equals:
-<div class="grid wholeHeight" style="right: 0;" data-expected-width="200" data-expected-height="100">
-    <div class="item" data-expected-width="154" data-expected-height="56"></div>
-  </div>
-height expected 56 but got 0
-FAIL .grid 19 assert_equals:
-<div class="grid wholeHeight" style="right: 0; box-sizing: border-box;" data-expected-width="200" data-expected-height="100">
-    <div class="item" data-expected-width="154" data-expected-height="56"></div>
-  </div>
-height expected 56 but got 0
-FAIL .grid 20 assert_equals:
-<div class="grid wholeHeight" style="right: 0; box-sizing: border-box;" data-expected-width="200" data-expected-height="100">
-    <div class="item" data-expected-width="154" data-expected-height="56"></div>
-  </div>
-height expected 56 but got 0
-FAIL .grid 21 assert_equals:
-<div class="grid wholeHeight" style="width: 200px; right: 0;" data-expected-width="246" data-expected-height="100">
-    <div class="item" data-expected-width="200" data-expected-height="56"></div>
-  </div>
-height expected 56 but got 0
-FAIL .grid 22 assert_equals:
-<div class="grid wholeHeight" style="min-width: 200px; right: 0;" data-expected-width="246" data-expected-height="100">
-    <div class="item" data-expected-width="200" data-expected-height="56"></div>
-  </div>
-height expected 56 but got 0
-FAIL .grid 23 assert_equals:
-<div class="grid wholeHeight" style="width: 200px; right: 0; box-sizing: border-box;" data-expected-width="200" data-expected-height="100">
-    <div class="item" data-expected-width="154" data-expected-height="56"></div>
-  </div>
-height expected 56 but got 0
-FAIL .grid 24 assert_equals:
-<div class="grid wholeHeight" style="min-width: 200px; right: 0; box-sizing: border-box;" data-expected-width="200" data-expected-height="100">
-    <div class="item" data-expected-width="154" data-expected-height="56"></div>
-  </div>
-height expected 56 but got 0
+PASS .grid 13
+PASS .grid 14
+PASS .grid 15
+PASS .grid 16
+PASS .grid 17
+PASS .grid 18
+PASS .grid 19
+PASS .grid 20
+PASS .grid 21
+PASS .grid 22
+PASS .grid 23
+PASS .grid 24
 

Modified: trunk/Source/WebCore/ChangeLog (272301 => 272302)


--- trunk/Source/WebCore/ChangeLog	2021-02-03 08:30:22 UTC (rev 272301)
+++ trunk/Source/WebCore/ChangeLog	2021-02-03 08:42:02 UTC (rev 272302)
@@ -1,3 +1,19 @@
+2021-02-03  Ziran Sun  <[email protected]>
+
+        [css-grid] WPT test css/css-grid/grid-model/grid-box-sizing-001.html fails
+        https://bugs.webkit.org/show_bug.cgi?id=204578
+
+        Reviewed by Javier Fernandez.
+
+        For a positioned element that specified both top/bottom should be treated as though
+        it has a height explicitly specified. Check on this case is missing in
+        RenderGrid::layoutBlock. This change adds check on hasDefiniteLogicalHeight() and make
+        sure we have a specific value of logical-height for the positioned elment that has
+        both top/bottom specified.
+
+        * rendering/RenderGrid.cpp:
+        (WebCore::RenderGrid::layoutBlock):
+
 2021-02-03  Carlos Garcia Campos  <[email protected]>
 
         [GTK][WPE] Reduce the use of SoupURI in preparation for libsoup3

Modified: trunk/Source/WebCore/rendering/RenderGrid.cpp (272301 => 272302)


--- trunk/Source/WebCore/rendering/RenderGrid.cpp	2021-02-03 08:30:22 UTC (rev 272301)
+++ trunk/Source/WebCore/rendering/RenderGrid.cpp	2021-02-03 08:42:02 UTC (rev 272302)
@@ -191,10 +191,10 @@
         beginUpdateScrollInfoAfterLayoutTransaction();
 
         LayoutSize previousSize = size();
-        // FIXME: We should use RenderBlock::hasDefiniteLogicalHeight() but it does not work for positioned stuff.
+        // FIXME: We should use RenderBlock::hasDefiniteLogicalHeight() only but it does not work for positioned stuff.
         // FIXME: Consider caching the hasDefiniteLogicalHeight value throughout the layout.
-        bool hasDefiniteLogicalHeight = hasOverridingLogicalHeight() || computeContentLogicalHeight(MainOrPreferredSize, style().logicalHeight(), WTF::nullopt);
-
+        // FIXME: We might need to cache the hasDefiniteLogicalHeight if the call of RenderBlock::hasDefiniteLogicalHeight() causes a relevant performance regression.
+        bool hasDefiniteLogicalHeight = RenderBlock::hasDefiniteLogicalHeight() || hasOverridingLogicalHeight() || computeContentLogicalHeight(MainOrPreferredSize, style().logicalHeight(), WTF::nullopt);
         m_hasAnyOrthogonalItem = false;
         for (auto* child = firstChildBox(); child; child = child->nextSiblingBox()) {
             if (child->isOutOfFlowPositioned())
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to