Title: [276419] trunk
Revision
276419
Author
[email protected]
Date
2021-04-21 20:41:21 -0700 (Wed, 21 Apr 2021)

Log Message

Ignore column spanner property for the inner part of a text control.
https://bugs.webkit.org/show_bug.cgi?id=224757
<rdar://problem/76844224>

Reviewed by Antti Koivisto.

Source/WebCore:

Let's not try to span columns with the _inner_ part of a text control. Such subtrees should be opaque to multi-column layout.
(we already do this for <legend>)

Test: fast/multicol/spanner-inside-text-control.html

* rendering/updating/RenderTreeBuilderMultiColumn.cpp:
(WebCore::isValidColumnSpanner):

LayoutTests:

* fast/multicol/spanner-inside-text-control-expected.txt: Added.
* fast/multicol/spanner-inside-text-control.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (276418 => 276419)


--- trunk/LayoutTests/ChangeLog	2021-04-22 03:28:03 UTC (rev 276418)
+++ trunk/LayoutTests/ChangeLog	2021-04-22 03:41:21 UTC (rev 276419)
@@ -1,3 +1,14 @@
+2021-04-21  Zalan Bujtas  <[email protected]>
+
+        Ignore column spanner property for the inner part of a text control.
+        https://bugs.webkit.org/show_bug.cgi?id=224757
+        <rdar://problem/76844224>
+
+        Reviewed by Antti Koivisto.
+
+        * fast/multicol/spanner-inside-text-control-expected.txt: Added.
+        * fast/multicol/spanner-inside-text-control.html: Added.
+
 2021-04-21  Commit Queue  <[email protected]>
 
         Unreviewed, reverting r276380 and r276386.

Added: trunk/LayoutTests/fast/multicol/spanner-inside-text-control-expected.txt (0 => 276419)


--- trunk/LayoutTests/fast/multicol/spanner-inside-text-control-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/multicol/spanner-inside-text-control-expected.txt	2021-04-22 03:41:21 UTC (rev 276419)
@@ -0,0 +1 @@
+PASS if no crash or assert.

Added: trunk/LayoutTests/fast/multicol/spanner-inside-text-control.html (0 => 276419)


--- trunk/LayoutTests/fast/multicol/spanner-inside-text-control.html	                        (rev 0)
+++ trunk/LayoutTests/fast/multicol/spanner-inside-text-control.html	2021-04-22 03:41:21 UTC (rev 276419)
@@ -0,0 +1,19 @@
+<style>
+input {
+  float: left;
+}
+
+div {
+  -webkit-column-count: 2;
+}
+
+input::-webkit-textfield-decoration-container {
+  -webkit-column-span:all;
+}
+</style>
+<div><input type="password"></div>
+PASS if no crash or assert.
+<script>
+if (window.testRunner)
+  testRunner.dumpAsText();
+</script>
\ No newline at end of file

Modified: trunk/Source/WebCore/ChangeLog (276418 => 276419)


--- trunk/Source/WebCore/ChangeLog	2021-04-22 03:28:03 UTC (rev 276418)
+++ trunk/Source/WebCore/ChangeLog	2021-04-22 03:41:21 UTC (rev 276419)
@@ -1,3 +1,19 @@
+2021-04-21  Zalan Bujtas  <[email protected]>
+
+        Ignore column spanner property for the inner part of a text control.
+        https://bugs.webkit.org/show_bug.cgi?id=224757
+        <rdar://problem/76844224>
+
+        Reviewed by Antti Koivisto.
+
+        Let's not try to span columns with the _inner_ part of a text control. Such subtrees should be opaque to multi-column layout.
+        (we already do this for <legend>)
+
+        Test: fast/multicol/spanner-inside-text-control.html
+
+        * rendering/updating/RenderTreeBuilderMultiColumn.cpp:
+        (WebCore::isValidColumnSpanner):
+
 2021-04-21  Commit Queue  <[email protected]>
 
         Unreviewed, reverting r276380 and r276386.

Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilderMultiColumn.cpp (276418 => 276419)


--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilderMultiColumn.cpp	2021-04-22 03:28:03 UTC (rev 276418)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilderMultiColumn.cpp	2021-04-22 03:41:21 UTC (rev 276419)
@@ -29,6 +29,7 @@
 #include "RenderMultiColumnFlow.h"
 #include "RenderMultiColumnSet.h"
 #include "RenderMultiColumnSpannerPlaceholder.h"
+#include "RenderTextControl.h"
 #include "RenderTreeBuilder.h"
 #include "RenderTreeBuilderBlock.h"
 #include "RenderView.h"
@@ -101,6 +102,8 @@
             return false;
         if (ancestor->isLegend())
             return false;
+        if (is<RenderTextControl>(*ancestor))
+            return false;
         if (is<RenderFragmentedFlow>(*ancestor)) {
             // Don't allow any intervening non-multicol fragmentation contexts. The spec doesn't say
             // anything about disallowing this, but it's just going to be too complicated to
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to